Stats」などを紹介。VMのOutOfMemoryErrorとヒープ制御についても。4.4の新機能のうち、メモリ使用状況を把握し、改善するためのツールの使用方法を解説します。4.4から追加された「procstats」という新しいツールを使用すると、システム上で実行されている全てのアプリとサービスが使用しているリソースを分析できます。OSにはアプリがどのように経時実行しているかという情報が蓄積されており、procstatsはこの情報を引き出します。想定される使用方法は、Androidデバイスにプリインストールするアプリやサービスが、搭載するRAMで十分動作可能であるかを判断するということです。アプリ開発者向けというよりはAndroidデバイスベンダー向けでしょう。アプリ開発者がアプリが長時間、安定して動くかの確認を行うのにも有効です。その確認方法は後述します。4.4のSDKをインストールして、以下のコマンドを打つだけです。procstatsこれで以下のようなログが全プロセス分出力されます。chromeviewこのように、直近24時間、3時間、現在のステータスが表示されます。残念ながらフォーマットに関する正式なドキュメントは見つけられませんでした。procstatsは「com.android.internal.app.ProcessStats」というクラスで実装されているため、そこからできるだけ表示されている内容の意味を読み取ってみました。Size)最小値{F}:USS平均値{G}:USS最大値{H}:サンプリング数{ステータス名}には以下が存在します。Act)(Cached)アプリやサービスが長時間安定して動作するかどうかを確認するためには、以下のような手順を行います。何度か取得したダンプの値をCSVなどに変換し、グラフにして可視化グラフにしてメモリ使用量が徐々に増えているとか、増えたまま減らないなどの傾向がある場合、メモリリークを疑った方が良いかもしれません。間隔は3時間でなくても、もっと短くても、もっと長くても構いません。定期的にprocstatsコマンドを実行するには、シェルスクリプトやバッチファイルを用いるとよいでしょう。4.4で機能強化され、メモリ使用量のオーバーヘッドを発見しやすくなりました。以下のようにコマンドを入力することで、現在のメモリ使用量の詳細を取得できます。meminfoメモリ使用量の詳細は以下のような形式で出力されます。(high-end-gfx)出力内容は以下の表2の通りです。adjustmentOutOfMemoryErrorが発生してサイズ調整されたPSS使用量を種別ごとに大きい順に表示。categoryカテゴリごとのPSS使用量。カテゴリはDalvik、Native、Ashmem、Graphics、GL、Stack、各種mmapなどまた、以下のように対象プロセスを指定して実行することも可能です。com.android.nfc指定するプロセスは、現在実行されているものでなければなりません。実行していないプロセスを指定した場合は指定なしと同じ動作となり、存在しないプロセスを指定した場合はエラーになります。プロセスを指定した場合のフォーマットは以下のようになります。0.apkや.dexのmmapもメモリ使用量に直接影響するため、ファイルサイズを小さく作るということも軽視できないポイントになるということが見て取れます。前述のprocstatsと併せて使用するとよいでしょう。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。