APP專項測試-性能測試

啟動時間

冷啟動

進程首次創(chuàng)建

#獲取包名和Activity名稱,輸入如下命令后啟動APP在log中即可獲取到;
$adb logcat | grep START  
#啟動APP 返回time值可以計算
$adb shell am start -W -n com.android.browser/.BrowserActivity 
#停止APP啟動
$adb shell am force-stop com.android.browser

熱啟動

進程通過點擊Home鍵等進入后臺,并未殺死再次啟動;

#啟動指令同冷啟動
$adb shell am start -W -n com.android.browser/.BrowserActivity 
#停止APP,進入后臺
$adb shell input keyevent 3 

啟動時間腳本化

方法1. 獲取命令執(zhí)行時間,作為啟動時間參考值;
方法2. 在命令前后加上時間戳,以差值作為參考值(推薦);

執(zhí)行時間獲取需要
app Class: LaunchApp、StopApp、GetLaunchedTime;
Controller Class: run、CollectAllData、SaveDataToCSV;
#第一種方法的實現(xiàn):

CPU

#獲取數(shù)據(jù)
$adb shell dumpsys cpuinfo |  grep packagename

流量

#獲取進程ID指令
$adb shell ps | grep packagename 
#獲取進程對應(yīng)的流量
$adb shell cat /proc/pid/net/dev

電量

#查看電池狀態(tài)(是否充電、電池剩余量level、)
$adb shell dumpsys battery
#切換電池到非充電狀態(tài) 2是充電狀態(tài),除2以外都是非充電狀態(tài);
$adb shell dumpsys battery set status 1

內(nèi)存

定期采集數(shù)據(jù),長時間使用之后處于恒定情況,可以判定為沒有內(nèi)存泄漏;

#獲取內(nèi)存
$adb shell top -d 1 > meminfo  #-d 制定每一秒鐘刷新一次
#VSS - Virtual Set Size 虛擬消耗內(nèi)存
#RSS - R  Set Size 實際消耗內(nèi)存

FPS&過度渲染

FPS : 每秒幀數(shù)
過度渲染:描述的是屏幕上的某個像素在同一幀的時間內(nèi)被繪制了多少次;

FPS原理:手機屏幕顯示的內(nèi)容是通過Android系統(tǒng)的SurfaceFLinger類,把當前系統(tǒng)里所有進程需要顯示的信息合成一幀,然后提交到屏幕進行顯示。FPS 就是1s內(nèi)SurfaceFLinger提交到屏幕的幀數(shù)。

1.有時候FPS很低,但是我們卻不覺得App卡頓?
2.App停止操作之后,F(xiàn)PS還是一直在變化,這樣的情況是否會影 響FPS的準確度?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容