追蹤卡頓

為確保應用程式能順暢運作,應設法達到 60fps (一個影格 16 毫秒)。如果應用程式未達規定的影格轉譯時間,系統會強制略過影格,而使用者會在應用程式感覺到延遲。這種因缺少影格導致的不流暢互動稱為「卡頓」。如要進一步瞭解這項體驗,請參閱轉譯速度緩慢

緩慢影格、凍結影格與 ANR 之間的關係

緩慢影格、凍結影格和 ANR 都是應用程式可能會遇到的各種卡頓形式。請參閱下表瞭解差異。

緩慢影格 凍結影格 ANR
轉譯時間 介於 16 和 700 毫秒之間 介於 700 毫秒和 5 秒之間 大於 5 秒
可見的使用者影響區域
  • RecyclerView 捲動畫面異常
  • 畫面上的複雜動畫未正確呈現
  • 應用程式啟動期間
  • 從一個畫面移至另一個畫面 (例如畫面轉換)
  • 活動在前景執行時,應用程式未在 5 秒內回應輸入事件或 BroadcastReceiver (例如按鍵或螢幕觸控事件)。
  • 前景並未執行任何活動,而 BroadcastReceiver 已經長時間無法結束執行作業。

分別追蹤緩慢影格和凍結影格

如果應用程式正在啟動,或是要轉換至其他畫面,由於應用程式必須加載檢視畫面、設定畫面的版面配置,並從頭開始執行初始繪圖,因此初始頁框繪圖的所需時間超過 16 毫秒是正常的。

確定優先順序並解決卡頓的最佳做法

在應用程式中嘗試解決卡頓時,請牢記下列最佳做法:

  • 找出並解決最容易重現的卡頓。
  • 優先處理 ANR。緩慢影格或凍結影格可能導致應用程式延遲,但 ANR 會導致應用程式停止運作。
  • 轉譯速度緩慢很難重現,但您可以先解決 700 毫秒的凍結影格問題。應用程式啟動或變更畫面時,這種情況最常見。