前提
Android 6.0 Marshmallow (MPA44I) Developer Preview 3
Nexus 5, Nexus 6
公式ガイドの記載が間違っている?
Google 公式ガイドの記載が間違っている様です。am set-idle
では「そんなものは知らん」と怒られます。正しくは am set-inactive
のようです。
追記:こちら では修正されたようです。
am コマンドのヘルプより抜粋:
am set-inactive: sets the inactive state of an app.
am get-inactive: returns the inactive state of an app.
公式ガイドの記載が間違っている件は Issue として報告されていました。
Issue 2275: Documentation for testing app standby via ADB incorrect
am コマンド
App Standby モードに移行する
$ adb shell am broadcast -a android.os.action.DISCHARGING
$ adb shell am set-idle <package> true
$ adb shell am broadcast -a android.os.action.DISCHARGING
$ adb shell am set-inactive <package> true
App Standby モードから復帰する
$ adb shell am set-inactive <packageName> false
App Standby モードかを確認する
$ adb shell am get-inactive <packageName>
Idle=false
結局、うまく動作しない模様
$ adb shell am broadcast -a android.os.action.DISCHARGING
$ adb shell am set-inactive <package> true
$ adb shell am get-inactive <package>
これで Idle=true
と返されれば良いみたいなのですが、常に false
が返ってしまいます。
この件も Issue として報告されていました。次回のリリースで修正されることを期待しましょう。
Issue 3024: Adb commands for app-standby
関連資料
Android M Adds New Battery Performance Features
Qiita – Android Marshmallow の Doze テストの正しい手順