使用 Winscope 擷取追蹤記錄

在本機執行 Winscope,或從網路伺服器存取。

您可以使用 Winscope 擷取追蹤記錄,進行本機開發和偵錯。Winscope 使用 adb,支援透過 USB 或 Wi-Fi 連線至裝置。

啟動 Winscope 時,系統會顯示「Collect Traces」(收集追蹤記錄) 畫面。

裝置連線

您可以使用 Winscope ProxyWeb Device Proxy 連接 Winscope 中的裝置。根據預設,Winscope 首頁會顯示 Winscope Proxy 連線設定使用者介面。

如要開始擷取追蹤記錄,請選擇下列其中一種裝置連線機制。

設定 Winscope Proxy

請按照下列步驟設定 Winscope Proxy:

  1. 在首頁的「Collect Traces」下方,從「Select connection type」下拉式選單中選擇「Winscope Proxy」

    使用 Winscope Proxy 擷取追蹤記錄

    圖 1. 使用 Winscope Proxy 擷取追蹤記錄。

  2. 執行下列指令,啟動 Winscope ADB Connect Proxy,直接從瀏覽器擷取追蹤記錄:

    python3 $ANDROID_BUILD_TOP/development/tools/winscope/src/adb/winscope_proxy.py
    
  3. 執行後,請記下終端機上顯示的 Winscope Proxy 權杖。

  4. 啟動 Winscope ADB Connect Proxy 後,畫面會如下所示。如要建立與 Proxy 的初始連線,請輸入步驟 3 中的 Winscope Proxy 權杖,然後按一下「連線」

    連線至 Winscope Proxy

    圖 2. 連線至 Winscope Proxy。

設定網路裝置 Proxy

請按照下列步驟設定網頁裝置 Proxy:

  1. 在首頁的「Collect Traces」下方,從「Select connection type」下拉式選單中選擇「Web Device Proxy」

    使用 Web Device Proxy 擷取追蹤記錄

    圖 3. 使用 Web Device Proxy 擷取追蹤記錄。

  2. 如果電腦上沒有 Web 裝置 Proxy 精靈,請按一下「安裝」或執行安裝程式

  3. 透過對話方塊核准來源存取 Web 裝置 Proxy。

    授權來源 WDP 存取權

    圖 4. 授權來源。

  4. 首次連線至新裝置時,請核准存取權。 如果對話方塊未自動顯示,請按一下裝置旁的 lock_open 圖示:

    wdp_unauth_device

    圖 5. 授權裝置。

追蹤項目

請按照下列步驟收集追蹤記錄:

  1. 連線後,請選取目標並設定,即可啟動擷取程序。然後按一下「開始追蹤」開始擷取:

    在 Winscope 中收集追蹤記錄

    圖 6. 在 Winscope 中收集追蹤記錄。

  2. 如要停止擷取,請按一下「End trace」

    在 Winscope 中結束追蹤

    圖 7. 在 Winscope 中結束追蹤。

追蹤選項

本節說明各追蹤類型的選項。

錄製螢幕畫面

使用 Winscope 時,您可以錄製多個螢幕的畫面。從選單中選擇要錄製的螢幕畫面。如未選取,Winscope 預設會記錄有效顯示器。

SurfaceFlinger

  • 緩衝區大小:調整 SurfaceFlinger 追蹤記錄的記憶體內環形緩衝區大小。緩衝區越大,可收集的資料就越多,但記憶體用量也會增加。

  • 輸入:如果介面包含輸入資料,則會追蹤輸入視窗的詳細資料。

  • 組合:追蹤組合類型和可見區域。

  • 中繼資料:追蹤額外的介面中繼資料,包括螢幕外圖層。

  • HWC:追蹤額外的非結構化硬體 Composer 中繼資料。

  • 追蹤緩衝區:設定 SurfaceFlinger,追蹤介面上所有緩衝區的變更。根據預設,只有在幾何圖形改變時,SurfaceFlinger 才會追蹤新狀態。

  • 虛擬螢幕:包含追蹤記錄中的虛擬螢幕圖層。

WindowManager

  • 緩衝區大小:調整 WindowManager 追蹤記錄的記憶體內環形緩衝區大小。緩衝區越大,可收集的資料就越多,但記憶體用量也會增加。
  • 追蹤類型:定義收集狀態的頻率選項:

    • frame:在此模式中,WindowManager 會為每個影格傾印單一狀態,確保只擷取有效的 WindowManager 狀態。這個模式的效能負擔最低。
    • 交易:每當提交交易時,這個模式就會記錄 WindowManager 狀態。您可以在影格中提交多筆交易,因此可在影格期間偵錯中繼 WindowManager 狀態。不過,相較於影格模式,這個模式的效能負擔較高。
  • 追蹤層級:決定 WindowManager 追蹤的詳細程度:

    • 詳細:包含每個視窗的所有視窗和設定資訊。這個模式的記憶體和效能負擔最高。
    • debug:包含所有視窗的相關資訊,但如果視窗包含要求的覆寫設定,則只會記錄視窗設定。
    • 重大:包含與「偵錯」模式相同的資訊,但只會顯示可見視窗。這個模式的記憶體和效能負擔最小。

Dumps

如要使用 Winscope 擷取狀態傾印,請在首頁的「Collect Traces」下方選取「Dump」分頁,然後按一下「Dump state」

在 Winscope 中傾印狀態

圖 8. 在 Winscope 中傾印狀態。

螢幕截圖設定

Winscope 可擷取多個螢幕的畫面。從選單中選擇要拍攝螢幕截圖的螢幕。如未選取任何項目,系統會收集有效螢幕的螢幕截圖。