android原生 睡死,Android消息推送关键技术之休眠唤醒

为了节省电量,Android系统在一段时间不操作后,会进入休眠状态,Android6.0之后更是引入了Doze和Standby两种省电模式,达到进一步省电的目的。在这些省电模式下,会挂起一些设备的电源,限制网络访问和一些其它的后台操作,因此休眠自然也会影响到后台的推送服务。

Android休眠机制

由于Android系统是基于Linux内核的,所以Android系统地休眠机制也继承自Linux,并且在此基础上增加了唤醒锁机制。

唤醒锁(WakeLock)

wake_lock 在Android的电源管理系统中扮演一个核心的角色。wake_lock是一种锁的机制,只要持有锁,系统就无法进入休眠,这个锁可以被用户态程序和内核获得。唤醒锁可以是有超时的或者是没有超时的,超时的锁会在超时以后自动解锁。如果没有锁了或者超时了,内核就会启动休眠的那套机制来进入休眠。

Doze和App Standby

从Android 6.0 (API level 23)开始,Android提供了两个节电功能用来增加电池的续航时间。Doze 可以在设备长时间不使用时,通过延迟后台CPU和网络的活动来减少电池的消耗;App Standby将延迟没有交互的app的网络活动。

Doze:

手机在不插电熄屏的状态下,静止不动一段时间(大概1个小时)后,会进入IDLE状态,此机制无视WeakLock,就是说即使持有WeakLock,但在满足上述条件后还是会进入IDLE状态。此状态下将限制应用的网络访问,GPS以及WIFI扫描,推迟包括JobScheduler、Syn、Alarm等操作。在IDLE状态下一段时间后,系统会退出该状态,进入到ID

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值