Android Wi-Fi 系统睡眠相关问题解释

1. 什么是手机睡眠(深度睡眠),在程序上有什么表现?

先从手机的CPU说起,大家知道我们的手机是有好几个CPU的,最重要的三个CPU是:
(1)主CPU是跑Android系统;
(2)Modem CPU跑电话协议;
(3)WCNSS CPU跑我们WIFI协议。
手机的睡眠,指的就是主CPU停止执行指令进行手机省电。所以手机睡眠的时候,主CPU是不工作的,在程序上的表现就是Android系统的任何程序是不执行的!各种服务,Activity都是不会运行的。因为CPU都停了,没有指令的执行,所以没法运行。
 
2. 打电话的时候怎么能用呢? 


前面提到了。手机好几个CPU呢,主CPU停止的时候,Modem CPU没有停止,它一直在兢兢业业的工作呢。当电话来临的时候,Modem CPU会通过某种机制,唤醒睡眠中的主CPU。主CPU开始执行指令后,Android系统开始 从它睡眠时的程序部分继续开始执行。那么Android系统的各种服务开始运作,屏幕开始亮起,提醒用户,电话来了。


3. 睡眠是谁决定的?


睡眠的策略整体来说是由Framwork决定的。有没有在代码中见过“Wake Lock”?当在代码中获得 “Wake Lock”时,根据“Wake Lock”的类型,系统就可能无法进入睡眠了。“Wake Lock”就不展开了。


4. WIFI跟睡眠有关系吗?


有关系,WIFI是可以阻止系统进入睡眠的,比如你选择了始终保持WIFI连接,WIFI会获得“Wake Lock”,那么整个 系统是无法进入睡眠的。而你如果选择了在睡眠时,断开WIFI连接,则整个系统就可能可以进入深度睡眠了。


5. 睡眠一定是系统级别的吗?


睡眠不是系统的专利,各个器件也可以睡眠,比如LCD灭屏。只不过整个系统睡眠的话,更省电。


6. 系统如何判断能否睡眠呢?

这涉及到睡眠时的各个模块的投票策略。就是有一个模块不同意睡眠,系统就无法深度睡眠(主CPU停止运转)只有大家都投票同意了,系统才能深度睡眠。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值