作者: Madan Ankapura, Android 產品經理
本文為 Android 電量管理系列連載的第一篇,希望開發者能從閱讀過程中收穫裝置續航方面的戰略洞見及實踐指南。
電池效能和續航時間是很多使用者關心的問題 —— 裝置耗電過快會導致使用者無法使用您的應用。因此,出色的電量管理對維持良好使用者關係十分重要,而 Android 在迭代過程中也引入了不少特性,以協助開發者順利應對這一挑戰。
在提高應用的安全性和效能方面,Google Play 的官方政策新增了以下規定:所有應用的目標 API 等級不可與 Android 的現行版本相差一年以上。每次 Android 平臺更新都會帶來一些安全增強和效能增強,而適配應用至最新 API 等級則可確保應用能從這些最新的優化中受益。此外,當您在更新 API 等級時,請務必準確評估應用的前臺及後臺需求,因為此類需求對裝置的續航和效能影響很大。
接下來,讓我們一起回顧一下 Android 電量管理特性的演變史,看看各個版本的 Android 究竟是如何幫助裝置提升續航表現的:
- 從 Android 5.0 Lollipop 開始,開發者可以利用 Job Scheduler 推遲任務執行時間;
- 從 Android 6.0 Marshmallow 起,當使用者一段時間沒有使用裝置或應用時,裝置會進入省電模式或低耗電模式,此時系統會暫停網路訪問,並推遲同步和其它後臺作業。
- 省電模式在 Android 7.0 Nougat 有了較大幅度提升,在螢幕關閉且裝置處於靜止狀態達到一定時間後,省電模式會啟用第二級系統活動限制。
- Android 8.0 Oreo 引入了後臺限制 (Background limits),以阻止應用在後臺執行服務並降低應用獲取裝置地理位置更新的頻率。
Android 9 Pie 則基於以下三項原則進一步強化了裝置的電量管理能力:
1.幫助開發者構建精彩應用
2.提升應用功耗效率
3.為使用者省去自行設定應用配置的步驟
這意味著 OS 作業系統需要變得更加智慧,能夠在自動適應使用者偏好的同時,提升裝置續航表現。為了達到這些目的,Android 引入了應用待機分類和後臺限制這兩項特性,同時優化了原有的省電助手功能。建議開發者在已啟用以上特性的 Android 9 Pie 裝置上對應用進行相關測試。
省電助手和省電模式能對系統進行全域性優化,而動態電量管理 (由 DeepMind 機器學習驅動的應用待機分組) 和後臺限制則只能在應用層面進行電量管理。您可以從下圖更為直觀地瞭解 Android 給任務安排執行時間的具體流程:
在適配應用至 Oreo 或更高版本的過程中,請您仔細查閱《滿足 Google Play 目標 API 等級的要求》一文,並按照下表所列內容妥善處理應用的後臺工作:
請注意: 一旦 WorkManager API 穩定後,我們將推薦開發者使用 WorkManager 處理以上大部分的用例。
對於開發者而言,能否將資源分配至正確的設計模式和架構上至關重要,為此,我們建議您在開發過程中採納以下策略:
1.確保使用者正在使用的應用完成必要的工作
2.允許推遲後臺工作或任務
3.使用前臺服務,但允許使用者通過點選訊息通知停止正在執行的前臺服務
OS 作業系統的其它核心基礎功能同樣也會受到限制,如標準鬧鈴、網路和 FCM 資訊等, 建議您查閱《電量管理限制》獲取詳情。另外,如果您想對各個電量管理特性有更為全面的瞭解,請觀看我們在 Google I/O 開發者大會上的相關分享和 DevByte 電量管理教學視訊,或者查閱《電量優化開發者文件》。
我們將在接下來幾周釋出一系列有關設計模式的開發指南,敬請期待!
致謝:電量管理系列連載由 Android 框架團隊和 DevRel 團隊共同協作完成,感謝他們的寶貴貢獻!