背景:原生机制中AppStandby机制的白名单是共享Doze白名单,即一旦设置doze白名单,也即AppStandby的白名单
需求:如何建立AppStandby自己的白名单
技术原理:可以使用setAppStandbyBucket接口实现
setAppStandbyBucket 接口的作用是将指定的应用程序置于特定的待机桶中。待机桶是 Android 系统用于管理应用程序待机策略的一种方式。每个待机桶都对应着不同的待机级别,系统会根据待机级别来决定应用程序在后台的资源使用情况。
通过调用 setAppStandbyBucket 接口,可以将应用程序设置为以下其中一个待机桶:
ACTIVE:活跃状态的应用程序,不会受到待机策略的限制,可以正常使用系统资源。
WORKING_SET:工作集状态的应用程序,系统会尽量保持其在内存中,并允许其进行一些后台任务,但可能会有一些限制。
FREQUENT:经常状态的应用程序,系统会更积极地限制其后台资源使用,例如减少后台服务的频率。
RARE:稀少状态的应用程序,系统会进一步限制其后台资源使用,例如延迟后台服务的执行。
NEVER:从不待机的应用程序,系统不会对其进行待机策略的限制。
通过设置不同的待机桶,可以根据应用程序的使用情况来灵活管理后台资源的分配,从而优化系统的性能和电池寿命。
实现案例