App 專項測試之 GPU 過度渲染


一、簡介

1. 過度繪制:某些組件在屏幕像素點上繪制次數超過一次

2. 幀率:屏幕刷新率

3. 幀方差:屏幕刷新幀間隔方差

二、GPU測試項

1. 界面過度繪制

2. 屏幕滑動幀速率

3. 屏幕滑動平滑度

三、GPU測試方法

3.1 Show GPU Overdraw

開發者選項-調試GPU過度繪制-顯示過度繪制區域(只有Android 4.2及以上版本的手機才具備該功能)

不同顏色代表含義(無色:無過度繪制,即該像素點只繪制1次;藍色:1x過度繪制,即該像素點繪制了2次;綠色:2x過度繪制;淺紅:3x過度繪制;紅色:4x過度繪制)

驗收標准:不允許出現黑色像素;不允許存在4x過度繪制;不允許存在面積超過屏幕1/4區域的3x過度繪制(淡紅色區域)

3.2 Profile GPU Rendering

法一:開發者選項-GPU呈現模式分析-在屏幕上顯示條形圖,只要不超過屏幕綠線,都可以視為足夠流暢。當響應速度大幅增加,曲線瞬間突破綠線時也不能說明系統不流暢

 

各android系統下不同顏色代表的含義:

  • android 4.x:藍色-代表繪制時間,即創建和更新display lists的時間;紅色-代表執行時間,即系統進行2D選軟Display list的時間;橙色-代表處理時間,即CPU等待GPU完成渲染處理的時間
  • android 5.x:新增紫色-代表渲染線程寫入資源所需時間
  • android 6.x:變成9種顏色,將渲染過程中的幾大步驟進一步細分,可以通過Android Studio上的GPU Monitor可以看到各個顏色含義更新

  • Swap Buffers:對應原來的橙色,表示處理任務的時間,線程越高,表示GPU做的事情越多
  • Command Issue:對應原來的紅色,表示執行任務的時間,為了將內容繪制到屏幕上,Android 需要使用Open GL ES 的API接口來繪制顯示列表,紅色線條越高表示需要繪制的視圖更多。
  • Sync & Upload:表示的是准備當前界面上有待繪制的圖片耗費的時間,為了減少該段區域的執行時間,可以減少屏幕上的圖片數量或者是縮小圖片的大小。
  • Draw:對應原來的藍色,表示測量和繪制視圖列表所需要的時間,藍色線條越高表示每一幀要更新很多視圖,或者View的onDraw方法中做了耗時操作。
  • Measure/Layout:表示布局的onMeasure與onLayout所花費的時間,一旦時間過長,就需要仔細檢查自己的布局是不是存在嚴重的性能問題。
  • Animation:表示計算執行動畫所需要花費的時間,包含的動畫有ObjectAnimator,ViewPropertyAnimator,Transition等,一旦這里的執行時間過長,就需要檢查是不是使用了非官方的動畫工具或者是檢查動畫執行的過程中是不是出發了讀寫操作等。
  • Input Handling:表示系統處理輸入事件所耗費的時間,粗略等於對時間處理方法所執行的時間。一旦執行時間過長,意味着在處理用戶的輸入時間的地方執行了復雜的操作。
  • Misc Time/Vsync Delay:表示在主線程執行了太多的任務,導致UI渲染跟不上vSync的信號而出現掉幀的情況;出現該線條的時候,可以在log中看到這樣的日志:I/Choreographer(*): Skipped XXX frames! The application may be doing too much work on its main thread

法二:開發者選項-GPU呈現模式分析--在 adb shell dumpsys gfxinfo 中

重啟應用后,在應用的頁面上做滑動,終端通過命令“ adb shell dumpsys gfxinfo 包名 >d:\fps.txt” 獲取到對應的幀渲染日志文件,在txt文件中找到Profile data in ms這部分數據,可以把數據copy到excel中以圖標的形式進行查看。

 

  • Draw:創建顯示列表(display lists,記錄所有view對象的繪制指令)的時間開銷。
  • Process:執行顯示列表中繪制指令的時間,UI視窗中View數量越多,需要執行的繪畫命令就越多。
  • Execute:將一幀圖像交給合成器compositor的時間,這部分占用的時間通常比較小。
  • Prepare:UI Thread傳送數據給Render Thread所用的時間。

3.3 GPU View Updates    

 開發者選項-顯示GPU視圖更新。主要查看view的更新以及redraw的區域大小。

3.4 GPU Monitor

Android Studio 1.4之后的版本中集成了GPU Monitor,手機需為debug版本。

GPU Monitor的監控結果與GPU呈現模式分析中在手機屏幕上顯示的柱狀圖一致。

3.5 GPU 廠商提供的工具

高通開發了兩個能夠檢測GPU的工具Adreno Profiler、Trepn Profiler,但是僅僅支持使用了高通CPU/GPU的移動設備...

3.6 FPS Meter工具


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM