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, 一般做音视频相关的同学可能了解的比较多, 介绍可以去官网 https://ffmpeg.org/ 学习.
用来统计启动时间, 也只是用到了 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 统计出来的结果更加精确一点, 更贴近用户体验.
来源: http://www.jianshu.com/p/9ae7abea6689