前言
本文翻譯自Android開發者文檔中的一篇官方文檔,是“為電池壽命做優化”系列文檔所做的一篇概述。
中國版官網原文地址為:https://developer.android.google.cn/topic/performance/power。
路徑為:Android Developers > Docs > 指南 > Best practies > Optimize for battery life >Overview
正文
電池壽命是移動用戶體驗最重要的一個方面。設備沒有電量就根本無法提供任何功能。所以,應用盡可能地重視電池壽命是非常重要的。
有3個要點需要考慮來保持您的應用是省電的:
- 讓您的應用“懶惰第一”
- 利用可以幫助管理您應用的電池消耗的平台特性。
- 使用可以幫您識別耗盡電量的罪魁禍首的工具。
懶惰第一
讓您的應用“懶惰第一”意味着尋找方法來降低和優化操作,尤其是電池密集型的操作。支撐“懶惰第一”設計的核心問題為:
- 節省:您的應用有冗余的操作可以砍掉嗎?例如,可以用緩存下載的數據而不是重復地喚醒無線網絡以重新下載數據嗎?
- 延遲:應用需要立刻執行某個動作嗎?例如,可以等到設備充電時再備份數據到雲端嗎?
- 合並:可以批量工作,而不是多次把設備推向活躍狀態嗎?例如,幾十個應用中的每一個都在不同的時間開啟無線網絡來發送消息,這真的有必要嗎?這些消息可以替換為在無線網一次喚醒時發送嗎?
當遇到使用CPU、無線網和屏幕時,您應該問問這些問題。“懶惰第一”的設計常常是一種抑制電池殺手的好辦法。
為了幫助您實現這些和其它功能,Android平台提供了很多特性來幫助最大化電池壽命。
平台特征
一般來說,Android平台為您提供了兩種幫助策略來優化您應用的電池使用。首先,它提供了幾個可以在您應用中實現的API。您可以在【Intelligent Job Scheduling】中了解更多關於這些API的信息。
在平台中也有內部機制來版主保護電池壽命。但是它們不是您能通過編程實現的API,您仍然應該了解它們,從而讓您的應用可以成功地利用它們。更多信息,請查看:
- 【低電耗模式和應用待機模式】
- 【應用待機群組】。基於用戶的使用模式,系統限制了應用對設備資源的訪問,如CPU或電池。
- 【電量管理限制】。查看在明確條件下可能強加到應用的電量限制列表。
- 【測試並排除故障】
除此以外,Android 9(API 等級28)為省電模式做了很多改善工作。設備制造商決定了施加的精准限制。作為一個示例,在AOSP構建上,系統應用了如下限制:
- 系統更積極地將應用置於應用待機模式,而不是等待應用空閑下來。
- 無論它們的目標API是什么級別,后台執行限制對所有應用都適用。
- 當屏幕熄滅后,本地服務可能會失效。
- 后台應用沒有網絡訪問權限.
請在【電量管理限制】中查閱特定設備電量優化的完整詳情。
和平常一樣,在省電模式下測試您的應用是一個好主意。您可以通過設備的“設置>電池節省器”屏幕手動開啟省電模式。
工具
通過使用供平台使用的工具來發現您應用中消耗功率最大的部分,您可以從這些特性上獲取更多的好處。找到目標是通往成功優化的一大步。
有很多為Android提供的工具,幫助您確定那些可以優化的區域,以提高電池壽命,包括【Profile GPU Rendering】和【Battery Historian】。利用這些工具來瞄准那些可以使用“懶惰第一”原則的目標區域。
結語
本文最大限度保持原文的意思,由於筆者水平有限,若有翻譯不准確或不妥當的地方,請指正,謝謝!