安卓专项测试
专项测试有哪些?
- app启动/健在时长(热启动/冷启动)
- 资源占用(CPU/内存)
- 电量测试
- 网络流量消耗
- 帧率(profdog工具)
- 弱网络测试
一. app启动启动加载时间
- 冷启动:
首次安装后,启动应用的时间 - 热启动:
应用安装后已经启动多次后,应用启动的时长
① 获取包名的adb命令(查看已打开应用包名), 如果报错, 可将findstr 改为grep
adb shell dumpsys window | findstr mCurrentFocus
②启动app,单位毫秒
adb shell
#启动app 这里关注的是ThisTime(单位毫秒ms)
am start -W -n 包名/Activity名
那么关闭app的命令: adb shell am force-stop 包名
如启动支付包,其中的ThisTime时需要关注的,启动时间为962ms
adb logcat(打印日志)
#打印默认日志数据
adb logcat
#需要打印日志详细时间的简单数据
adb logcat -v time
#需要打印级别为Error的信息
adb logcat *:E
#需要打印时间和级别是Error的信息
adb logcat -v time *:E
#将日志保存到电脑固定的位置,比如G:\logtxt.txt
adb logcat -v time >G:\log.txt
二、资源占用
- CPU/内存占用
adb shell top
读一行
User: 用户进程
System: 系统进程
IOW: IO等待时间
IRQ: 硬中断时间
第二行
User 处于用户的运行时间,不含优先值为负进程
Nice : 优先值为负的进程所占用的CPU时间
Sys: 处于核心态的运行时间
Idle: 除IO等待以外的其他等待时间
IOW: IO等待时间
IRQ:硬件中断时间
SIRQ: 软终端时间
第三行(以下数据一一对应)
PID: 进程系统中的ID
CPu%: 当前瞬时所使用的CPU占用率
S: 进程状态, S表示休眠, R表示正在运行, Z:表示僵死状态, N : 表示该进程优先值是负数
#ThR: 程序当前所用的线程数
VSS(Virtual Set Size): 虚拟占用内存(包含共享库占用内存)
RSS(Resident Set Size): 实际使用物理内存(包含共享库占用的内存)
PCY: 调度策略优先级,SP_BACKGROUND/SP_FOREGROUND
UID: 运行当前进程的用户ID
name: 程序名称(包名)
查看某个应用的资源占用情况
下面的findstr无法使用就更换 grep
adb shell top | findstr 包名
显示的数据与上面第三行一一对应即可
三、耗电量
需要借助第三方工具(GT和Instrument)来统计被测APP的耗电量;
四、网络流量消耗测试
可以通过抓包软件获取
五、帧率(profdog工具)
六、弱网测试
使用抓包工具测试,如charles
adb命令拓展
获取安卓版本
安卓8.0以下
adb shell dumpsys activity activities | grep mFocusedActivity
安卓8.0以上
adb shell dumpsys activity activities | grep mResumedActivity
adb无线连接(其中的端口在有些安卓手机上有自带的,开发者模式wifi无线调节中查看(如:小米))
adb connect 127.0.0.1:7555