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 badgingxxx.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-id:/test/douyin.mp4-r 10d:/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統計出來的結果更加精確一點,更貼近使用者體驗。