adb介绍:
adb全名Andorid Debug Bridge,起到调试桥的作用,adb是一个标准的CS结构的工具,是用来连接电脑和被调试手机的,包含以下三个部分:
- 电脑端,用来发送adb命令.
- 手机端, 运行在调试设备中, 即用作调试的手机或模拟器
- 服务端, 作为一个后台进程运行在电脑端,用来管理电脑端和手机端之间的通信
adb常用命令:
adb官网命令地址:ADB Commands - Android ADB Shell Commands Manual
查看手机是否连接:adb devices
连接设备:adb connect 设备ip:端口号 若有连接多个设备需指明设备ip及端口号
安装APP:adb install [-r] 路径/包名 -r表示覆盖安装
卸载APP:adb uninstall [-k] 包名 -k表示卸载应用但不删除配置及缓存信息
列出设备中所有应用包名:adb shell pm list packages
查找安装包:adb shell pm list packages | findstr 包名
列出系统应用的所有包名:adb shell pm list packages -s
仅列出第三方应用的包名:adb shell pm list packages -3
获取当前活动页信息:adb shell "dumpsys window | grep mCurrentFocus"
获取当启动页信息:adb logcat ActivityManager:I | findstr "cmp"
获取包名和Activity名:aapt dump badging 路径\包名,此命令运行需在SDK文件中aapt所在目录执行cmd才能识别,否则报不是内部或外部命令,或者将其添加到环境变量后再使用
启动应用:adb shell am start -n 包名/活动页名
清除应用数据,恢复到首次安装状态:adb shell pm clear 包名
文件传输:
由电脑传输至手机:adb push 电脑路径 手机路径
由手机传输至电脑:adb pull 手机路径 电脑路径
日志:
打印默认日志:adb logcat
将日志输出到文件:adb logcat -f 文件名
将日志保存到电脑:adb logcat > 文件名
清理已存在的日志:adb logcat -c
过滤日志:adb logcat ActivityManger:W "*:S" 过滤tag为ActivityManger的等级为Warn的日志
模拟点击:adb shell input tap 坐标X 坐标Y
模拟输入:adb shell input text 输入的内容
模拟滑动:adb shell input swipe 起点X 起点Y 终点X 终点Y [滑动时长(单位是ms)]
模拟手机系统按键:
返回键:adb shell input keyevent 4
HOME键:adb shell input keyevent 3
菜单键:adb shell input keyevent 82
音量加:adb shell input keyevent 24
音量减:adb shell input keyevent 25
电源键:adb shell input keyevent 26
扬声器静音键:adb shell input keyevent 164
重启设备:adb reboot
查看日志信息:adb logcat
查看adb命令版本号:adb version
查看当前系统CPU信息:adb shell dumpsys cpuinfo 或 adb shell cat /proc/cpuinfo
查看当前系统内存信息:adb shell dumpsys meminfo 或 adb shell cat /proc/meminfo
查看应用内存使用情况:adb shell dumpsys meminfo 包名 或 adb shell cat /proc/meminfo 包名
查看磁盘信息:adb shell dumpsys diskstats
实时查看某应用的性能:adb shell top | findstr 包名
查看手机电量信息:adb shell dumpsys battery
设置电量百分比:adb shell dumpsys battery set level 数值(1-100)
monkey相关命令:
adb shell monkey -p 包名 总事件数 [参数]
参数:
-p 指定测试APP包名,多个包一起测试则追加多个 -p 包名
-v 反馈信息级别(共三级,-v,-v-v,-v-v-v),可写作 -vvv
-s seed值,伪随机序列值,重复操作步骤时会用到
--throttle (毫秒)延时操作,每个时间接收后的间隔时间,减慢操作速度
设置事件类型和频率,总比例不可超过百分之百:
--pct-touch:触摸事件,设定点击事件百分比
--pct-motion:动作事件,设定动作事件百分比
--pct-pinchzoom:缩放事件,设定缩放事件百分比
--pct-trackball:轨迹事件,设定轨迹事件百分比
--pct-rotation:屏幕旋转,设定屏幕选择事件百分比
--pct-nav:基本导航事件,设定基本导航事件百分比,比如上下左右操作键等
--pct-majornav:主要导航事件,设定主要事件百分比,比如返回键、菜单键等
--pct-syskeys:系统按钮事件,设定系统导航事件百分比,比如HOME键、返回键、音量键等
--pct-appswitch:启动事件,设定启动活动事件百分比,活动页之间的切换
--pct-flip:键盘事件
--pct-anyevent:其它事件
异常处理:
--ignore-crashes:忽略崩溃,继续发送事件
--ignore-timeouts:忽略超时,继续发送事件
--ignore-security-exceptions:忽略安全异常,继续发送事件
--kill-process-after-error:发生错误后直接杀掉进程
--monitor-native-crashes:监视并报告monkey运行时Android系统native code的崩溃事件
--dbg-no-events:初始化启动的Activity,不生成任何事件
--wait-dbg:直到连接了调试器才开始执行monkey测试
--bugreport:当出现ANR、Crash或其它异常时生成缺陷报告
保存测试日志:
方式一:adb shell monkey …> 文件路径/文件名 一边执行一边导出日志
方式二:adb logcat -v "*E" > 文件路径/文件名 执行完成后通过过滤导出日志
最后在日志中查找异常关键词:error/crash/timeout/exception/anr等,定位并处理异常
若执行时间过多,执行过程想要结束mokey操作,强制结束电脑端后手机端仍在运行,此情况需通过杀掉进程的方式结束手机端,步骤如下:
①先结束电脑端:按键Ctrl+C
②进入手机端:adb shell
③查看进程:ps | grep mokey
④杀掉进程:kill 进程号
⑤退出手机端:exit 或 按键Ctrl+C