android系统自动休眠代码流程,Android P 电源管理(4)待机流程
電視遙控器,短端走待機(str待機)流程, 長按是關機,走關機流程,記錄下待機流程。
參考博客
待機流程
Android P引入自動待機功能,只有存在WakeLock,wakeup_count就不會為0,每次acquire wake_lock會讓wakeup_count加1,而release wake_lock會讓wakeup_count減1,當wakeup_count為0則autosuspend會重新待機下去
相關代碼
frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java
hardware/interfaces/power/1.0/default/Power.cpp
hardware/realtek/power/power.cpp
hardware/realtek/power/power.cpp
代碼流程
goToSleepInternal()
-->goToSleepNoUpdateLocked()
-->setWakefulnessLocked(WAKEFULNESS_DOZING);
updatePowerStateLocked()
--> updateDisplayPowerStateLocked() //關閉屏幕
--> updateDreamLocked() //更新屏保狀態
--> finishWakefulnessChangeIfNeededLocked()
-->mNotifier.onWakefulnessChangeFinished() //通知AMS, WMS系統狀態改變。
--> updateSuspendBlockerLocked()
reallyGoToSleepNoUpdateLocked() //更新屏保狀態,發現是DOZE狀態后,會調用這個接口。
--> setWakefulnessLocked(WAKEFULNESS_ASLEEP)
updatePowerStateLocked()
--> updateDisplayPowerStateLocked()
--> updateDreamLocked()
--> finishWakefulnessChangeIfNeededLocked()
-->mNotifier.onWakefulnessChangeFinished() //通知AMS, WMS系統狀態改變。
--> updateSuspendBlockerLocked() //釋放系統鎖,進入待機。
-->setHalAutoSuspendModeLocked()
android p待機流程.png
待機喚醒
喚醒支持不同的喚醒源,網絡待機喚醒,Power按鍵喚醒,CEC喚醒等,部分流程有抽象和實際可能會有差異。
android p喚醒.png
待機時候應用處理
藍牙,WiFi,媒體中心等模塊在待機的時候,如果需要釋放資源,可以先獲取并持有wakelock,等釋放完資源后在釋放wakelock。
總結
以上是生活随笔為你收集整理的android系统自动休眠代码流程,Android P 电源管理(4)待机流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ZZULIOJ 1105: 判断友好数对
- 下一篇: 现在有一个map集合如下: