Android Studio 對現代 WorkManager 的支援

Android Studio 對現代 WorkManager 的支援

上一篇文章

[1]

中,我們提到了現代 WorkManager API 對工具支援方面也進行了改進,本文我們將結合實際案例來看看具體有哪些改進。

從 Android Studio Arctic Fox 開始,您可以直接

在 Android Studio 內使用後臺任務檢查器檢查和除錯 Worker

[2]

後臺任務檢查器是應用檢查套件的一部分,它針對應用的幾個方面提供更豐富詳細的資訊。為了充分利用檢查器,您的應用需要使用 WorkManager 2。5 或更新的版本。

應用檢查器啟用方法

首次開啟應用檢查器的最快方法是: 連續按兩下 “Shift” 鍵,然後在彈出對話方塊中輸入 App Inspection 並按回車鍵確認。您也可以從選單欄依次選擇: View → Tool Window → App Inspection 來開啟應用檢查器面板。

Android Studio 對現代 WorkManager 的支援

△ 開啟 App Inspection 面板

示例演示

本次演示使用了 Android Studio Bumblebee 和 GitHub 上公開的

WorkManager 示例

[3]

在 App Inspection 面板中切換到後臺任務檢查器 (Background Task Inspector) 標籤,勾選應用中的 Filter,然後點選 Apply 按鈕。可以看到在隨著過濾的持續進行,每個 Worker 在其生命週期中的狀態也在持續變化著。由於這些 Worker 按照順序執行,所以 CleanupWorker 需要在下一個 Worker 開始之前完成。其他的所有 Worker 此時要麼處於排隊狀態,要麼處於阻塞狀態。

Android Studio 對現代 WorkManager 的支援

△ 使用 WorkManagerSample 應用和應用檢查器面板

現在 CleanupWorker 已經完成,佇列中的其他 Worker 也將按照次序執行。

Android Studio 對現代 WorkManager 的支援

△ 使用應用檢查器面板的圖表檢視

您也可以從類似圖示的影象中檢視整個接續佇列的內容。請從中選擇一個 Worker,切換到圖表檢視 (按鈕為流程圖樣式)。對於更加複雜的佇列來說,圖表檢視是一種高效且不可或缺的理解手段。從這兩種檢視中,您都可以直接點選任何 Worker 來獲得更詳盡的分析。

Android Studio 對現代 WorkManager 的支援

△ 後臺任務的詳細資訊

在頂部是一個基本的說明資訊,包括可點選的類名和一個唯一 ID。

資料庫檢查器

Android Studio 對現代 WorkManager 的支援

△ 資料庫檢查器面板

前面的內容我們談到,WorkManager 會將您的工作資料持久化,那麼下面我們用資料庫檢查器 (Database Inspector) 進一步看看這是怎樣實現的。您可以點選資料庫檢查器標籤頁,並在其中查詢某項工作的唯一 ID。您會發現,有關該特定執行的各項資訊都被儲存下來了。

後臺任務檢查器

您還可以進一步檢視某個特定的執行被安排到了哪一個佇列中。和手動搜尋呼叫資訊相比,這種經過編組整理的方式能夠明顯提升分析效率。您可以看到特定 Worker 是否受到限制,以及更加詳細的頻率和執行狀態資訊。

WorkManager 可以使用其中一個 Worker 的輸出資料,並將其傳遞到流水線下游的另一個 Worker 中。這一點您可以從任務詳細資訊的結果 (Results) 中看到。輸出資料包含著每個 Worker 的唯一識別符號,會按照佇列順序進行傳遞。

Android Studio 對現代 WorkManager 的支援

△ 演示 Worker 執行失敗的場景

這裡為您展示當工作鏈中的某個 Worker 執行失敗時的場景。在工作的接續佇列中插入了一個出錯的 Worker,然後重啟應用。可以看到,上一次執行的結果仍然在這裡供您檢查。這也進一步印證了剛才說到的工作資料持久化特性。這裡啟動並應用過濾器,選擇 Worker 後再次點選圖表檢視,這樣就能迅速定位工作開始出錯的位置 (您可以留意這裡的感嘆號)。您可以從這裡點選直接進入 Worker 檢視,然後繼續調試出錯的會話。

瞭解更多

透過本文您已經對新的後臺任務檢查器做了簡單瞭解。以上便是 WorkManager 相關全部內容,如需更多資源,請參閱:

現代 WorkManager API 已釋出

[4]

WorkManager 系列文章:

使用 Dagger 自定義 WorkManager

[5]

WorkManager 文件:

使用 WorkManager 排程任務

[6]

Codelab:

使用 WorkManager 處理後臺任務

[7]

Codelab: WorkManager 進階知識

[8]

WorkManager 示例程式碼

[9]

歡迎您

點選這裡

[10]

向我們提交反饋,或分享您喜歡的內容、發現的問題。您的反饋對我們非常重要,感謝您的支援!

參考資料

[1] 上一篇文章:

https://zhuanlan。zhihu。com/p/468506658

[2] 在 Android Studio 內使用後臺任務檢查器檢查和除錯 Worker:

https://developer。android。google。cn/studio/inspect/task

[3] WorkManager 示例:

https://github。com/android/architecture-components-samples/tree/master/WorkManagerSample

[4] 現代 WorkManager API 已釋出:

https://zhuanlan。zhihu。com/p/468506658

[5] 使用 Dagger 自定義 WorkManager:

https://zhuanlan。zhihu。com/p/270920624

[6] 使用 WorkManager 排程任務:

https://developer。android。google。cn/topic/libraries/architecture/workmanager

[7] 使用 WorkManager 處理後臺任務:

https://developer。android。google。cn/codelabs/android-workmanager

[8] Codelab: WorkManager 進階知識:

https://developer。android。google。cn/codelabs/android-adv-workmanager

[9] WorkManager 示例程式碼:

https://github。com/android/architecture-components-samples/tree/main/WorkManagerSample

[10] 點選這裡:

https://go2。gdsub。com/androiddevfb