Android wakelockがちゃんと動作しているかADBを使って調べる

AndroidでCPUを動作させ続けるために、wakelockというものが使えます。

https://developer.android.com/training/scheduling/wakelock?hl=ja

次のように起動します。

        PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
        PowerManager.WakeLock mWl = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
                "MyApp::MyWakelockTag");
        mWl.acquire();

//後でこれを呼び出さないとだめ
       
        if (mWl != null && mWl.isHeld()) {
              mWl.release();
        }

しかし、仕込んだところで、これがちゃんと動作しているのか…?

調べたい時がありますよね。

そんな時は、ADB

adb shell dumpsys power

とやります。

ちょっとですね、出てくる情報が多すぎなんですが

Wake Locksという部分がありまして、ここにしかけられているWaleLockが出てきます。

wakelockがrelease されていると、ここに出てきません。

ちなみに、

adb shell dumpsys power

でwakelock関連で使えるところがもう一個ありまして、Wake Lock Log という、Wakelockを使ったおそらくログなのだろう… というのを見ることができます。

出力が多すぎて萎えますが、上述の

        PowerManager.WakeLock mWl = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
                "MyApp::MyWakelockTag");

としました、この ”MyApp::MyWakelockTag” という引数が役に立ちます!

ありますね~ ちゃんと17:49:06 に動作していたということがわかります(泣)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です