在裝置上擷取系統追蹤記錄

在執行 Android 9 (API 級別 28) 以上版本的裝置內,有個系統層級的應用程式,稱作「系統追蹤」。這個應用程式和 systrace 指令列公用程式相似,但是這個應用程式可以讓您直接從測試裝置錄製追蹤記錄,而不用把裝置連結到 ADB。然後,您就可以使用這個應用程式和開發團隊分享這些追蹤記錄的結果。

如果您想處理應用程式的效能相關錯誤,例如啟動速度過慢、轉場過慢、UI 資源浪費等等,那麼這種錄製追蹤記錄的方法便非常有效。

錄製系統追蹤記錄

「系統追蹤」應用程式可以讓您用應用程式內的快速設定圖塊或選單錄製系統追蹤記錄。以下章節將說明如何使用這些介面錄製程序。

使用「快速設定」圖塊錄製

一般來說,「快速設定」圖塊是比較便利的裝置端系統追蹤記錄程序方法。

設定圖塊

圖 2. 「系統追蹤」應用程式裡的「顯示快速設定圖塊」切換按鈕

如果這是您第一次在測試裝置上使用「系統追蹤」,或是您在裝置的「快速設定」面板 (圖 1.) 裡找不到「系統追蹤」圖塊,請按照以下設定步驟操作:

  1. 如果您尚未啟用開發人員選項,請立即啟用。
  2. 開啟「開發人員選項」設定畫面。
  3. 點選「偵錯」區段的「系統追蹤」。系統會開啟「系統追蹤」應用程式,並顯示應用程式選單。
  4. 按照圖 2. 顯示,啟用應用程式選單中的「顯示快速設定圖塊」。系統會把「系統追蹤」圖塊加入「快速設定」面板內,如圖 1. 所示。

    圖 1. 「快速設定」面板裡的「系統追蹤」圖塊

    注意:系統預設會把「系統追蹤」圖塊放在「快速設定」面板的第一個圖塊位置。如果您想讓圖塊出現在其他位置,請用面板的編輯模式移動圖塊。

完成系統追蹤記錄

如果想使用「快速設定」面板錄製系統追蹤記錄,請按照以下步驟操作:

  1. 輕觸「系統追蹤」圖塊,上面會有「錄製追蹤記錄」的標籤。啟用圖塊後,系統會持續顯示通知,讓您知道系統現在正在錄製追蹤記錄,如圖 3. 所示:

    「目前已啟用追蹤記錄功能」訊息通知。輕觸即可停止追蹤
    圖 3. 開始裝置端系統追蹤後持續顯示的通知
  2. 在您希望系統調查的應用程式內執行操作。

  3. 完成以上操作後,輕觸「快速設定」面板的「系統追蹤」圖塊,或輕觸「系統追蹤」通知即可停止追蹤。

    系統會顯示新通知,內含「正在儲存追蹤記錄」的訊息。儲存完畢後,系統就會關閉通知並顯示第三則通知,確認系統已經儲存追蹤記錄,您也可以分享系統追蹤記錄了,如圖 4. 所示:

    顯示「以儲存追蹤記錄」訊息的通知。輕觸即可分享追蹤記錄
    圖 4. 系統儲存完錄製的追蹤記錄之後持續顯示的通知

使用應用程式選單記錄

您可以使用應用程式選單設定各種系統追蹤的進階選項,並有提供可以開始和停止系統追蹤的切換按鈕。

