1. 程式人生 > >Android流暢度之幀率

Android流暢度之幀率

package 獲取 執行 info oot 實測 target blank 記錄

背景:app改版,人為感受卡頓,需要客觀數據支撐觀點。故,搜索各種性能指標,並理解之。(這是一篇摘要文......)

首先,明確人為感受的性能不好屬於下面哪種:

1. 響應時間,界面跳轉後響應時間;

2. 流暢度,界面操作時或動畫展示的效果;

而流暢度的衡量指標又有幾種:

1. 幀率fps(Frames Per Second,每秒鐘填充圖像的幀率)

2. 丟幀SF(Skipped frame)

3. 流暢度SM(SMoothness)(騰訊分享)

其中得到最廣泛使用的還是幀率。以下詳細說明之

回顧本源:Android如何繪制UI?

參考:顯示性能指標、性能評測調優

幀率值在什麽範圍可認定為流暢?

理想狀態每秒展示60幀時人眼感受不到卡頓,1000ms/60幀,即每幀繪制時間不應超過16.67ms。

幀率如何計算?

  • adb shell dumpsys gfxinfo <PACKAGE_NAME> 參考:Testing Display Performance
  • adb shell dumpsys SurfaceFlinger --latency <window_activity> 參考:Android性能測試之fps獲取

二者的區別是什麽?

參考:FPS計算方法比較

實測補充說明:

  • 前提需要打開設置中的GPU繪制選項
  • 只記錄執行adb命令最近的128幀信息
  • 記錄過程冷啟動(殺進程),則之前的數據丟失

Android流暢度之幀率