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)
本文来自博客园,作者:chuangzhou,转载请注明原文链接:https://www.cnblogs.com/czzz/p/15940386.html