Android4.4で、開発者向けオプションに『プロセスの統計情報』(ツール名:procstats)が追加されました。
どんなツールかちょっと調べて見たのでメモメモ。
どんなことが出来るのか
先ずは、このツールで何が出来るのかですが、簡単に言うと
『ある期間において、アプリがどれだけの時間動作して、どれだけメモリを使用して、どんなサービスを使用したのかを調べることができます』
開発したアプリがどれだけメモリを食っているのかを把握することで、アプリの安定性や効率性の向上に役立てることができます。
今までメモリ使用量を調べるには、DDMSのヒープダンプ(+各種解析ツール)やprocrank, dumpsys meminfoとかなんかを使用していましたが、開発者オプションの『プロセスの統計情報』を使用することで、より簡単にメモリ使用量を調べることが
きるようになりました。また、ある時点のスナップショットではなく、時系列の統計情報であるという点も嬉しいですね。
<参考>
Android Developers Blog – 31 JAN 2014
Android KitKatで何が新しくなったのか
画面の見方
まず起動方法ですが、「設定」→「開発者向けオプション」→「プロセスの統計情報」で表示できます。
※開発者向けオプションの表示は、今まで通りで、「設定」→「端末情報」→「ビルド番号を数回クリック」でOKです。
1.バッググラウンドアプリの実行時…
表示する統計情報の設定とデータを取った時間が表示されます。
設定はアクションバーのメニューから変更可能で下記項目があります。
【期間】3時間、6時間、12時間、1日
【種類別統計情報】バックグラウンド、フォアグラウンド、キャッシュに保存(キャッシュされたプロセスのことだと思う)
【システムの統計情報を表示】システムプロセスを含めるか否か
【USSを使用】USSを使用するか否か(使用しない場合はPSS)
※なお、日本語表示だと文字が途中で切れてデータを取った時間が表示されません。なんとかして欲しい。
2.緑色のバー
メモリ使用量の概要です。
期間内のメモリ負荷
・緑色:メモリの使用量が少なかった期間
・黄色:メモリの使用量が普通だった期間
・赤色:メモリの使用量が多かった期間
の割合を表示しています。
上の画像だと緑色だけなので、常時RAM使用率が低かったことになります。
3.アプリ別のメモリ使用量
アプリアイコンが表示されている項目は、アプリ別のメモリ使用量です。
・アプリ名の右側に表示される%表示:データ収集期間に対するアプリの実行時間の割合
・青色のバー:アプリ別の相対的なメモリ使用量(実行時間×平均メモリ使用量)
相対的にメモリを食うアプリを特定することができます。
上の画像の例だとGoogle検索が、他のアプリと比較すると、一番メモリを食っていることがわかります。
100%のバーですが、物理的なメモリを100%食っているわけではありませんし、一瞬大量のメモリを使用するアプリなどは、上位に上がってこないので注意が必要です。
アプリ別のメモリ使用量をクリックすると、詳細を表示することができます。
4.使用詳細
平均メモリ使用量と最大メモリ使用量と実行時間です。
平均メモリ使用量は、サンプリング時のメモリ使用量の合計/サンプリング回数で計算されている気がします。(ソースコード見てないので根拠はないですが、developers blogからなんとなく)
サンプリング数は表示されていませんが、adb shell dumpsysを使用すると確認出来るようです。
サンプリングタイミングについては、よくわかりませんでした。
5.サービス
アプリが使用したサービス一覧です。
サービス名右側の%表示は、データ収集期間に対するサービスの実行時間の割合
(だと思われます。アプリの実行時間の割合以上の表示がないため)
あとがき
最近、Android4.4搭載端末に機種変更しました。
早速、開発者向けオプションを有効にしたところ、いろいろ新し機能が追加されてました。
他にも使えそうな便利機能があったら紹介したいと思います。
ではでは~。