2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Android Emulatorで、DozeやApp Standbyの動作を確認する方法

Posted at

はじめに

Android 6.0(API23)以降では、端末のバッテリー寿命を延ばすための省電力機能として「Doze」「App Standby」があります。
端末をずっと放置したり、アプリをずっと操作しなかったりした場合に、システムが「端末が使用されていない」「アプリが使用されていない」と判断し、アプリに対してネットワークアクセスの制限などを適用することで、電池の持ちを少しでも良くする機能です。

  • どういう条件で「端末が使用されていない」(Doze)「アプリが使用されていない」(App Standby)と判断されるか
  • 「端末が使用されていない」(Doze)「アプリが使用されていない」(App Standby)とシステムに判断された場合の、アプリの制限はどのようなものか
  • アプリがこれらの省電力機能の制限を受けないようにするには、どうすればよいか

については、下記公式サイトに書かれています。

[Android Developers] Doze と App Standby 用に最適化する機能

上記サイトには、DozeApp Standby によってアプリに制限がかけられる状態をエミュレートする方法についても記載されているのですが、
エミュレータでこれらの動作確認を行う場合、若干手順が不足していたり、環境によっては状態をエミュレートすることができなかったりしたので、メモ代わりにまとめておきます。

Dozeの動作確認手順

  1. 以下コマンドを実行

    > adb shell dumpsys battery unplug
    
  2. 以下コマンドを実行

    > adb shell dumpsys deviceidle enable
    
  3. 端末のスクリーンをOFFにする

  4. 以下コマンドを実行

    > adb shell dumpsys deviceidle enable
    
  5. 以降、4を繰り返すと、端末の状態がACTIVE -> IDLE_PENDING -> SENSING -> LOGCATING -> IDLE -> IDLE_MAINTENANCEと遷移する。
    (IDLE以降は、IDLE -> IDLE_MAINTENANCE -> IDLE -> IDLE_MAINTENANCE と繰り返される)
    IDLEとなっているときが「端末が使用されていない」と判断されている状態なので、この状態のときにアプリが意図通り動作していることを確認する。

App Standbyの動作確認手順

  1. 以下コマンドを実行

    > adb shell dumpsys battery unplug
    
  2. 以下コマンドを実行

    > adb shell am set-inactive <パッケージ名> true
    
  3. 以下コマンドでIdle=trueと表示されることを確認

    > adb shell am get-inactive <パッケージ名>
    Idle=true
    

Idle=trueと表示されている場合、「アプリが使用されていない」と判断されている状態。
Idle=falseと表示されている場合は「アプリが使用されていない」と判断されていない。

  1. アプリの画面が前面に表示されている場合は、ホームキーを押してアプリをバックグラウンドへ移動する
  2. (「アプリが使用されていない」と判断されている状態なので)アプリの動作が意図通りであることを確認する

OSバージョンによるエミュレータでの動作状況

上記の動作確認手順を、各OSバージョンのAndroidエミュレータで試してみた結果です。
Dozeの動作確認はAndroid6.0以降のエミュレータで行うことが出来るようです。
App Standbyの動作確認は、Android8.0未満のエミュレータでは、手順3で常にIdle=falseとなり、「アプリが使用されていない」と判断されている状態をエミュレートすることが出来ませんでした。

エミュレータの
システムイメージ
Doze
動作確認
App Standby
動作確認
Android8.1 動作確認できた 動作確認できた
Android8.0 動作確認できた 動作確認できた
Android7.1 動作確認できた 動作確認できなかった
Android7.0 動作確認できた 動作確認できなかった
Android6.0 動作確認できた 動作確認できなかった
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?