APP启动定义
关于APP的启动,一般分为3种:
- 第一次冷启---第一次安装启动
- 冷启---完全杀掉进程后启动
- 热起---后台唤醒
一般我们做专项测试的时候需要测试的是,第二种场景,完全杀掉进程后启动APP。
adb命令统计启动时间
使用adb命令统计启动时间,一般分为3个步骤:
- 1.杀掉进程
adb shell am force-stop packagename
- 2.启动APP
adb shell am start -W packagename/activity----一般用于首次启动
如何获取APP packagename和activity,方法很多
aapt dump badging xxx.apk
adb shell
locat | grep START
命令很多,不再一一赘述
- 3.检查启动时间
adb locat | findstr Displayed--通过日志
但是这样的方法有一个弊端,统计出来的时间会比用户真实的感官启动时间要短一点。
原因是adb命令无法获取一些画面渲染的时间,如果想要得出用户感官方面真实的启动时间,就要借助FFmpeg。
使用FFmpeg
关于FFmpeg,一般做音视频相关的同学可能了解的比较多,介绍可以去官网学习。
用来统计启动时间,也只是用到了FFmepg强大功能的冰山一角。
FFmepg安装等这边不一一介绍了,可以自行百度了解。
使用FFmpeg统计启动时间大致分为如下几个步骤:
1.录屏
录屏之前建议打开设置里面的显示指针位置的选项,后面便于识别
很多手机如华为等自带录屏功能,
其他手机可以用adb命令进行录屏
adb shell screenrecord --time-limit 10 /sdcard/douyin.mp4
adb pull /sdcard/douyin.mp4 /Users/dong/Desktop/video
运行第一个录屏的命令,点击APP,直到全部加载成功,limit 10表示限制10s,一般情况下肯定是足够的
然后把视频导出到电脑中
2.使用FFmpeg进行分桢
ffmpeg -i d:/test/douyin.mp4 -r 10 d:/test/douyin-start-%05d.png
- i 后接视频源文件
-r 默认25,1s截取25张图
最后是截取的图片地址和文件名
最终分桢的结果如下所示:
ffmpeg.png
由于我们用到的参数是 -r 10 所以两张照片直接的间隔是 100ms,逐张检查图片,找到最开始点击的图片和完全加载成功的图片
click.png
show.png
可以看出从点击到图片全部加载成功,用时 26*100ms
大约2600 ms
对比一下上面的adb命令统计出来的结果,ffmpeg统计出来的结果更加精确一点,更贴近用户体验。