Android P 在现有平台的功能基础上加入多项新特性以提升设备电量管理能力,确保系统对应用进行最合适的资源分配。
电量管理特性主要体现在以下四个方面:
1. 应用待机分组
Android P 新增应用待机分组功能,让系统根据用户的使用情况而限制应用调用 CPU 或网络等设备资源。
2. 后台限制
Android P新增后台限制功能,若应用出现 Android Vitals 内所描述的不良行为,系统将提醒用户限制该应用访问设备资源。
>> Android Vitals 链接:
https://developer.android.google.cn/topic/performance/vitals/index.html
3. 省电模式的优化
Android P 优化了现有的省电助手功能,在启用该功能后,系统将对所有应用的后台运行实施加以限制。
4. 低耗电模式
当用户一段时间没有使用设备时,设备将进入低耗电模式,所有应用都将受到影响。 Android P 并未针对低电耗模式作出任何更改。
>> 低耗电模式链接:
https://developer.android.google.cn/training/monitoring-device-state/doze-standby#understand_doze*注意:不论应用程序的 target SDK 是否为 Android P ,所有应用都受限于以上行为变更。
应用待机分组
应用待机分组是 Android P 新添加的一项电量管理功能,它能根据应用的使用频率或者最近一次使用时间,对其资源请求进行优先级排序。应用待机分组一共有五个分组,系统会根据每个应用的使用情况,将其划分至五个优先分组中的一个,而每个分组对设备资源的调度各有不同的限制。
优先分组
系统将动态分配各个应用至不同分组,并根据需求重新分配所在分组。系统或会通过利用机器学习预加载的应用,从而预测各个应用的使用概率,然后将它们编配至相应的群组中。若设备中没有安装此类系统应用,在默认情况下,系统会根据应用的近期使用情况进行等级划分。应用活跃度越高,所处分组的优先级就越高,也就相应地更容易获取设备资源。尤其是,应用所处的的群组决定了其所安排的任务 (job),触发标准闹铃以及接受高优先级Firebase Cloud Messagesing信息的频率。这些限制仅在非充电状态下才有效;当设备充电时,应用并不会受到系统限制。*注意:设备厂商可以自行规定非活跃应用的群组划分规则。请开发者不要试图篡改应用所处的群组,而是专注于改善应用行为,确保应用被划分至目标群组后,依旧能够顺利运行。您可以调用UsageStatsManager.getAppStandbyBucket(),查看应用当下所处群组。
应用待机模式下共有以下五类群组:
活跃 (Active):应用正在被使用
工作 (Working set):应用使用频率很高
常用 (Frequent):应用经常但不是每天被使用
极少 (Rare):应用偶尔被使用
应用偶尔被使用(App is not frequently used)
此外,安装后一次都未被使用过的应用将