在本機執行 Winscope,或從網路伺服器存取。
您可以使用 Winscope 擷取追蹤記錄,進行本機開發和偵錯。Winscope 使用 adb,支援透過 USB 或 Wi-Fi 連線至裝置。
啟動 Winscope 時,系統會顯示「Collect Traces」(收集追蹤記錄) 畫面。
裝置連線
您可以使用 Winscope Proxy 或 Web Device Proxy 連接 Winscope 中的裝置。根據預設,Winscope 首頁會顯示 Winscope Proxy 連線設定使用者介面。
如要開始擷取追蹤記錄,請選擇下列其中一種裝置連線機制。
設定 Winscope Proxy
請按照下列步驟設定 Winscope Proxy:
在首頁的「Collect Traces」下方,從「Select connection type」下拉式選單中選擇「Winscope Proxy」:
圖 1. 使用 Winscope Proxy 擷取追蹤記錄。
執行下列指令,啟動 Winscope ADB Connect Proxy,直接從瀏覽器擷取追蹤記錄:
python3 $ANDROID_BUILD_TOP/development/tools/winscope/src/adb/winscope_proxy.py
執行後,請記下終端機上顯示的 Winscope Proxy 權杖。
啟動 Winscope ADB Connect Proxy 後,畫面會如下所示。如要建立與 Proxy 的初始連線,請輸入步驟 3 中的 Winscope Proxy 權杖,然後按一下「連線」。
圖 2. 連線至 Winscope Proxy。
設定網路裝置 Proxy
請按照下列步驟設定網頁裝置 Proxy:
在首頁的「Collect Traces」下方,從「Select connection type」下拉式選單中選擇「Web Device Proxy」:
圖 3. 使用 Web Device Proxy 擷取追蹤記錄。
如果電腦上沒有 Web 裝置 Proxy 精靈,請按一下「安裝」或執行安裝程式。
透過對話方塊核准來源存取 Web 裝置 Proxy。
圖 4. 授權來源。
首次連線至新裝置時,請核准存取權。 如果對話方塊未自動顯示,請按一下裝置旁的
lock_open
圖示:圖 5. 授權裝置。
追蹤項目
請按照下列步驟收集追蹤記錄:
連線後,請選取目標並設定,即可啟動擷取程序。然後按一下「開始追蹤」開始擷取:
圖 6. 在 Winscope 中收集追蹤記錄。
如要停止擷取,請按一下「End trace」:
圖 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」:
圖 8. 在 Winscope 中傾印狀態。
螢幕截圖設定
Winscope 可擷取多個螢幕的畫面。從選單中選擇要拍攝螢幕截圖的螢幕。如未選取任何項目,系統會收集有效螢幕的螢幕截圖。