android 阻止进入suspend的原因查找

系统没有进入suspend,主要的原因是因为系统有锁导致.锁一般分为:APP透过PowerManager拿锁,以及kernel wakelock.分析上层持锁的问题:目前PowerManagerService的log 默认不会打开,可以通过修改:
/frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java

    private static final boolean DEBUG = true;
    private static final boolean DEBUG_SPEW = DEBUG && false;
修改为:
    private static final boolean DEBUG = true;
    private static final boolean DEBUG_SPEW = true;
打开上层的log

通过syslog:搜索关键字:total_time=来确定持锁的时间.PowerManagerService: releaseWakeLockInternal: lock=31602562 [job/DownloadManager:com.android.providers.downloads], flags=0x0, total_time=600051ms或者通过正则表达式:total_time=[\d]{4,}ms 过滤出持锁时间比较长的锁.

在这里插入图片描述

PowerManagerService: releaseWakeLockInternal: lock=31602562 [job/DownloadManager:com.android.providers.downloads], flags=0x0, total_time=600051ms
PowerManagerService: releaseWakeLockInternal: lock=56317918 [job/DownloadManager:com.android.providers.downloads], flags=0x0, total_time=283062ms
PowerManagerService: releaseWakeLockInternal: lock=216012597 [AudioMix], flags=0x0, total_time=120003ms
PowerManagerService: releaseWakeLockInternal: lock=41036921 [AudioMix], flags=0x0, total_time=167984ms
PowerManagerService: releaseWakeLockInternal: lock=70859243 [GsmInboundSmsHandler], flags=0x0, total_time=3206ms
PowerManagerService: releaseWakeLockInternal: lock=242046348 [AudioMix], flags=0x0, total_time=122205ms

发布了376 篇原创文章 · 获赞 40 · 访问量 46万+

猜你喜欢

转载自blog.csdn.net/wangjicong_215/article/details/104799892
今日推荐