How can I see which wakelocks are active How can I see which wakelocks are active android android

How can I see which wakelocks are active


In new versions of Android you can see list of wakelocks here:

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


You can use below adb command to require a wake lock

  adb shell "echo mylock > /sys/power/wake_lock"

Then, you can use below command to watch if this lock is active. You will see the time column continuously change, it means the wake lock is active

  watch -n 1 'adb shell "cat /proc/wakelocks" | grep mylock'

Now, use this adb command to release the wake lock

  adb shell "echo mylock > /sys/power/wake_unlock"

Then, check it again, the time column will freeze, it means the wake lock is non active

  watch -n 1 'adb shell "cat /proc/wakelocks" | grep mylock'

You can use the same technique to observe the wake lock you acquire in the code.


Does Android definitely release wakelocks when a process ends?

I doubt it, though I do not know for certain.

Is it possible an app was badly written and didn't release a wakelock before exiting?

AFAIK, yes.

Is there any way to see the active wakelocks?

Run adb shell dumpsys power.