应用待机分桶 (original) (raw)

Android 9(API 级别 28)及更高版本支持应用待机分桶。应用待机分桶有助于系统根据应用的使用时间新近度和使用频率来确定应用资源请求的优先级。优先级分桶有五个,系统会根据应用使用模式将每个应用放置在其中一个分桶中,并会根据应用所在的分桶限制每个应用可用的设备资源。

优先级分桶

系统会动态地将每个应用分配到一个优先级分桶,并根据需要重新分配应用。系统可能依赖于某个预加载的应用,该应用使用机器学习技术判断每个应用将被使用的可能性,并将应用分配到相应的分桶。

如果设备上没有该系统应用,系统默认会根据应用的使用时间新近度对应用进行排序。系统会将更活跃的应用分配到为其赋予更高优先级的分桶,从而为应用提供更多系统资源。具体而言,分桶决定了应用的作业运行频率以及应用可以触发 alarm 的频率。这些限制仅适用于设备使用电池供电的情况。设备充电时,系统不会施加这些限制。

优先级分桶如下:

除了这些优先级分桶之外,对于已安装但从未运行过的应用,还有一个特殊的从未使用分桶。系统会对这些应用施加严格的限制。

以下说明适用于非预测性的情况。与上文所述不同,当预测功能使用机器学习技术来预测行为时,会根据对用户后续操作的预测结果(而不是根据近期使用情况)选择分桶。例如,一个最近用过的应用可能最终会出现在“极少使用”分桶中,因为机器学习技术预测该应用在数小时内可能不会被使用。

活跃

如果某个应用当前在使用中、不久前才被使用过,或出现以下任一情况,则会被分配到活跃分桶中:

如果应用位于“活跃”分桶中,系统会对应用的作业或闹钟施加最低限度的限制:

用户互动会使应用被分配到“活跃”分桶中

在 Android 9(API 级别 28)及更高版本中,当用户以某些方式与您的应用互动时,系统会暂时将您的应用放在“活跃”分桶中。当用户停止与应用互动后,系统会根据使用情况历史记录将应用放入某个分桶。

以下是触发此系统行为的互动示例:

工作集

如果某个应用经常运行,但当前未在使用中,则会被分配到工作集分桶中。 例如,用户几乎每天都会启动的社交媒体应用就可能位于“工作集”分桶中。如果以间接的方式使用,应用也会被提升到“工作集”分桶。

如果某个应用位于“工作集”分桶中,系统会对其运行作业和触发 alarm 的能力施加轻度限制。如需了解详情,请参阅电源管理资源限制

常用

如果某个应用会定期使用,但不一定每天使用,则会被分配到常用分桶中。例如,用户在健身房运行的锻炼跟踪应用可能位于“常用”分桶中。

如果某个应用位于“常用”分桶中,系统会对其运行作业和触发 alarm 的能力施加较高的限制。如需了解详情,请参阅电源管理资源限制

罕见

不经常使用的应用会被分配到极少使用分桶中。例如,用户仅在入住酒店期间才会运行的某个酒店应用就可能位于“极少使用”分桶中。

如果某个应用位于“极少使用”分桶中,系统会对其运行作业和触发 alarm 的能力施加严格的限制。系统还会限制该应用的互联网连接功能。如需了解详情,请参阅电源管理资源限制

受限

此分桶是在 Android 12(API 级别 31)中引入的,它在所有分桶中的优先级最低,限制最高。系统会考虑应用的行为(例如,用户与之互动的频率),以决定是否要将您的应用放在“受限”分桶中。

在 Android 13(API 级别 33)及更高版本中,除非您的应用符合豁免条件,否则在以下情况下,系统会将您的应用放在“受限”分桶中:

如果系统将您的应用放在“受限”分桶中,它会受到以下限制:

免于进入“受限”分桶

以下类型的应用可免于进入“受限”分桶并绕过非活跃触发器,即使在 Android 12 及更高版本上也是如此:

评估优先级分桶

如需查看您的应用分配到的分桶,请执行以下操作之一:

只要您的应用被放在值大于 STANDBY_BUCKET_ACTIVE (10) 的应用待机分桶中,系统就会对您的应用加以限制。

最佳实践

如果您的应用遵循低电耗模式和应用待机模式的最佳实践,那么随后的电源管理功能并不难。不过,以前运行良好的某些应用行为现在可能会导致问题。