Nexus 5 開発者向けオプションとADBコマンドで、メモリの使用状況を見てみる。

Nexus 5 開発者向けオプションとadbコマンドで、メモリの使用状況を見てみる。01

私のNexus 5は、最近よく落ちます。カメラで撮影中やブラウジング中といった、なんでもない動作のときにでも落ちます。パソコンでいうなら、XPスペックのマシンにVistaを走らせている感じです。

メモリの使用状況をみるには、

  • 開発者向けオプションのプロセスの統計情報でみる。
  • Android SDKのADBコマンドでみる。

では、早速、メモリの使用状況を見てみます。

開発者向けオプション→プロセスの統計情報

Nexus 5 開発者向けオプションとadbコマンドで、メモリの使用状況を見てみる。02
設定画面の「開発者向けオプション」から「プロセスの統計情報」をタップします。開発者向けオプションはデフォルトでは非表示となっているので、ビルド番号を7回タップして表示させます。

Nexus 5 の開発者向けオプションを使う。 | サイゴンのうさぎ シーズン1

Nexus 5 開発者向けオプションとadbコマンドで、メモリの使用状況を見てみる。03

プロセスの統計情報をみると、メモリの使用状況が閲覧できます。「Google Play 開発者サービス」が陣取っていますね。

Nexus 5 開発者向けオプションとadbコマンドで、メモリの使用状況を見てみる。04

右上のアイコンから、期間やシステム表示、統計タイプの表示が可能です。バックグランドで何かありそうです。

ADBコマンド procstats

Nexus 5 開発者向けオプションとadbコマンドで、メモリの使用状況を見てみる。05

それでは、ADB接続して、CLI(コマンドラインインターフェイス)で見てみます。端末とPCを付属のUSBケーブルで接続して、「開発者向けオプション」の「USBデバッグ」にチェックを入れます。デバッグモードで接続して、ADBコマンドが使える状態にします。

Android SDK adb環境の作り方。 | サイゴンのうさぎ シーズン1
Nexus端末の Google USB Driver のインストール。 | サイゴンのうさぎ シーズン1

Nexus 5 開発者向けオプションとadbコマンドで、メモリの使用状況を見てみる。06

コマンドプロンプトを立ち上げ、以下のコマンドを入力します。メモリダンプのステータスが表示されます。

adb shell dumpsys procstats

Memory usageの結果です。

Memory usage:
Kernel : 131MB (84 samples)
Native : 73MB (84 samples)
Persist: 214MB (71 samples)
Top : 101MB (145 samples)
ImpFg : 42MB (217 samples)
ImpBg : 26MB (383 samples)
Backup : 1.0KB (27 samples)
Service: 105MB (544 samples)
Receivr: 370KB (670 samples)
Home : 8.3MB (10 samples)
LastAct: 21MB (31 samples)
CchAct : 73KB (4 samples)
CchCAct: 512KB (1 samples)
CchEmty: 151MB (364 samples)
Cached : 0.94GB (84 samples)
Free : 61MB (84 samples)
TOTAL : 1.9GB
ServRst: 7.9KB (84 samples)

トータルで1.9GBのメモリのうち、上位は、Persist: 214MB、CchEmty: 151MB、Kernel : 131MBとなっています。Persistは永続利用のメモリのようです。正直、なんのことか分かりません。

ADBコマンド meminfo

Nexus 5 開発者向けオプションとadbコマンドで、メモリの使用状況を見てみる。07

以下のコマンド入力します。メモリ使用量の詳細を取得できます。

adb shell dumpsys meminfo

Total PSS by process:
103435 kB: com.android.systemui (pid 937)
89704 kB: system (pid 769)
75311 kB: com.android.settings (pid 3153 / activities)
66496 kB: com.google.android.googlequicksearchbox (pid 1204 / activities)
26532 kB: surfaceflinger (pid 175)

プロセスのPSS使用量が大きい上位5つです。

Total PSS by OOM adjustment:
76602 kB: Native
26532 kB: surfaceflinger (pid 175)
12733 kB: zygote (pid 200)
8373 kB: mediaserver (pid 188)
4338 kB: rild (pid 186)

OOM、メモリ不足 (Out of memory) が起こった時の上位5つです。

Out of memory – Wikipedia

Total PSS by category:
204674 kB: Dalvik
119892 kB: Native
110784 kB: EGL mtrack
93970 kB: .dex mmap
53335 kB: .so mmap

カテゴリごとのPSS使用量、上位5つです。

Total RAM:1900556 kB です。Free RAM:1204812 kBで、Used RAM: 719321 kB です。2GBのメモリで半分くらいは利用されています。上位によく出てくる「SurfaceFlinger」は、描画の実行管理を行うプロセスです。

だから何?っていうぐらいに、よく分かりません。文系の限界です。

なんだかんで、何もしていない状態でも、それなりにバックグラウンドでメモリを使用していること、「Google Play開発者サービス」が占めていることが分かりました。