经常关注的性能指标:
- app启动的耗时;
- cpu占比
- 流量消耗
- 电量消耗
- 内存消耗
- 流畅度
- 过度渲染
一 启动耗时
1 启动方式分类:冷启动—进程首次启动并加载数据;
热启动—进程已经启动但在后台运行的情况下,再次启动
2 冷/热启动app命令:adb shell am start -W -n Package/activity ,会得到一个app启动的耗时,可以作为参考;
冷启动后停止app命令: adb shell am force-stop Package
热启动后停止app命令: adb shell input keyevent 3
获取一个应用的包名?
输入命令:adb logcat | grep START , 启动对应应用,查找 "cmp=……" 字段,包含package/activity
3 自动化脚本的实现:
method 1: 获取命令执行时间,作为启动时间参考值
method 2: 在命令前后加上时间戳,以差值作为参考值
具体脚本见PyCharm中。
4 分析:和竞品对比;和本产品的不同版本进行对比
二 CPU占比
1 命令查看app的CPU占用: adb shell dumpsys cpuinfo | grep package
2 自动化脚本实现: 多次运行取平均值
见PyCharm
3 分析:查看值是否恒定;是否是在当前系统支持下的一个合理范围内;
三 流量消耗
1 获取流量命令:
先获取进程ID——adb shell ps | grep packagename
再获取进程流量——adb shell cat /proc/pid/net/dev
Receive: app接收的数据
Transmit: app发出的请求的数据
总流量= Receive + Transmit ,即为当前app消耗的流量的总值
对app进行一些测试操作,再次执行获取流量的命令,然后和和上次统计的流量作差,差值即为测试期间app消耗的流量
2 脚本见Pycharm
3 分析:竞品;不同版本
四:电量
1 获取电量的命令:adb shell dumpsys battery
查看其中的level值,执行一些操作后,在此查看该值,作差。
2 手机与电脑连接,一般默认处于充电状态,切换到非充电状态的命令:adb shell dumpsys battery set status 1
3 脚本测试时间建议:0.5h ~1h上
五:内存
1 获取内存的命令: adb shell top
需要取2个值:VSS——Virtual Set Size 虚拟耗用内存
RSS——Resident Set Size 实际使用物理内存
2 脚本
3 虚存和实存独立分析
六: FPS&过度渲染
1 FPS:frames per second
过度渲染:屏幕上的某个像素在同一帧的时间内被绘制了多少次
2 FPS监控方法:GPU呈现模式分析
3 过度渲染监控 :显示GPU过度绘制