前言
本文翻译自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】。利用这些工具来瞄准那些可以使用“懒惰第一”原则的目标区域。
结语
本文最大限度保持原文的意思,由于笔者水平有限,若有翻译不准确或不妥当的地方,请指正,谢谢!