ZenFone5のバッテリー Deep Sleepするよう権限の変更で改善
2015/09/01
以前iPhoneとZenfoneの比較記事で書いたようにZenFone5のバッテリーの持ちは普段は特に気にならないのですが、稀に使用していないのにバッテリー消費が激しくなる(約5%/h 通常は0.5%/h程度)ことがありました。
この消費量だと使用している時間を含めると1日持たないので、かなり気になっていました。
試行錯誤の末、Deep Sleepになっていないことが原因だとわかり、App OpsでGoogle Play開発者サービスの「スリープモードにしない」という権限をオフにすることで改善ができたのでご報告します。以下試してみたことです。
Battery Mixでのバッテリー使用量監視
定番のバッテリー監視アプリです。何かバックグラウンドで悪さをしているアプリがある場合は、これで見つけることができます。が、残念ながら改善への手がかりは特に得られませんでした。
後述するAdvanced Task Managerで稀にBattery Mix自体のCPU使用率が高くなることが検出されたので、現在は使用をやめています。
Advanced Task ManagerでのCPU使用率監視
これも定番のアプリです。主にメモリ解放のため、バックグラウンドのタスクを終了させるタスクキラーです。
ZenFoneを使い始めた当初にメモリ解放のため導入しました。タスクキラー以外にもCPUの使用率監視機能(CPU lagging monitor)もあり、一定時間CPU使用率が高いアプリがあると警告してくれます。
しばらくZenFoneを使ってみて、その必要性はないと判断し、タスクキラーとしては使っていませんが、CPU使用率監視の機能のみ現在も使用しています。
Battery MixやEchofoneが警告されたので使用をやめたのですが、根本的な解決にはなりませんでした。
バッテリー節約系アプリ
検討したものの、wi-fiやモバイル通信をスリープ時にoffにするものが多いようでした。
通知等必要なものはリアルタイムで欲しかったので、結局使用しませんでした。
CPU SPYでCPUの動作状況の確認
このアプリで原因が少しわかりました。
CPU SPYというアプリでCPUがどの周波数でどの程度の時間動いたのかを調べることができます。
通常は何も使用していない時はDeep Sleepといって電力消費が非常に少ないモードになりますが、
これを使用してみた結果、バッテリー消費が激しいときはDeep Sleepに全くなっていないことがわかりました。画面が暗くなっていても、何らかの原因でCPUがDeep Sleepにならず、バッテリーを消費してしまっていたようです。
電力使用状況でのチェック
ZenFoneでは設定->端末->電力管理->電力使用状況でかなり詳しいアプリごとの電力消費関連の情報を取得できます。
バッテリー消費が多いときには、「スリープモードにしない」という項目の中にGoogle Play開発者サービスが上位にきていました。おそらく何らかのアプリやサービスがGoogle Play開発者サービスを通じて端末がDeep Sleepに入るのを妨げていたようです。
と、ここまではわかったのですが、それ以降の詳細は調べることができませんでした。android 4.4未満ではwakelock detectorというアプリで詳細を調べられたようなのですが、権限の変更があったようで、現在は4.4以降ではrootをとっていないと動作しないようです。
App Opsでの権限変更
App Opsと呼ばれるAndroidのアプリごとの個別の権限を変更できる隠し機能があります。PermissionManagerというアプリでその機能を使用できます。4.4.2以降は使用できないそうなのですが、なぜかZenFone5では使用できました。
どのアプリが原因かはわかりませんが、とりあえずGoogle Play開発者サービスの「スリープモードにしない」という権限をオフにしてみたところ、謎のバッテリー消費は改善しました。今のところ特に問題はでていないようですが、もしかするとバックグラウンドのアプリの動作に影響があるかもしれません。
以上のようにApp OpsでGoogle Play開発者サービスの「スリープモードにしない」という権限をオフにすることで、バッテリーの異常消費を改善できました。
おそらくZenFone固有の問題ではなく、Androidとインストールしているアプリの問題だと思うので、他の機種を使用している方も同様の方法でバッテリーの持ちの改善ができるかもしれません。
このApp Opsという機能、Googleでの扱いが微妙なようで、最新のOSではアクセスできないようです。あまりrootを取得する気はないのですが、将来のアップデートでApp Opsにアクセスできなくなり、バッテリーの持ちが再び悪くなるようならroot取得を考えようかと思います。
3月27日追記
現在は気になったので、Androidシステム、Googleアカウントマネージャ、Googleサービスフレームワークの「スリープモードにしない」という権限もオフにしています。
特に今のところ問題はでていないようです。使っていないときのバッテリー消費はほぼなく、一日は余裕でもつようなになりました。