android - 如何查看哪些唤醒锁处于 Activity 状态

标签 android process wakelock

由于某种原因,我的 Android 手机无法进入休眠状态。我假设一个唤醒锁让它保持清醒,但没有办法知道哪些唤醒锁是 Activity 的。正在运行的服务没有列出任何可疑的东西,当然也与平常没有什么不同。所以我的问题是:

  1. 当进程结束时,Android 是否一定会释放唤醒锁?是否有可能某个应用写得不好并且在退出之前没有释放唤醒锁?

  2. 有什么方法可以查看激活的唤醒锁吗?

这是 dumpsys power 显示的内容:

$ dumpsys power
Power Manager State:
  mIsPowered=true mPowerState=0 mScreenOffTime=226093 ms
  mPartialCount=0
  mWakeLockState=
  mUserState=
  mPowerState=
  mLocks.gather=
  mNextTimeout=91922738 now=92136117 -213s from now
  mDimScreen=true mStayOnConditions=0
  mScreenOffReason=3 mUserState=0
  mBroadcastQueue={-1,-1,-1}
  mBroadcastWhy={0,0,0}
  mPokey=1 mPokeAwakeonSet=false
  mKeyboardVisible=false mUserActivityAllowed=false
  mKeylightDelay=6000 mDimDelay=47000 mScreenOffDelay=7000
  mPreventScreenOn=false  mScreenBrightnessOverride=-1  mButtonBrightnessOverride=-1
  mScreenOffTimeoutSetting=60000 mMaximumScreenOffTimeout=2147483647
  mLastScreenOnTime=0
  mBroadcastWakeLock=UnsynchronizedWakeLock(mFlags=0x1 mCount=0 mHeld=false)
  mStayOnWhilePluggedInScreenDimLock=UnsynchronizedWakeLock(mFlags=0x6 mCount=0 mHeld=false)
  mStayOnWhilePluggedInPartialLock=UnsynchronizedWakeLock(mFlags=0x1 mCount=0 mHeld=false)
  mPreventScreenOnPartialLock=UnsynchronizedWakeLock(mFlags=0x1 mCount=0 mHeld=false)
  mProximityPartialLock=UnsynchronizedWakeLock(mFlags=0x1 mCount=0 mHeld=false)
  mProximityWakeLockCount=0
  mProximitySensorEnabled=false
  mProximitySensorActive=false
  mProximityPendingValue=-1
  mLastProximityEventTime=0
  mLightSensorEnabled=false
  mLightSensorValue=-1.0 mLightSensorPendingValue=-1.0
  mLightSensorScreenBrightness=35 mLightSensorButtonBrightness=255 mLightSensorKeyboardBrightness=0
  mUseSoftwareAutoBrightness=true
  mAutoBrightessEnabled=false
  mScreenBrightness: animating=false targetValue=-1 curValue=0.0 delta=-1.3333334

mLocks.size=0:

mPokeLocks.size=1:
    poke lock 'PhoneApp': POKE_LOCK_IGNORE_CHEEK_EVENTS

最佳答案

在新版本的 Android 中,您可以在此处查看唤醒锁列表:

adb shell "cat /sys/kernel/debug/wakeup_sources"

关于android - 如何查看哪些唤醒锁处于 Activity 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5780280/

相关文章:

android - CATEGORY_BROWSABLE 的真正含义是什么?

c - fork 和线程有什么区别?

linux - Linux 是否支持进程的内存隔离?

android - service.startForeground 是否意味着唤醒锁?

android - 为什么我的 IntentService 不需要 WakeLock?

android - Titanium USB 热敏打印机驱动程序

android - 比屏幕大的ImageView作为背景

java - 一台设备上两个版本的同一应用程序

multithreading - 像特斯拉的 AutoPilot 这样的系统如何跟上不断变化的多进程请求?

Android - 唤醒锁未正确获取,应用程序需要在待机状态下保持运行