和你一起终身学习,这里是程序员Android
经典好文推荐,通过阅读本文,您将收获以下知识点:
一、Doze 模式
二、空闲状态下,优化app耗电
三、Doze 模式下的限制措施
四、Doze 模式概要
五、Doze 模式涉及的类如下:
六、Doze 模式状态
七、Doze 白名单
八、Doze 模式测试方法
九、开启Doze dubug 调试开关
一、Doze 模式
当设备处于非充电、灭屏状态下静止一段时间,设备将进入睡眠状态,进入Doze
模式,延长电池使用时间。Doze
模式下系统会定期恢复正常操作,异步执行ap
p的一些同步数据等操作。比如很长时间不使用,系统会允许设备一天访问一次网络等。当设备处于充电状态下,系统将进入标准模式,app
执行操作将不被限制。
二、空闲状态下,优化app耗电
在用户没有使用app
的情况下,系统会使app
处于idle
状态,
在空闲状态下,系统将会禁止app
网络访问以及数据同步
三、Doze 模式下的限制措施
1.禁止网络访问
2.忽略Wake lock
3.忽略Alarms(setAlarmClock() 、AlarmManager.setAndAllowwhileIdle()
这两个方法除外)
4.忽略WIFI
扫描
5.同步作业调度程序将不被执行
四、Doze 模式概要
Doze模式概要
五、Doze 模式涉及的类如下:
frameworks/base/services/core/java/com/android/server/DeviceIdleController.java
/**
* Keeps track of device idleness and drives low power mode based on that.
*/
public class DeviceIdleController extends SystemService
implements AnyMotionDetector.DeviceIdleCallback {