如果想使用「系統追蹤」應用程式選單錄製系統追蹤記錄,請按照以下步驟操作:

  1. 如果您尚未啟用開發人員選項,請立即啟用。
  2. 開啟「開發人員選項」設定畫面。點選「偵錯」區段的「系統追蹤」。系統會開啟「系統追蹤」應用程式。

    另外,如果您已經設定過「系統追蹤」圖塊,可以長按圖塊進入「系統追蹤」應用程式。

  3. 確認已選取「追蹤可偵錯的應用程式」,以便將啟用偵錯功能的應用程式也納入系統追蹤記錄內。

  4. 您也可以選取要追蹤的系統類別和感應器呼叫,然後選取每個 CPU 的緩衝區空間 (單位為 KB)。選取和您要測試的用途對應的類別,如「音訊」類別可以用來測試藍牙作業,或是「記憶體」類別可以測試堆積分配量。

    圖 5. 「系統追蹤」應用程式的「錄製追蹤記錄」切換按鈕
  5. 您可以選取「長期追蹤記錄」,讓系統可以持續儲存追蹤記錄到裝置的儲存空間。如果要使用這個選項,您必須設定「最大長期追蹤記錄大小」和「最大長期追蹤記錄時間長度」限制。

  6. 啟用「錄製追蹤記錄」切換按鈕,如圖 5. 醒目顯示的內容。啟用圖塊後,系統會持續顯示通知,讓您知道系統現在正在錄製追蹤記錄 (圖 3.)。

  7. 在您希望系統調查的應用程式內執行操作。

  8. 完成以上操作後,停用「錄製追蹤記錄」切換按鈕即可停止追蹤。

    系統會顯示新通知,內含「正在儲存追蹤記錄」的訊息。儲存完畢後,系統就會關閉通知並顯示第三則通知,確認系統已經儲存追蹤記錄,您也可以分享系統追蹤記錄了,如圖 4. 所示:

分享系統追蹤記錄

「系統追蹤」應用程式可以幫助您在各種工作流程中分享系統追蹤記錄結果。如果是執行 Android 10 (API 級別 29) 以上版本的裝置,則追蹤檔案會儲存為 .perfetto-trace 副檔名,您可以用 Perfetto UI 開啟這些檔案。在執行較舊版本的 Android 裝置上,追蹤檔案會儲存為 .ctrace 副檔名,表示為 Systrace 格式。

透過訊息分享

透過「系統追蹤」,您可以使用裝置上的其他應用程式分享收集來的追蹤記錄。如此一來,您就能透過電子郵件或錯誤追蹤應用程式和開發團隊分享追蹤記錄,而不用把裝置連結到開發機器上。

錄製完系統追蹤記錄後,輕觸裝置上顯示的通知 (圖 4.)。系統會顯示意圖挑選器,您可以任選訊息應用程式並分享追蹤記錄。

使用 Files 應用程式分享

在執行 Android 10 (API 級別 29) 的裝置上,Files 應用程式會顯示追蹤記錄。您可以選擇用這個應用程式分享追蹤記錄。

使用 ADB 下載報告

如果有需要的話,您也可以透過 ADB 從裝置擷取系統追蹤記錄。把錄製追蹤記錄的裝置連到開發機器上,然後在終端機視窗執行以下指令:

cd /path-to-traces-on-my-dev-machine && \
  adb pull /data/local/traces/ .

轉換追蹤記錄格式

您可以把 Perfetto 追蹤記錄檔案轉換為 Systrace 格式。詳情請參閱「轉換追蹤記錄格式」。

建立 HTML 報告

分享追蹤記錄時,報告會留在 .perfetto-trace 檔案 (執行 Android 10 以上版本的裝置) 或 .ctrace 檔案 (其他版本裝置) 內。

您可以使用網頁式 UI指令列從追蹤記錄檔案建立 HTML 報告。

網頁式 UI

使用 Perfetto UI 開啟追蹤記錄檔案並產生報告。

若是 Perfetto 檔案,請按一下「Open trace file」(開啟追蹤記錄檔案)。若是 Systrace 檔案,請按一下「Open with Legacy UI」(使用舊版 UI 開啟)。舊版 UI 的外觀風格和 Systrace 報告相同。

指令列

在終端機視窗執行以下指令,以便從追蹤記錄檔案產生 HTML 報告:

cd /path-to-traces-on-my-dev-machine && \
  systrace --from-file trace-file-name{.ctrace | .perfetto-trace}

如果您還沒有 systrace 指令列程式,可到 GitHub 的 Catapult 專案下載,或直接到 Android 開放原始碼計畫下載。