掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
本篇我們來介紹GPU渲染、耗電量、網(wǎng)絡(luò)流量消耗、crash崩潰檢測(cè)、lint警告這5個(gè)模塊。

十載的臺(tái)山網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。網(wǎng)絡(luò)營銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整臺(tái)山建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“臺(tái)山網(wǎng)站設(shè)計(jì)”,“臺(tái)山網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
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)化的。過度繪制對(duì)動(dòng)畫性能的影響是極其嚴(yán)重的,如果你想要流暢的動(dòng)畫效果,那么一定不能忽視過度繪制。
1)手機(jī)自動(dòng)的Debug GPU overdraw
GPU過渡渲染不同的顏色代表不同的繪制程度
測(cè)試指標(biāo):
測(cè)試應(yīng)用對(duì)電量的消耗前需要對(duì)手機(jī)本身的電量消耗有個(gè)大概了解,測(cè)試前先看規(guī)定時(shí)間內(nèi)手機(jī)正常待機(jī)下(重啟后待機(jī))電量消耗為多少。然后再啟動(dòng)待測(cè)試APP看看消耗的電量增加了多少,然后取兩者之間的差值。
前提:先關(guān)閉所有的應(yīng)用,再打開被測(cè)app
具體測(cè)試方法如下:
1. 測(cè)試環(huán)境:
2. 測(cè)試步驟:
- adb shell dumpsys batterystats --enable full-wake-history
- adb shell dumpsys batterystats --reset
- adb shell dumpsys batterystats 包名| more > C:\Users\charles\Desktop\a.txt
1) 通過adb shell dumpsys package來獲取被測(cè)應(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。
在操作應(yīng)用后,再次通過上述命令獲取到應(yīng)用的結(jié)束時(shí)接收及發(fā)送的流量,通過相減即得到應(yīng)用的整體流量消耗。
2)使用第三方測(cè)試工具: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ù)(該方法號(hào)稱是獲取到指定 uid 發(fā)送流量的總和,但實(shí)測(cè)情況是只有 tcp 層的流量)。
3)使用一些測(cè)試工具,比如teslin云測(cè)平臺(tái)
以手上測(cè)試APP為例,其網(wǎng)絡(luò)流量測(cè)試結(jié)果如下圖所示:
通過查看bugly的崩潰反饋,明確出現(xiàn)崩潰的版本和模塊。
常見模塊及其關(guān)鍵字對(duì)照:
Lint 是Android Studio 提供的代碼掃描分析工具,它可以幫助我們發(fā)現(xiàn)代碼結(jié)構(gòu)/質(zhì)量問題,同時(shí)提供一些解決方案,而且這個(gè)過程不需要我們手寫測(cè)試用例。
Lint 發(fā)現(xiàn)的每個(gè)問題都有描述信息和等級(jí)(和測(cè)試發(fā)現(xiàn) bug 很相似),我們可以很方便地定位問題,同時(shí)按照嚴(yán)重程度進(jìn)行解決。
查詢方式:android studio里面的 Analyze->Inspect Code
查詢結(jié)果:
以上便是性能測(cè)試下篇的內(nèi)容,截止到這里,也算是把APP性能測(cè)試主要關(guān)注的點(diǎn)都講了一下。

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流