Android流暢度測試
測試方法一:系統自帶-開發者模式
實際上,為了方便開發者測試,安卓本身就內置了流暢度檢測的功能。不過,這需要我們開啟隱藏的開發者選項。如果你在用原生系統,那么開啟開發者選項的方法很簡單,進入到設置菜單“關於手機”頁面,點擊數次“版本號”,即可開啟開發者選項。如果用的是其他ROM,方法也許有所不同,比如說魅族的Flyme開啟開發者選項的方法是在撥號界面輸入“*#*#6961#*#*”,其他機器方法也各有不同,大家可以參照廠商的說明。
進入到開發者選項,可以看到有“GPU呈現模式分析”的選項,開啟后即可以條形圖和線形圖的方法顯示系統的界面響應速度,可以用以觀察系統流暢度。那么要如何根據曲線判斷系統是否流暢呢?實際上這個曲線表達的是GPU繪制每一幀界面的時間,只要不超過頂部綠線,都可以視為足夠流暢。
開啟GPU呈現模式分析
只要下方的曲線不超過綠線,都可以視之為流暢
使用系統自帶方法測試流暢度的好處很多,首先是數據准確,系統肯定最知道自己的幀率如何;其次是不占資源,對流暢度測試的影響比較小。那么這個方法是否萬無一失呢?其實還是有一些缺點的。比如說利用CPU渲染UI的App界面,就無法得到測試結果(當然這些界面基本無一例外卡頓無比,不用測也知道不流暢);當系統停頓了一下,例如微博加載圖片時,響應速度會大幅增加,曲線瞬間突破綠線——這情況不能說不流暢,因為這屬於內容和界面先后響應的機制,如果光憑曲線是否突破綠線判斷是否流暢,未免太過局限。
1.在設置里打開GPU呈現模式分析。點擊Android設備的“設置”->"開發者選項",然后勾選“GPU顯示配置文件”。
2. 1.點擊Android設備的“設置”->"開發者選項",然后勾選“GPU顯示配置文件”。重啟我們的應用。啟動應用以后,在應用的頁面上做滑動
2.lijiedeMacBook-Air:~ lijie$ adb shell dumpsys gfxinfo com.dianping.v1>fps.txt
3.打開生成的fps.txt,找到Profile data in ms這部分數據。
4.為了看得更直接,我們可以把數據放到Excel中,然后以圖表的形式進行查看。
5.從圖中可以看出來,我這個應用的流暢度是很低的,正常情況下幀率應該在16ms左右,如果1秒60幀的話,而且Execute時間太長!所以是需要進行優化的。
點評APP:
a: "Draw" : 創建顯示列表(display lists,記錄所有view對象的繪制指令)的時間開銷。
b: "Process" : 執行顯示列表中繪制指令的時間。UI視窗中的View數量越多,需要執行的繪畫命令就越多。
c: "Execute" : 將一幀圖像交給合成器compostior的時間。這部分占用的時間通常比較少
測試方法二:FPS Meter測試安卓幀數
FPS Meter是一款非常實用的小軟件,能夠用數字實時顯示安卓界面的每秒幀數,非常直觀。此外,FPS Meter還可以顯示最大幀數、最小幀數以及平均幀數,用來評價安卓流暢度極具價值。由於涉及到了系統功能,所以FPS Meter需要root。如果你打算嘗試,請先root機后再使用。
軟件名稱: |
FPS顯示(FPS Meter) |
軟件版本: |
1.5 |
軟件大小: |
218KB |
軟件授權: |
免費 |
適用平台: |
Android |
下載地址: |
FPS Meter的使用很簡單,開啟App后啟動服務即可。在App內,你可以選擇幀數顯示的位置,以及是否開啟平均幀數、最低/最高幀數顯示。開啟服務后,即可看到有幀數顯示於界面上。這里要注意,使用FPS Meter測量幀數需要在開發者選項中停用HW疊加層才會比較准確。
FPS Meter可以顯示最大最小幀數以及平均幀數
FPS Meter可以測試界面幀數,不過某些手機如果界面靜止,幀數會為0。FPS Meter除了測量系統界面幀數外,還可以用來測量游戲的幀數,所以用FPS Meter來測試某部安卓機游戲性能多強也是個很好的選擇。
當然,FPS Meter也並非十全十美。由於屬於第三方App,所以可能會有一些兼容性問題。某些安卓機或者ROM使用FPS Meter可能會不兼容,即使成功開啟了幀數顯示也沒法測量到准確數值,而某些設備使用FPS Meter甚至會死機。不過在大多數情況下,這款App還是相當值得信任的。
安卓在多個版本中都通過新技術提升了流暢度,比如說安卓2.3引入Dalvik、安卓4.0引入GPU界面繪制、安卓4.1引入黃油計划、安卓4.3引入Trim以及安卓4.4引入ART等等。
H5頁面加載速度:window.performance.timing
Android以上測試方法不適用h5頁面
如何分析頁面整體加載速度:
主要是查看指標值PAGET_頁面加載時間,此指標指的是頁面整體加載時間但不含(onload事件和redirect), 此指標值可直接反應用戶體驗, 從此項指標可以知道指定某時間段的頁面加載速度值,以及和天,周,月的對比狀況.也可以查詢指標ALLT_頁面完全加載時間, 可以查詢到從瀏覽器開始導航(用戶點擊鏈接或在地址欄輸入url或點刷新,后退按鈕)到頁面onload 事件js完全跑完的所有時間.如果發現頁面加載速度有增加或減少,則可以分項查詢前面表格中的每個指標值,總的來說他們的關系如下:
dom開始加載前所有花費時間=重定向時間+域名解析時間+建立連接花費時間+請求花費時間+接收數據花費時間
pageLoadTime頁面加載時間=域名解析時間+建立連接花費時間+請求花費時間+接收數據花費時間+解析dom花費時間+加載dom花費時間
allLoadTime頁面完全加載時間=重定向時間+域名解析時間+建立連接花費時間+請求花費時間+接收數據花費時間+解析dom花費時間+加載dom花費時間+執行onload事件花費時間
resourcesLoadedTime資源加載時間=解析dom花費時間+加載dom花費時間
流暢度暫時沒有發現好用的測試衡量工具,開發層面了解,主要是根據log分析