android不能进入睡眠的原因

您所在的位置:网站首页 安卓进不了系统 android不能进入睡眠的原因

android不能进入睡眠的原因

2024-02-03 12:27| 来源: 网络整理| 查看: 265

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