測(cè)試方法一:系統(tǒng)自帶-開發(fā)者模式
測(cè)試方法二:FPS Meter測(cè)試安卓幀數(shù)
H5頁(yè)面加載速度:window.performance.timing
測(cè)試方法一:系統(tǒng)自帶-開發(fā)者模式
實(shí)際上撮奏,為了方便開發(fā)者測(cè)試,安卓本身就內(nèi)置了流暢度檢測(cè)的功能。不過(guò)书在,這需要我們開啟隱藏的開發(fā)者選項(xiàng)倒脓。如果你在用原生系統(tǒng)墓毒,那么開啟開發(fā)者選項(xiàng)的方法很簡(jiǎn)單恕沫,進(jìn)入到設(shè)置菜單“關(guān)于手機(jī)”頁(yè)面胆萧,點(diǎn)擊數(shù)次“版本號(hào)”礼旅,即可開啟開發(fā)者選項(xiàng)膳叨。如果用的是其他ROM,方法也許有所不同痘系,比如說(shuō)魅族的Flyme開啟開發(fā)者選項(xiàng)的方法是在撥號(hào)界面輸入“*#*#6961#*#*”菲嘴,其他機(jī)器方法也各有不同,大家可以參照廠商的說(shuō)明汰翠。
進(jìn)入到開發(fā)者選項(xiàng)龄坪,可以看到有“GPU呈現(xiàn)模式分析”的選項(xiàng),開啟后即可以條形圖和線形圖的方法顯示系統(tǒng)的界面響應(yīng)速度复唤,可以用以觀察系統(tǒng)流暢度健田。那么要如何根據(jù)曲線判斷系統(tǒng)是否流暢呢?實(shí)際上這個(gè)曲線表達(dá)的是GPU繪制每一幀界面的時(shí)間佛纫,只要不超過(guò)頂部綠線妓局,都可以視為足夠流暢。
開啟GPU呈現(xiàn)模式分析
只要下方的曲線不超過(guò)綠線呈宇,都可以視之為流暢
使用系統(tǒng)自帶方法測(cè)試流暢度的好處很多跟磨,首先是數(shù)據(jù)準(zhǔn)確,系統(tǒng)肯定最知道自己的幀率如何攒盈;其次是不占資源抵拘,對(duì)流暢度測(cè)試的影響比較小。那么這個(gè)方法是否萬(wàn)無(wú)一失呢型豁?其實(shí)還是有一些缺點(diǎn)的僵蛛。比如說(shuō)利用CPU渲染UI的App界面尚蝌,就無(wú)法得到測(cè)試結(jié)果(當(dāng)然這些界面基本無(wú)一例外卡頓無(wú)比,不用測(cè)也知道不流暢)充尉;當(dāng)系統(tǒng)停頓了一下飘言,例如微博加載圖片時(shí),響應(yīng)速度會(huì)大幅增加驼侠,曲線瞬間突破綠線——這情況不能說(shuō)不流暢姿鸿,因?yàn)檫@屬于內(nèi)容和界面先后響應(yīng)的機(jī)制,如果光憑曲線是否突破綠線判斷是否流暢倒源,未免太過(guò)局限苛预。
1.在設(shè)置里打開GPU呈現(xiàn)模式分析。點(diǎn)擊Android設(shè)備的“設(shè)置”->"開發(fā)者選項(xiàng)"笋熬,然后勾選“GPU顯示配置文件”热某。
2.? 1.點(diǎn)擊Android設(shè)備的“設(shè)置”->"開發(fā)者選項(xiàng)",然后勾選“GPU顯示配置文件”胳螟。重啟我們的應(yīng)用昔馋。啟動(dòng)應(yīng)用以后,在應(yīng)用的頁(yè)面上做滑動(dòng)
??? ?2.lijiedeMacBook-Air:~ lijie$ adb shell dumpsys gfxinfo com.dianping.v1>fps.txt
3.打開生成的fps.txt糖耸,找到Profile data in ms這部分?jǐn)?shù)據(jù)秘遏。
4.為了看得更直接,我們可以把數(shù)據(jù)放到Excel中嘉竟,然后以圖表的形式進(jìn)行查看邦危。
5.從圖中可以看出來(lái),我這個(gè)應(yīng)用的流暢度是很低的周拐,正常情況下幀率應(yīng)該在16ms左右铡俐,如果1秒60幀的話凰兑,而且Execute時(shí)間太長(zhǎng)妥粟!所以是需要進(jìn)行優(yōu)化的。
點(diǎn)評(píng)APP:
? ? ???a: "Draw" : 創(chuàng)建顯示列表(display lists吏够,記錄所有view對(duì)象的繪制指令)的時(shí)間開銷勾给。
? ? ? ?b: "Process" : 執(zhí)行顯示列表中繪制指令的時(shí)間。UI視窗中的View數(shù)量越多锅知,需要執(zhí)行的繪畫命令就越多播急。
? ? ? ?c: "Execute" : 將一幀圖像交給合成器compostior的時(shí)間。這部分占用的時(shí)間通常比較少
測(cè)試方法二:FPS Meter測(cè)試安卓幀數(shù)
FPS Meter是一款非常實(shí)用的小軟件售睹,能夠用數(shù)字實(shí)時(shí)顯示安卓界面的每秒幀數(shù)桩警,非常直觀。此外昌妹,F(xiàn)PS Meter還可以顯示最大幀數(shù)捶枢、最小幀數(shù)以及平均幀數(shù)握截,用來(lái)評(píng)價(jià)安卓流暢度極具價(jià)值。由于涉及到了系統(tǒng)功能烂叔,所以FPS Meter需要root谨胞。如果你打算嘗試,請(qǐng)先root機(jī)后再使用蒜鸡。
軟件名稱:FPS顯示(FPS Meter)
軟件版本:1.5
軟件大锌枧:218KB
軟件授權(quán):免費(fèi)
適用平臺(tái):Android
下載地址:http://dl.pconline.com.cn/download/76451.html
FPS Meter的使用很簡(jiǎn)單,開啟App后啟動(dòng)服務(wù)即可逢防。在App內(nèi)叶沛,你可以選擇幀數(shù)顯示的位置,以及是否開啟平均幀數(shù)胞四、最低/最高幀數(shù)顯示恬汁。開啟服務(wù)后,即可看到有幀數(shù)顯示于界面上辜伟。這里要注意氓侧,使用FPS Meter測(cè)量幀數(shù)需要在開發(fā)者選項(xiàng)中停用HW疊加層才會(huì)比較準(zhǔn)確。
?????????????????????? FPS Meter可以顯示最大最小幀數(shù)以及平均幀數(shù)
FPS Meter可以測(cè)試界面幀數(shù)导狡,不過(guò)某些手機(jī)如果界面靜止约巷,幀數(shù)會(huì)為0。FPS Meter除了測(cè)量系統(tǒng)界面幀數(shù)外旱捧,還可以用來(lái)測(cè)量游戲的幀數(shù)独郎,所以用FPS Meter來(lái)測(cè)試某部安卓機(jī)游戲性能多強(qiáng)也是個(gè)很好的選擇。
當(dāng)然枚赡,F(xiàn)PS Meter也并非十全十美氓癌。由于屬于第三方App,所以可能會(huì)有一些兼容性問題贫橙。某些安卓機(jī)或者ROM使用FPS Meter可能會(huì)不兼容贪婉,即使成功開啟了幀數(shù)顯示也沒法測(cè)量到準(zhǔn)確數(shù)值,而某些設(shè)備使用FPS Meter甚至?xí)罊C(jī)卢肃。不過(guò)在大多數(shù)情況下疲迂,這款A(yù)pp還是相當(dāng)值得信任的。
安卓在多個(gè)版本中都通過(guò)新技術(shù)提升了流暢度莫湘,比如說(shuō)安卓2.3引入Dalvik尤蒿、安卓4.0引入GPU界面繪制、安卓4.1引入黃油計(jì)劃幅垮、安卓4.3引入Trim以及安卓4.4引入ART等等腰池。
H5頁(yè)面加載速度:window.performance.timing
Android以上測(cè)試方法不適用h5頁(yè)面
如何分析頁(yè)面整體加載速度:
? ? ?主要是查看指標(biāo)值PAGET_頁(yè)面加載時(shí)間,此指標(biāo)指的是頁(yè)面整體加載時(shí)間但不含(onload事件和redirect), 此指標(biāo)值可直接反應(yīng)用戶體驗(yàn), 從此項(xiàng)指標(biāo)可以知道指定某時(shí)間段的頁(yè)面加載速度值,以及和天,周,月的對(duì)比狀況.也可以查詢指標(biāo)ALLT_頁(yè)面完全加載時(shí)間, 可以查詢到從瀏覽器開始導(dǎo)航(用戶點(diǎn)擊鏈接或在地址欄輸入url或點(diǎn)刷新,后退按鈕)到頁(yè)面onload 事件js完全跑完的所有時(shí)間.如果發(fā)現(xiàn)頁(yè)面加載速度有增加或減少,則可以分項(xiàng)查詢前面表格中的每個(gè)指標(biāo)值,總的來(lái)說(shuō)他們的關(guān)系如下:
dom開始加載前所有花費(fèi)時(shí)間=重定向時(shí)間+域名解析時(shí)間+建立連接花費(fèi)時(shí)間+請(qǐng)求花費(fèi)時(shí)間+接收數(shù)據(jù)花費(fèi)時(shí)間
pageLoadTime頁(yè)面加載時(shí)間=域名解析時(shí)間+建立連接花費(fèi)時(shí)間+請(qǐng)求花費(fèi)時(shí)間+接收數(shù)據(jù)花費(fèi)時(shí)間+解析dom花費(fèi)時(shí)間+加載dom花費(fèi)時(shí)間
allLoadTime頁(yè)面完全加載時(shí)間=重定向時(shí)間+域名解析時(shí)間+建立連接花費(fèi)時(shí)間+請(qǐng)求花費(fèi)時(shí)間+接收數(shù)據(jù)花費(fèi)時(shí)間+解析dom花費(fèi)時(shí)間+加載dom花費(fèi)時(shí)間+執(zhí)行onload事件花費(fèi)時(shí)間
?resourcesLoadedTime資源加載時(shí)間=解析dom花費(fèi)時(shí)間+加載dom花費(fèi)時(shí)間
流暢度暫時(shí)沒有發(fā)現(xiàn)好用的測(cè)試衡量工具,開發(fā)層面了解,主要是根據(jù)log分析