新聞中心
本篇我們來介紹GPU渲染、耗電量、網(wǎng)絡(luò)流量消耗、crash崩潰檢測、lint警告這5個(gè)模塊。

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


咨詢
建站咨詢
