最近在做APP质量竞品分析,其中包括Android前端性能这块,写写总结(Android性能基线和常用命令)。
一、Android性能测试基准
原生 | 页面重绘 | 4X重绘面积不超过整个页面的1/3 |
流畅度 | 不出现丢帧数>=20的情况 | |
冷启动时间 | 不超过1秒 | |
cpu | 1.前台运行时,未操作,cpu不能被持续占用 2.后台运行时,cpu不能被持续占用 3.熄屏运行时,cpu不能被持续占用 4.退出页面时,上个页面的处理逻辑应立即停止,防止cpu被占用 5.通过竞品对比,优化算法 | |
内存 | 1.dalvik heap内存不超过手机(不同的手机可能不一样)限制 2.不出现内存泄漏 | |
页面响应时间 | 不超过1秒 | |
流量 | 1.流量消耗最大的部分为图片,减小图片的大小(保证图片大小在100KB以下) 2.在Android中使用webp格式的图片,能节省大约1/3的流量消耗 3.不存在冗余的请求 4.缓存网页、图片资源 5.静默、后台运行、熄屏状态下的流量消耗(特别是移动网络下) 6.在移动网络下,后台运行流量消耗1小时不超过1KB | |
电量 | 与CPU保持一致 | |
稳定性 | 不出现crash,anr (使用monkey进行测试) |
H5 | 在wifi、4g、3g网络下白屏时间不超过1.5秒 |
在wifi、4g网络下加载时间不应超过3秒 | |
在3g网络环境下加载时间不应超过6秒 | |
网页大小不超过500KB |
二、Android性能测试常用命令
-
启动时间
安装启动时间: 首次安装后启动时间
冷启动时间:后台没有改应用进程的时候启动应用所花的时间
热启动时间:当应用已经被打开,按home健回到桌面或者其他程序的时候启动应用所花的时间
adb shell am start -W -n app包名/启动activity名
备注:获取包名/启动activity名,如下:
aapt dump badging apk路径
- 页面响应时间
页面跳转所花的时间(如:点击一个区域,跳转到另一个页面所花的时间)
adb shell logcat | grep Display
- 流畅度 (测试手机需root)
丢帧数:在android中,丢帧数为0为最佳状态,丢帧数不宜大于20
su
setprop debug.choreographer.skipwarning 1
getprop debug.choreographer.skipwarning
setprop ctl.restart surfaceflinger; setprop ctl.restart zygote
logcat -v time Choreographer:I *:S -
cpu
cpu持续占用,将会导致:电量消耗大;手机发烫;手机卡顿
例子:adb shell "top -d 1 | grep com.pmp.pp"
- 稳定性
monkey 持续测试5分钟
例子:adb shell monkey -p com.pmp.pp -v 101000