ADB
ADB全名Andorid Debug Bridge。 是一个Debug工具。为何称之为Bridge呢?
因为adb是一个标准的C/S结构的工具, 是要连接开发电脑和调试手机的
包含如下几个部分:
1.Client端,运行在开发机器中,即你的开发PC机。用来发送adb命令。
2.Daemon守护进程, 运行在调试设备中, 即的调试手机或模拟器。
3.Server端, 作为一个后台进程运行在开发机器中, 即你的开发PC机. 用来管理PC中的Client端和手机的Daemon之间的通信。
- 三者之间的通信
Client<—>Server<—>Daemon
- adb帮助
adb --help
- 启动adb server
adb start-server
- 关闭adb server
adb kill-server
- 获取设备号
adb devices
- 获取系统版本
adb -s 设备号 shell getprop ro.build.version.release
- 发送文件到手机
adb push 电脑端文件路径/需要发送的文件 手机端存储的路径
示例:
将桌面的xx.png发送到手机sdcard目录下
adb push C:\Users\win\Desktop\xx.png /sdcard
- 从手机拉取文件
adb pull 手机端的路径/拉取文件名 电脑端存储文件路径
示例:
将手机/sdcard目录中的xx.png文件,发送到电脑桌面
adb pull /sdcard/xx.png C:\Users\win\Desktop
- 查看手机运行日志
adb logcat
- 手机shell命令行
adb shell
- 获取app启动包名和启动名(⚠️ 手机需要先打开对应app)
1.Mac/Linux: 'adb shell dumpsys window windows | grep mFocusedApp’
2.在 Windows 终端运行 'adb shell dumpsys window windows’ 然后去看mFocusedApp这一行的内容。
- 安装app到手机
adb install 路径/xx.apk
- 卸载手机手机app
adb uninstall 包名
- 获取app启动时间
adb shell am start -W 包名/启动名
示例:
adb shell am start -W com.yly.drawpic/.MainActivity
解释:
TotalTime:app自身启动时间
WaitTime:系统启动应用时间
主流的移动端自动化工具
Robotium
1.支持语言:Java
2.仅支持Android系统
3.不支持跨应用
Macaca
1.支持语言:Java,Python,Node.js
2.支持Android和iOS系统
3.支持跨应用
Appium
1.支持语言:Java,C#,Python,php,perl,ruby,Node.js
2.支持Android和iOS系统
3.支持跨应用
自动化工具选择的关注点
1.是否支持native,webview
2.是否支持获取toast
3.是否支持跨应用