dumpstateは、Androidの動作状態を網羅的に知りたい場合に真っ先に取得するログです。Android SDKがインストールされた状態(adbが使える状態)のPCを用意して、
adb shell dumpstate -v threadtime > dumpstate-20120908.txtのようにして取得しています。
見てのとおり、android端末上にインストールされているdumpstateコマンドをshell経由で実行して、PC上のファイルにリダイレクトしています。
待ち受け時間は、消費電力を知る指標のひとつです。何も操作していない静止状態で、電池切れまでに何時間かかるか等で示します。 これ以外の電池持ちを示す指標として、動画再生時間やテザリングの連続使用時間など、実使用状態での連続使用時間があります。今回対象としたのは、無操作 状態の待ち受け時間です。
待ち受け時間が短くなる原因としては、
・partial wakelockがかかりっぱなしで、画面が消えていても端末がsleepしていない
・アプリが行う同期などの通信により、定期的な端末が動作している
などが考えられます。
sk17iのdumpstateを見てみると、PowerManager経由でアプリが有効化するwakelockは存在していませんでした。wakelockが残っていると消費は数%/hに達しますが、そこまでひどい電池消費ではないので、これは予想された結果です。
他に目立った消費原因はないかと探してみると、sync historyが気になりました。(Gmailのidは書き換えてあります)
Recent Sync History
#1 : 2012-09-08 11:05:24 SERVER 0.2s example@gmail.com/jp.mixi.authenticator.MixiAccountType jp.mixi.android.provider.mixiapplicationuserrequestprovider
#2 : 2012-09-08 11:05:24 SERVER 0.2s example@gmail.com/jp.mixi.authenticator.MixiAccountType jp.mixi.android.provider.mixifriendlinkrequestprovider
#3 : 2012-09-08 11:05:22 SERVER 1.5s example@gmail.com/jp.mixi.authenticator.MixiAccountType jp.mixi.android.provider.miximessageprovider
#4 : 2012-09-08 11:05:17 SERVER 5.1s example@gmail.com/jp.mixi.authenticator.MixiAccountType jp.mixi.android.provider.feedbacknotificationprovider
#5 : 2012-09-08 11:04:55 LOCAL 2.0s example@gmail.com/com.google gmail-ls
#6 : 2012-09-08 11:04:28 SERVER 1.0s 26 example@gmail.com/com.google gmail-ls
#7 : 2012-09-08 11:04:26 SERVER 2.5s 2 example@gmail.com/com.google gmail-ls
#8 : 2012-09-08 10:51:51 PERIODIC 0.4s 13:25 example@gmail.com/jp.mixi.authenticator.MixiAccountType jp.mixi.android.provider.feedbacknotificationprovider
#9 : 2012-09-08 10:42:14 SERVER 13.8s 22:11 example@gmail.com/com.google gmail-ls
#10 : 2012-09-08 09:51:51 PERIODIC 0.5s 01:00:00 example@gmail.com/jp.mixi.authenticator.MixiAccountType jp.mixi.android.provider.feedbacknotificationprovider
Gmailに負けない頻度で、mixiの同期が行われています。比較のために、同じgoogle idを設定したガラスマでdumpstateを取ったら、sync historyはこうなっていました。
Recent Sync History確かにmixiはインストールしてありますが、使用頻度はかなり低く、1時間毎に同期を行う必要はありません。同期の内容を見直し、同期間隔を12時間または24時間毎に変更してみました。
#1 : 2012-09-08 11:04:35 SERVER 2.1s example@gmail.com/com.google gmail-ls
#2 : 2012-09-08 10:42:21 SERVER 2.1s 22:14 example@gmail.com/com.google gmail-ls
#3 : 2012-09-08 10:22:36 SERVER 1.4s example@gmail.com/com.google com.android.calendar
#4 : 2012-09-08 10:22:35 PERIODIC 1.0s example@gmail.com/com.google subscribedfeeds
#5 : 2012-09-08 10:22:33 PERIODIC 2.0s example@gmail.com/com.google com.android.contacts
#6 : 2012-09-08 10:22:28 PERIODIC 9.5s 19:52 example@gmail.com/com.google gmail-ls
#7 : 2012-09-08 10:22:28 PERIODIC 4.9s 8 example@gmail.com/com.google com.android.calendar
#8 : 2012-09-08 02:50:46 LOCAL 0.1s 07:31:42 example@gmail.com/com.google com.android.calendar
#9 : 2012-09-08 02:49:52 SERVER 1.3s 54 example@gmail.com/com.google com.android.calendar
#10 : 2012-09-08 02:49:46 LOCAL 5.7s 5 example@gmail.com/com.google com.android.calendar
これで、0.5%/hを切るようになれば、ほぼ目標達成です。今日はまだ変更直後なので、まだ効果はわかりません。数日使えば、判断できると思います。
0 件のコメント:
コメントを投稿