1、查看连接设备
adb devices
2、清除数据
adb shell pm clear com.wuba
3、安装apk
adb install 路径
如何确定待测APP的包名:
adb logcat |findstr START
启动待测APP,日志中cmp和反斜杠/之间的信息即为包名
4、adb shell monkey
如何禁止系统事件(0是系统时间百分比)
adb shell monkey -p com.wuba --pct-syskeys 0 -v 100
5、adb logcat
adb获取当前页面的activity
方法一: adb logcat | findstr Displayed
方法二:进入adb shell
执行dumpsys window windows |grep -E ‘com.wuba‘
adb logcat 主要功能
logcat
(四类log buffer是main,radio,system,events)
adb logcat -v time > logcat.txt //默认是-b main -b system
adb logcat -v time -b main //main log
adb logcat -v time -b radio //radio log
adb logcat -v time -b system //system log
adb logcat -v time -b events
6、adb shell dumpsys
adb判断设备是否锁屏和黑屏状态
adb shell dumpsys window policy|findstr mScreenOnFully
若为true,即为点亮状态
若为false,即为黑屏状态
其他功能
adb shell dumpsys activity---------------查看ActvityManagerService 所有信息
adb shell dumpsys activity activities----------查看Activity组件信息
adb shell dumpsys activity services-----------查看Service组件信息
adb shell dumpsys activity providers----------产看ContentProvider组件信息
adb shell dumpsys activity broadcasts--------查看BraodcastReceiver信息
adb shell dumpsys activity intents--------------查看Intent信息
adb shell dumpsys activity processes---------查看进程信息
7、adb shell am
am(ActivityManager)
响应时间测试(实际APP测试不能以此作为判断标准 )
adb shell am start -W com.wuba/.home.activity.HomeActivity
adb shell am start -W com.wuba/.activity.launch.LaunchActivity
- 如果只关心某个应用自身启动耗时,参考TotalTime;
- 如果关心系统启动应用耗时,参考WaitTime;
- 如果关心应用有界面Activity启动耗时,参考ThisTime。
8、如何停止monkey
adb shell
ps | grep monkey
返回来的第一个数字,即是monkey的进程号
shell 7772 185 277516 22244 ffffffff 4010a58c S com.Android.commands.monkey
kill 命令结束进程继续输入:
kill 7772[刚才查到的进程号
10、adb shell monkey
--ignore-crashes 忽视应用 crash 报错,不指定该参数时,
应用出现 crash,monkey 会自动停止发送事件,指定该参数后,
mongkey 会在 crash 后也一直发送事件,知道所有事件发送完成
--ignore-timeouts 忽视超时导致的错误,即ANR的错误
--ignore-security-exceptions 忽视权限方面的错误
--monitor-native-crashes 监控由 C/C++ 代码引起的 crash
--ignore-native-crashes 忽视由 C/C++ 代码引起的 crash
--kill-process-after-error 当出现错误后杀掉应用的进程
--hprof 指定该选项后,monkey会在发送事件完成后生成性能
报告,报告一般存放于/data/misc目录下
11、查看权限
aapt dump badging apk路径( 查看apk包的packageName、versionCode、applicationLabel、launcherActivity、permission等各种详细信息)
12、测试APP是否过量耗电 adb shell logcat -v time
导出log中sending alarm行不含待测应用包名。若存在,则需要关注type为0和2的sending alarm是否频繁,若出现多次则说明有可能会造成过量耗电。
13、通过tcp命令连接手机后可以在手机和pc断开后发送指令:
首先通过USB线唤醒server,adb start -server,之后执行adb tcpip 5555,重置端口号:5555 ,查找手机IP后,执行adb connect ip ,连接成功后可以断开手机,执行adb -s 10.252.221.202:5555 shell monkey -p com.wuba -v 1000 等相关任务
补充:server与client通讯端口5037, adb server会与emulator交互,使用的端口有两个,一个是5554专用与emulator实例的连接,那么数据可以从emulator转发给IDE控制台,另一个则是5555,专门与adb daemon连接为后面调试使用
14、adb shell ps
执行完adb shell ps后
USER PID PPID VSIZE RSS WCHAN PC NAME
fu0_a349 31658 481 2405608 180692 ffffffff 00000000 S
USER: 进程的当前用户;
PID : 毫无疑问, process ID的缩写,也就进程号;
PPID :process parent ID,父进程ID
VSIZE : virtual size,进程虚拟地址空间大小;
RSS : 进程正在使用的物理内存的大小;
WCHAN :进程如果处于休眠状态的话,在内核中的地址;
PC : program counter,
NAME: process name,进程的名称
常见问题
1、ADB server didn‘t ACK
解决:
首先执行adb nodaemon server获取端口号
其次执行 netstat -ano |findstr "5037"得到占用端口的pid 8516
最后执行 taskkill /f /pid 8516