android不能进入睡眠的原因 |
您所在的位置:网站首页 › 安卓进不了系统 › android不能进入睡眠的原因 |
1,电源管理方案 android电源管理分为modem和AP两部分,modem为主控模块,控制MPM、PMIC、TCXO时钟、以及GPIO睡眠状态等。 AP主要控制一些外围设备,在suspend和resume设置外围设备的状态。 Modem进入睡眠的标志是TCXO shutdown,在modem侧有一个sleepTask来判断系统是否进入睡眠模式,sleepTask始终以 最低优先级运行,通过各个Task的投票sleepTask决定系统是否进入睡眠,整个AP侧算成一票。如果所有有投票权的应用都 投了sleep票,则modem就会进入睡眠模式。 2,导致android不能进入睡眠的原因 AP电源管理方案使用Google的wake_lock机制。在内核中维护了一个wake_lock的链表,如果 有应用或者内核模块希望系统不要进入睡眠模式就可以申请wake_lock,这时就会在wake_lock链表 中增加一项,在释放wake_lock后就会删除链表中相应的项。AP侧进入suspend前会判断当前是否 有活动的wake_lock,如果有则AP不会进入suspend状态。 由于modem相对比较稳定,系统不能进入睡眠的原因主要是由于AP有活动wake_lock没有释放 导致AP侧没有进入suspend。 3,查看那些应用申请了wake_lock导致系统不能睡眠 (1),查看用户空间进程是否有活动的wake_lock 查看/sys/power/wake_lock节点看是否有活动的wake_lock cat /sys/power/wake_lock 如果输出不为空表示当前有应 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |