专栏名称: Android_开发者
目录
相关文章推荐
51好读  ›  专栏  ›  Android_开发者

Android P 电量管理

Android_开发者  · 掘金  · android  · 2018-08-02 05:52

正文

阅读 56

Android P 电量管理

Android P 在现有平台的功能基础上加入多项新特性以提升设备电量管理能力,确保系统对应用进行最合适的资源分配。

电量管理特性主要体现在以下四个方面:

1. 应用待机分组

Android P 新增应用待机分组功能,让系统根据用户的使用情况而限制应用调用 CPU 或网络等设备资源。

2. 后台限制

Android P新增后台限制功能,若应用出现 Android Vitals 内所描述的不良行为,系统将提醒用户限制该应用访问设备资源。

3. 省电模式的优化

Android P 优化了现有的省电助手功能,在启用该功能后,系统将对所有应用的后台运行实施加以限制。

4. 低耗电模式

当用户一段时间没有使用设备时,设备将进入 低耗电模式 ,所有应用都将受到影响。 Android P 并未针对低电耗模式作出任何更改。

注意:不论应用程序的 target SDK 是否为 Android P ,所有应用都受限于以上行为变更。

应用待机分组

应用待机分组是 Android P 新添加的一项电量管理功能,它能根据应用的使用频率或者最近一次使用时间,对其资源请求进行优先级排序。应用待机分组一共有五个分组,系统会根据每个应用的使用情况,将其划分至五个优先分组中的一个,而每个分组对设备资源的调度各有不同的限制。

优先分组

系统将动态分配各个应用至不同分组,并根据需求重新分配所在分组。系统或会通过利用机器学习预加载的应用,从而预测各个应用的使用概率,然后将它们编配至相应的群组中。若设备中没有安装此类系统应用,在默认情况下,系统会根据应用的近期使用情况进行等级划分。应用活跃度越高,所处分组的优先级就越高,也就相应地更容易获取设备资源。尤其是,应用所处的的群组决定了其所安排的任务 (job),触发标准闹铃以及接受高优先级Firebase Cloud Messagesing信息的频率。这些限制仅在非充电状态下才有效;当设备充电时,应用并不会受到系统限制。

* 注意:设备厂商可以自行规定非活跃应用的群组划分规则。请开发者不要试图篡改应用所处的群组,而是专注于改善应用行为,确保应用被划分至目标群组后,依旧能够顺利运行。您可以调用 UsageStatsManager.getAppStandbyBucket(),查看应用当下所处群组。

应用待机模式下共有以下五类群组:

1. 活跃 (Active) : 应用正在被使用

2. 工作 (Working set) : 应用使用频率很高

3. 常用 (Frequent) : 应用经常但不是每天被使用

4. 极少 (Rare) : 应用偶尔被使用

5. 应用偶尔被使用 (App is not frequently used)

此外,安装后一次都未被使用过的应用将被划分至 “从不” 这一特殊群组,并受到十分严格的系统限制。

* 注意:应用待机群组限制不适用于低耗电模式白名单中的应用。

活跃 (Active) 活跃应用指用户正在使用的应用,例如:

  • 应用启动了一个Activity;
  • 应用正在运行前台服务;
  • 另一个前台应用已关联至该应用 (通过同步适配器与前台应用的内容提供器相关联);
  • 用户点击了应用的推送

在任务、标准闹铃以及FCM信息的资源调用上,活跃群组应用免受任何系统限制。

工作 (Working set)

若应用的运行频率很高,但目前并未处于“活跃”状态,它就会被划分至工作群组,例如用户常用的社交媒体应用。此外,该群组还包括了那些被间接使用的应用。

工作分组内的应用会在任务 (job) 运行和闹铃触发方面受到部分系统限制,详情请查阅 《附件: 电量管理限制》

常用 (Frequent)

常用应用指用户经常使用但不是每天使用的应用,比如用户在健身房使用的打卡应用可能就属于这一群组。

系统对常用分组采用的限制更强,应用运行任务(job)和触发闹铃的能力都会受到影响,而且接受的高优先性FCM消息也有数量上限,详情请查阅《附件:电量管理限制》。

极少 (Rare)

若应用的使用频率很低,它就会被划分至该分组,酒店应用就是一个很好的例子——用户只有在下榻这个酒店的时候才会打开此应用。







请到「今天看啥」查看全文