更强续航,尽在 Android 9 Pie
作者: Madan Ankapura, Android 产品经理
本文为 Android 电量管理系列连载的第一篇,希望开发者能从阅读过程中收获设备续航方面的战略洞见及实践指南。
电池性能和续航时间是很多用户关心的问题 —— 设备耗电过快会导致用户无法使用您的应用。因此,出色的电量管理对维持良好用户关系十分重要,而 Android 在迭代过程中也引入了不少特性,以协助开发者顺利应对这一挑战。
在提高应用的安全性和性能方面,Google Play 的官方政策新增了以下规定:所有应用的目标 API 等级不可与 Android 的现行版本相差一年以上。每次 Android 平台更新都会带来一些安全增强和性能增强,而适配应用至最新 API 等级则可确保应用能从这些最新的优化中受益。此外,当您在更新 API 等级时,请务必准确评估应用的前台及后台需求,因为此类需求对设备的续航和性能影响很大。
>> 最新 API 等级
https://developer.android.google.cn/distribute/best-practices/develop/target-sdk
接下来,让我们一起回顾一下 Android 电量管理特性的演变史,看看各个版本的 Android 究竟是如何帮助设备提升续航表现的:
从 Android 5.0 Lollipop 开始,开发者可以利用 Job Scheduler 推迟任务执行时间;
从 Android 6.0 Marshmallow 起,当用户一段时间没有使用设备或应用时,设备会进入省电模式或低耗电模式,此时系统会暂停网络访问,并推迟同步和其它后台作业。
省电模式在 Android 7.0 Nougat 有了较大幅度提升,在屏幕关闭且设备处于静止状态达到一定时间后,省电模式会启用第二级系统活动限制。
Android 8.0 Oreo 引入了后台限制 (Background limits),以阻止应用在后台运行服务并降低应用获取设备地理位置更新的频率。
>> Job Scheduler
https://developer.android.google.cn/reference/android/app/job/JobScheduler
>> 省电模式或低耗电模式
https://developer.android.google.cn/about/versions/marshmallow/android-6.0-changes#behavior-power
>> 省电模式
https://developer.android.google.cn/about/versions/nougat/android-7.0-changes#doze
>> 后台限制
https://developer.android.google.cn/about/versions/oreo/android-8.0-changes#back-all
Android 9 Pie 则基于以下三项原则进一步强化了设备的电量管理能力:
帮助开发者构建精彩应用
提升应用功耗效率
为用户省去自行设置应用配置的步骤
这意味着 OS 操作系统需要变得更加智能,能够在自动适应用户偏好的同时,提升设备续航表现。为了达到这些目的,Android 引入了应用待机分类和后台限制这两项特性,同时优化了原有的省电助手功能。建议开发者在已启用以上特性的 Android 9 Pie 设备上对应用进行相关测试。
>> Android 9 Pie
https://developer.android.google.cn/about/versions/pie/
省电助手和省电模式能对系统进行全局优化,而动态电量管理 (由 DeepMind 机器学习驱动的应用待机分组) 和后台限制则只能在应用层面进行电量管理。您可以从下图更为直观地了解 Android 给任务安排运行时间的具体流程:
在适配应用至 Oreo 或更高版本的过程中,请您仔细查阅《满足 Google Play 目标 API 等级的要求》一文,并按照下表所列内容妥善处理应用的后台工作:
请注意: 一旦 WorkManager API 稳定后,我们将推荐开发者使用 WorkManager 处理以上大部分的用例。
>> 《满足 Google Play 目标 API 等级的要求》
https://developer.android.google.cn/distribute/best-practices/develop/target-sdk
对于开发者而言,能否将资源分配至正确的设计模式和架构上至关重要,为此,我们建议您在开发过程中采纳以下策略:
确保用户正在使用的应用完成必要的工作
允许推迟后台工作或任务
使用前台服务,但允许用户通过点击消息通知停止正在运行的前台服务
OS 操作系统的其它核心基础功能同样也会受到限制,如标准闹铃、网络和 FCM 信息等, 建议您查阅《电量管理限制》获取详情。另外,如果您想对各个电量管理特性有更为全面的了解,请观看我们在 Google I/O 开发者大会上的相关分享和 DevByte 电量管理教学视频,或者查阅《电量优化开发者文档》。
>>《电量管理限制》
https://developer.android.google.cn/topic/performance/power/power-details
>> DevByte 电量管理教学视频
https://www.youtube.com/watch?v=yVGKOHtYwsA&
>>《电量优化开发者文档》
http://d.android.com/power
我们将在接下来几周发布一系列有关设计模式的开发指南,敬请期待!
致谢:电量管理系列连载由 Android 框架团队和 DevRel 团队共同协作完成,感谢他们的宝贵贡献!
>> 本篇原文链接:
https://android-developers.googleblog.com/2018/09/moar-power-in-android-9-pie-and-future.html
推荐阅读
· Flutter「发布预览版 2」让 iOS 应用至臻完美