天天看點

【官網翻譯】性能篇(三)為電池壽命做優化——概述

電池壽命是移動使用者體驗最重要的一個方面。裝置沒有電量就根本無法提供任何功能。是以,應用盡可能地重視電池壽命是非常重要的。本文是“為電池壽命做優化”系列文檔所做的一篇概述,從整體上來介紹電池優化需要注意的事項。

前言

       本文翻譯自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】。利用這些工具來瞄準那些可以使用“懶惰第一”原則的目标區域。

結語

       本文最大限度保持原文的意思,由于筆者水準有限,若有翻譯不準确或不妥當的地方,請指正,謝謝!