PROXIMITY_SCREEN_OFF_WAKE_LOCK 分析
阿新 • • 發佈:2018-12-10
再往下程式碼呼叫路徑是WakeLock.acquire()->WakeLock.qcquireLocked()->IPowerManager.acquireWakeLock()
到這裡就走到了PowerManagerService。具體如何實現呢?這就要看PowerManagerService.java。
PowerManagerService log分析
adb命令查詢
adbshell dumpsys power|grep -i wake》》 no_cached_wake_locks=true mWakefulness=Awake mWakefulnessChanging=false mWakeLockSummary=0x1 mLastWakeTime=29887736 (66197 ms ago) mHoldingWakeLockSuspendBlocker=true mWakeUpWhenPluggedOrUnpluggedConfig=true mWakeUpWhenPluggedOrUnpluggedInTheaterModeConfig=false mDoubleTapWakeEnabled=false Wake Locks: size=5 PARTIAL_WAKE_LOCK 'AudioMix' ACQ=-1s287ms (uid=1041) PARTIAL_WAKE_LOCK 'ImsPhoneConnection' ACQ=-1s232ms (uid=1001 pid =2196) PARTIAL_WAKE_LOCK 'AudioMix' ACQ=-1s128ms (uid=1041) PARTIAL_WAKE_LOCK 'AudioMix' ACQ=-1s124ms (uid=1041) PARTIAL_WAKE_LOCK 'AudioMix' ACQ=-1s123ms (uid=1041) PowerManagerService.WakeLocks: ref count=1
log,匹配PowerManagerService關鍵字。如果想看更多的log需要在PowerManagerService.java檔案中把debug開關開啟。
PowerManagerService.acquireWakeLock
在這裡針對PROXIMITY_SCREEN_OFF_WAKE_LOCK的acquireWakeLock過程分析。
參考連結: