導入殼層轉場效果後,系統會整合並編碼執行動畫的方法,以便擷取預定執行動畫的集中式資訊。
轉換追蹤記錄包含 WindowManager (WM) Shell 中每次轉換的資料,包括系統伺服器和 Shell 的資料。Droidfood 會永久啟用這項追蹤功能,並自動將追蹤記錄嵌入錯誤報告。
如要進一步瞭解追蹤記錄收集作業,請參閱「殼層轉移」。
如果轉換追蹤記錄同時包含伺服器端和用戶端資訊,Winscope 的「Transitions」檢視器就會顯示這項資訊。檢視器左側會顯示表格記錄檢視畫面,其中包含高階轉換資訊,右側則會顯示每項轉換的詳細檢視畫面:
圖 1. 殼層轉移追蹤分析。
表格檢視
表格檢視包含:
- ID:僅供偵錯的轉移 ID。
- 類型:轉場效果類型,如
Transitions.java
中所定義。 - 傳送時間:伺服器將轉場效果傳送至殼層以供處理時的時間戳記。
- Dispatch Time:轉換作業分派至處理常式以開始播放的時間戳記。
- 時間:從開始播放到完成轉場效果所花費的時間。
- 狀態:如果轉移作業是:
- 已玩過:已玩過。
- ABORTED:在播放前中止。您可以從 Shell 或 WM 端中止轉場效果。
- 已合併:由轉場效果處理常式合併至其他已播放的轉場效果 (處理常式會決定如何處理)。
詳細檢視
除了表格檢視畫面中的詳細資料,「SELECTED TRANSITION」(選取的轉場效果) 部分中的詳細轉場效果檢視畫面還包含:
handler
:處理這項動畫的轉場處理常式。createTimeNs
:在 WM 伺服器端建立轉移作業的時間戳記。finishTimeNs
:WM 伺服器端收到通知,得知轉移作業已在殼層端完成時的時間戳記。endTransactionId
:此轉場效果中包含的最終 SurfaceFlinger 交易。startTransactionId
:此轉場效果中包含的初始 SurfaceFlinger 交易。targets
:遷移作業參與者清單。type
:轉場效果類型,如Transitions.java
中所定義。
目標
目標是轉換所涉及的元素,通常是活動或工作。系統會記錄每個目標的下列資訊:
layerId
:正在製作動畫的圖層 (來自 SurfaceFlinger 階層)。mode
:在這個圖層上執行的動畫類型。windowId
:正在進行動畫的視窗 (來自 WindowManager 階層)。flags
:要套用至圖層的新一組旗標。