Android APP性能測試--GPU、耗電、流量、crash、 lint警告
本篇我們來介紹GPU渲染、耗電量、網(wǎng)絡流量消耗、crash崩潰檢測、lint警告這5個模塊。
1.GPU渲染
GPU渲染是指在一個像素點上繪制多次(超過一次):顯示一個什么都沒有做的activity界面算作畫了1層,給activity加一個背景是第2層,在上面放了一個Text View(有背景的Text View)是第3層,Text View顯示文本就是第4層,僅僅只是為了顯示一個文本,卻在同一個像素點繪制了四次,這是一定要優(yōu)化的。過度繪制對動畫性能的影響是極其嚴重的,如果你想要流暢的動畫效果,那么一定不能忽視過度繪制。
1.1 測試方法
1)手機自動的Debug GPU overdraw
- 打開手機—>設置—>開發(fā)者選項—>調(diào)試GPU過度繪制—>顯示過度繪制區(qū)
- 打開被測的應用
GPU過渡渲染不同的顏色代表不同的繪制程度
- 原色:無過渡繪制
- 藍色:繪制一次 (理想狀態(tài))
- 綠色:繪制二次
- 淺紅:繪制三次 (可以優(yōu)化)
- 深紅:繪制四次 (必須優(yōu)化)
測試指標:
- 控制過渡繪制為2x
- 不允許存在4x過渡繪制
- 不允許存在面積超過屏幕1/4的3x過渡繪制
2.耗電量
測試應用對電量的消耗前需要對手機本身的電量消耗有個大概了解,測試前先看規(guī)定時間內(nèi)手機正常待機下(重啟后待機)電量消耗為多少。然后再啟動待測試APP看看消耗的電量增加了多少,然后取兩者之間的差值。
2.1測試點
- 測試手機安裝目標APK前后待機功耗無明顯差異;
- 常見使用場景中能夠正常進入待機,待機電流在正常范圍內(nèi);
- 長時間連續(xù)使用應用無異常耗電現(xiàn)象。
2.2 測試方法 :
前提:先關閉所有的應用,再打開被測app
- 使用第三方測試工具:GT等,只需要測試的電流靜置一晚,待機電流在正常范圍內(nèi)即可。一般是被測應用對比待機電流<=2mA。
- 使用adb命令
具體測試方法如下:
1. 測試環(huán)境:
- 1)android手機,wifi/4g
2. 測試步驟:
- 清除已有的耗電量數(shù)據(jù)
- adb shell dumpsys batterystats --enable full-wake-history
- 設備耗電量數(shù)據(jù)重置
- adb shell dumpsys batterystats --reset
- 打開應用,測試場景(注意測試時手機不能連電腦)
- 導出應用耗電信息
- adb shell dumpsys batterystats 包名| more > C:\Users\charles\Desktop\a.txt
3. 網(wǎng)絡流量消耗
- 中等負荷:應用正常操作;
- 高負荷:應用極限操作。
3.1測試點
- 應用首次啟動流量值
- 應用后臺連續(xù)運行 2 小時的流量值
- 應用高負荷運行的流量峰值
- 應用中等負荷運行時的流量均值
3.2測試方法 :
1) 通過adb shell dumpsys package來獲取被測應用的uid信息,在未操作應用之前,通過查看
- adb shell cat /proc/uid_stat/uid/tcp_rcv
- adb shell cat /proc/uid_stat/uid/tcp_snd
獲取到應用的起始的接收及發(fā)送的流量。Android系統(tǒng)自帶統(tǒng)計功能(總體流量數(shù)值)Proc/uid_stat/{UID}/tcp_snd和tcp_rcv。
- UID是每個app安裝時候分配的唯一編號用于識別該app.
- tcp_snd:表示發(fā)送數(shù)據(jù)累計大小,單位是字節(jié)
- tcp_rcv:表示接收到的數(shù)據(jù)累計大小。
在操作應用后,再次通過上述命令獲取到應用的結束時接收及發(fā)送的流量,通過相減即得到應用的整體流量消耗。
2)使用第三方測試工具:GT等。TrafficStats類是Android提供的一個流暢統(tǒng)計類,可以統(tǒng)計手機開機累計到現(xiàn)在使用的流量,也可以統(tǒng)計某個或者多個進程或者應用所使用流量,包括Wi-Fi和移動數(shù)據(jù)GPRS。
GT使用
TrafficStats.getUidTxBytes(uid)來獲取流量數(shù)據(jù)(該方法號稱是獲取到指定 uid 發(fā)送流量的總和,但實測情況是只有 tcp 層的流量)。
3)使用一些測試工具,比如teslin云測平臺
以手上測試APP為例,其網(wǎng)絡流量測試結果如下圖所示:
4.crash崩潰
通過查看bugly的崩潰反饋,明確出現(xiàn)崩潰的版本和模塊。
常見模塊及其關鍵字對照:
- login :賬號
- videodetail :短視頻
- ad :廣告
5. lint警告
Lint 是Android Studio 提供的代碼掃描分析工具,它可以幫助我們發(fā)現(xiàn)代碼結構/質(zhì)量問題,同時提供一些解決方案,而且這個過程不需要我們手寫測試用例。
Lint 發(fā)現(xiàn)的每個問題都有描述信息和等級(和測試發(fā)現(xiàn) bug 很相似),我們可以很方便地定位問題,同時按照嚴重程度進行解決。
查詢方式:android studio里面的 Analyze->Inspect Code
查詢結果:
以上便是性能測試下篇的內(nèi)容,截止到這里,也算是把APP性能測試主要關注的點都講了一下。