Android系统休眠机制和doze模式的关系

本文详细介绍了Android设备的休眠机制,包括浅度休眠和深度休眠的区别及过程。阐述了深度休眠中网络断开但可通过心跳机制保持与服务器的连接,以及doze模式如何限制应用的运行。

不操作android设备一段时间后,Android设备就会进入休眠模式,Android系统的休眠分为浅度休眠和深度休眠。


首先进入的是浅度休眠,在这种模式下,lcd、tp等关闭用以节省电量。


一段时间后,若没有应用持有wake_lock的锁,进入深度睡眠模式,在深度休眠的过程中系统会首先冻结所有可以冻结的进程,然后依次挂起所有设备的电源,挂起顺序与设备注册的顺序相反,这样保证了设备之间电源的依赖性;直至最后进入省电模式,等待用户或者RTC唤醒;在唤醒过程中则会按照设备注册的顺序依次恢复每个设备的电源进入正常工作状态,解冻相关的进程,然后再进行浅度休眠的唤醒流程。


在深度睡眠模式下,是可以有消息push的,因为深度休眠下虽然AP会休眠,网络断开,但是BP是工作的,可以通过心跳机制,保持和服务器的长连接,当有消息来的时候,BP唤醒AP执行相应的操作。这里设置心跳机制应该是基于AlarmManager的,若是Timer则必须持有wakelock锁,这样会导致系统无法进入深度休眠,Alarm定时器是基于工作在BP的。


doze模式是不管你会不会持有wake_lock锁,只根据时间和传感器判断是否进入doze模式。在进入Doze模式之后,只有在白名单里面的应用可以正常使用,其他应用的网络,alarm都是被暂停的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值