ADB (一)

1.Android SDK

Android SDK: Android软件开发工具包, 包含了ADB

2.ADB

2.1 ADB概念

ADB: 全名Android Debug Bridge,是一个调试工具

  • 开发安卓应用的程序员必须掌握
  • 测试工程师在做安卓应用测试的时候也会使用到

2.2 ADB 的构成和工作原理

ADB 包含三部分:
1。Client:运行在开发机器中,即你的开发电脑,用来发送adb命令
2。Daemon守护进程:运行在调试设备中,手机或模拟器,用来接收并执行adb命令
3。Server端:同样运行在开发机器中,用来管理Client端和Daemon之间的通信、

组成:

总结:adb工具可以通过电脑端控制手机或模拟器

2.3 安装 Android SDK

需要依赖JAVA环境,所以JDK要装先好

下载地址:https://android-sdk.en.softonic.com/

解压之后的安装包只包含基本的SDK工具,它不包含Android平台或任何第三方库。需要使用SDK
Manager安装所需要的工具

配置环境变量

  • ANDROID_HOME=E:\code_tool\adb\android-sdk-windows
  • 在Path中添加:%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;

验证:

C:\Users\86158>adb --version

3. 包名和界面名的概念

  • 包名(package):决定程序的唯一性(不是应用的名字)
  • 界面名/启动名(activity):可以理解为一个界面名,对应一个界面、

应用场景:自动化测试的时候需要告诉手机测试手机的哪个应用的哪个界面,所以需要通过这个命令进行获取
获得手机设置界面的包名和界面名:

C:\Users\86158>adb shell dumpsys window windows | findstr mFocusedApp
  mFocusedApp=AppWindowToken{364eda6 token=Token{518a8e8 ActivityRecord{1e7420b u0 com.android.settings/.Settings t8}}}
  • 包名:com.android.settings
  • 界面名:.Settings

4. ABD常用命令

文件传输

# 往手机推送文件
C:\Users\86158>adb push C:\Users\86158\Desktop\login.json /sdcard
C:\Users\86158\Desktop\login.json: 1 file pushed, 0 skipped. 0.3 MB/s (847 bytes in 0.002s)

# 从手机往本地拉取文件
C:\Users\86158>adb push C:\Users\86158\Desktop\login.json /sdcard
C:\Users\86158\Desktop\login.json: 1 file pushed, 0 skipped. 0.3 MB/s (847 bytes in 0.002s)

查看手机端日志

命令格式

adb logcat

应用场景
将bug的日志发送给开发人员,便于开发定位bug

使用步骤
1.打开要测试的应用程序
2.找到触发bug的位置fd
3.使用查看日志命令
4.触发bug
5.获取日志信息

其他命令

命令 作用
adb install 路径/xxx.apk 安装app到手机
adb uninstall 包名 卸载手机上的app,需要指定包名
adb devices -l 获取当前电脑已经连接设备和对应的设备号
adb shell 进入安卓手机内部的linux系统命令行中
adb start-server 启动adb服务端
adb kill-server 停止adb服务端
adb --help 查看adb帮助
  • pm list packages :列出已安装的包名,等价于 pm -l

  • pm path 包名: 列出包的安装路径

  • adb shell input tap xxx yyy :模拟点击效果

  • adb shell input text 21111 :在当前定位的文本框中输入:21111

  • adb shell input keyevent 61: 模拟tab 键

key evnet code 有很多,详情参考https://www.cnblogs.com/chengchengla1990/p/4515108.html

  • pm list packages -3 : 获得第三方的安装包

python 执行adb

import os
from time import sleep

ADB_COMMANDS = [
    'adb shell input tap 556 316',
    'adb shell input tap 556 316',
    'adb shell input tap 556 316'
]

for el in ADB_COMMANDS:
    # python 调用cmd
    os.system(el)
    sleep(2)
posted @ 2022-02-26 20:27  chuangzhou  阅读(180)  评论(0编辑  收藏  举报