【Android Framework】首次开机锁屏后不到2秒就休眠:RestartDozeListener残留状态导致异常快速灭屏的根因与修复
文章目录【Android Framework】首次开机锁屏后不到2秒就休眠:RestartDozeListener残留状态导致异常快速灭屏的根因与修复(restart_nap_after_start)导入语1 ~ 相关 log 分析1.1 问题现象1.2 关键线索2 ~ 代码分析:RestartDozeListener 的完整逻辑2.1 RestartDozeListener.kt 源码2.2 核心逻辑拆解2.3 异常复现时的 log 分析2.4 Settings 读取链路3 ~ 根因总结4 ~ 解决方案修改 RestartDozeListener.kt 的 init() 方法原理注意事项思考 总结结尾【Android Framework】首次开机锁屏后不到2秒就休眠:RestartDozeListener残留状态导致异常快速灭屏的根因与修复(restart_nap_after_start)📖文章简介:本文记录了一次首次开机后锁屏到休眠时间异常短(不到2秒,预期15秒)的完整排查过程。通过log分析定位到SystemUI中的RestartDozeListener机制在首次开机时触发了powerManager.goToSleep(),导致屏幕被异常快速熄灭。文章深入拆解了RestartDozeListener.kt的完整源码逻辑、restart_nap_after_start这个Settings键值的读写流程、以及storeSleepState()/maybeRestartSleep()的触发时序,最终给出init()中重置键值为false的修复方案。适合做Android Framework电源管理、SystemUI doze机制或开机性能优化的工程师参考。