App启动性能分析
测试思路
专项测试(用户维度)
- 崩溃(Crash,弱网)。卡顿(掉帧、gc、cpu)
- 响应慢(启动时间、交互响应、H5加载)
- 发热 ( cpu,mem、io、network、gps等硬件使用)
- 掉电快(硬件占用)
- 兼容性问题(机型覆盖、回归)
专项测试(技术维度)
- 崩溃
自动遍历、monkey测试、横竖屏切换、快速进退。
- 卡顿(掉帧、gc、cpu)
卡顿测试、内存泄漏测试、method profile。
- 响应慢(启动时间、交互响应、H5加载)。
冷热启动、界面切换、h5性能测试
- 发热(cpu,mem、io、network、gps等硬件使用)
method profile、gc统计、io统计、流量统计、硬件使用统计、耗电量分析。
- 兼容性问题(机型覆盖、回归)
兼容性测试、自动化测试、自动遍历、monkey测试
APP性能
Activity启动流程
App启动性能指标
冷启动 建议时间:5秒
暖启动 建议时间:2秒
热启动 建议时间:1.5秒
首屏启动
主要流程
- adb logcat
- 录屏 视频拆帧
- uiautomator等自动化工具200ms巡检界面变化
- traceview
- 硬埋点
使用adb logcat
- package=com.tianqi.android
- 清理缓存数据: adb shell pm clear $package
- 停止进程: adb shell am force-stop $package
- 启动app: adb shell am start -S-W $package/.view.WelcomeActivity Alias
- 获取数据: adb logcat lgrep -i displayed
adb logcat结果
startTime:记录刚准备调用startActivity AndWait()的时间点
endTime:记录startActivityAndWait()函数调用返回的时间点
WaitTime: startActivityAndWait()调用耗时
WaitTime = endTime - startTime
使用ffmpeg拆针
- adb shell am force-stop $package
- adb shell screenrecord, --bugreport --time-limit 30 /data/local/tmp/xueqiu.mp4 &
- adb shell am start -S-W $package/.view.WelcomeActivity Alias
- wait
- adb pull /data/local/tmp/xueqiu.mp4 .
- ffmpeg -i xueqiu.mp4 xueqiu.gif
- ffmpeg i xueqiu.mp4 -r 10 frames_d.jpg