FFmpeg统计APP启动时间

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统计出来的结果更加精确一点,更贴近用户体验。

推荐阅读更多精彩内容