做者: Luiz Gustavo Martins, 合做夥伴開發技術推廣工程師,合做夥伴 DevRel 團隊android
本文爲 Android 電量管理 系列連載的第三篇,但願您能在閱讀過程當中收穫設備續航方面的戰略洞見和實踐指導。web
隨着近幾年來 Android 的不斷髮展,Google 逐步增強了對於後臺執行的優化和限制。爲了開發出現代化的 Android 應用,開發者須要學習如何經過最新方式來管理後臺任務。服務器
在理解後臺執行這個概念以前,咱們先來看看 Android 系統是如何定義前臺應用的。當應用知足如下任意條件時,系統會判斷應用處於前臺:網絡
若是以上條件均不知足,應用將被視爲處於後臺。app
在後臺運行應用會消耗設備的有限資源,如內存或者電池電量,進而影響用戶的使用體驗,好比說,後臺任務可能會縮短設備的續航時間,或者在用戶玩遊戲、看視頻或拍照時形成系統卡頓。框架
爲了改善續航表現和用戶體驗,Android 在版本演進的過程當中,針對後臺執行進行了不一樣程度的限制,其中包括:ide
開發者在選擇後臺執行工具前,首先要對應用需求和限制場景有個清晰的瞭解,咱們建議您參照如下流程圖,爲應用制定最佳的後臺決策:工具
以上傳日誌爲例,您須要依次建立如下兩個工做請求,才能夠將壓縮後的日誌文件上傳至服務器:學習
將任務編入隊列後,WorkManager 會在約束條件知足的狀況下,即當應用能夠訪問所需資源時,纔會執行這兩個任務。優化
WorkManger 的另外一個優點在於它能夠與 Android 的電量管理特性協同工做。假設某個任務的指定執行時間剛好落在低耗電模式時段內,那麼 WorkManager 便會在維護窗口時段 (若是此時約束條件已知足,或設備暫時退出了低耗電模式) ,嘗試運行該任務。
在觸發標準鬧鈴後,您會有幾秒鐘的時間完成工做,此時應用可能沒法訪問網絡 (例如,系統處於低耗電模式,或者應用被納入某一待機羣組)。若是您必須訪問網絡,或者任務執行時間較久,請調用 WorkManager。每當喚醒鬧鐘被觸發後,設備就會退出低電量模式並持有一個局部喚醒鎖,而長時間持有喚醒鎖會嚴重影響設備的續航時間。建議您經過 Google Play 管理中心提供的 Android Vitals 來監測應用是否存在過分喚醒的問題。
合理的後臺執行策略能夠幫助您開發出卓越的應用,在打造完美用戶體驗的同時,爲設備保駕 「續」 航。若是您想進一步瞭解後臺執行的相關訊息,請訪問 Android 開發者官網。
請注意:WorkManager 目前只發布了公共預覽版,您能夠繼續使用 JobScheduler 做爲替代方案,不過和 WorkManger 相比,JobScheduler 有更多的侷限。 JobScheduler 屬於 Android 框架的一部分,它僅在 API ≥ 21 的系統上可用;而 WorkManager 則支持 API 14 及更高版本。
點擊這裏 前往「Android Developers 官方文檔」查看更多信息