1. 程式人生 > >PROXIMITY_SCREEN_OFF_WAKE_LOCK 分析

PROXIMITY_SCREEN_OFF_WAKE_LOCK 分析

再往下程式碼呼叫路徑是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過程分析。

參考連結: