adb常用命令
adb的全称为Android Debug Bridge,就是起到调试桥的作用,也就是debug工具,通过它可以和android设备或模拟器通信。
借助adb工具,我们可以管理设备或手机模拟器的状态。还可以进行很多手机操作,如安装软件、系统升级、运行shell命令等等。简而言说,adb就是连接Android手机与PC端的桥梁,可以让用户在电脑上对手机进行全面的操作。
1. *查看已连接的设备列表:adb devices
这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器有哪些。
2. 断开设备:adb disconnect IP
3. 连接设备:adb connect IP # (手机和电脑处于同一局域网)
4. *开启adb服务:adb start-server
5. *关闭adb服务:adb kill-server
6. *安装软件包:adb install [apk路径]
例如:adb install -r -t [apk路径]
(-r 代表如果apk已安装,重新安装apk并保留数据和缓存文件。-t 表示强制覆盖。apk路径则可以直接将apk文件拖进cmd窗口,记得加空格。)
7. *卸载软件包:adb uninstall [apk包名]
8. 获取软件包名
列出手机装的所有app的包名:adb shell pm list packages
列出系统应用的所有包名:adb shell pm list packages -s
列出除了系统应用的第三方应用包名:adb shell pm list packages -3
(查不出?建议重启一下雷电模拟器)
9. *显示当前打开的软件包名(需要打开目标软件)
Windows端:adb shell dumpsys window | findstr mCurrentFocus
Mac/linux端:adb shell dumpsys window | grep mCurrentFocus
10. 清除应用数据与缓存:adb shell pm clear [apk包名]
11. 启动、停止应用
启动:adb shell am start 包名/activity名
(包名是软件的标识,Activity主要描述app的某个页面)
停止:adb shell am force-stop (apk包名)
12. *获取APP日志:adb logcat > 本地文件
(注意:执行命令后,手机上操作复现步骤,产生的日志会记录到本地文件)
- > :覆盖文件内容
- >> :追加在文件末尾
使用场景: 测试期间记录日志:adb logcat > 本地文件
避免问题由于不确定复现步骤而导致无法复现,并且被研发拒绝。
下图,产生的日志会覆盖( > )在log.txt文件里
举例:
1、执行下面命令,然后去使用app
2、使用完后,Ctrl+C结束日志获取
3、查看获取的log.txt文档即可。
13. 获取APP启动时间:adb shell am start -W 包名/activity名
- -W :获取时间
- -S:表示每次启动前先强行停止 (即冷启动的时间)
- -R 数字:表示重复执行测试次数
注意:参数均为大写,顺序可以调整,但-R后必须是数字
常见的三个指标
- ThisTime:当前activity的时间。
- TotalTime:应用的启动时间,包括创建进程、App初始化、Activity初始化到界面显示。
- WaitTime:前一个应用activity pause的时间+TotalTime。
14. 获取内存信息:adb shell dumpsys meminfo 包名
(1)Native/Dalvik的Heap信息
如果发现这个值一直增长,则代表程序可能出现了内存泄漏(Out of memary)。
(2)Total的PSS信息
这个值是应用真正占据的内存大小,通过这个信息,可以轻松判别手机中哪些程序占内存比较大。
15. 查看CPU占用情况
1. adb shell dumpsys cpuinfo # 查看当前CPU占用情况)
2. adb shell top -s 9 # 默认9,按指定列排序
16. 获取流量消耗值
1、获取userId(返回数据为userId=):
adb shell dumpsys package 包名 | findstr userId
2、获取上行流量(返回数据单位bytes):(userId填写具体数字)
adb shell cat proc/uid_stat/userId/tcp_snd
3、获取下行流量(返回数据单位bytes):(userId填写具体数字)
adb shell cat proc/uid_stat/userId/tcp_rcv
17. 稳定性测试(Monkey测试)
1、adb shell monkey -p 包名 数字 -v >本地文件
- -p : 指定包名(所有命令都在此包内执行,如不指定,则在整个系统内执行)
- 数字 : 表示模拟无序操作次数
- -v : log详细程度,最高支持’-v -v -v’最详细,该参数
- --throttle 500 : 单步延时500ms(每步操作间隔,单位毫秒)
示例 :adb shell monkey -p 包名 1000 -v -v -v --throttle 500 >本地文件
(执行命令后,查看软件会被自动模拟操作,然后生成日志文件。)