Android Studio 1.5のHeap Viewerを使ってみる

DDMSでメモリダンプしたhprofファイルをAndroid Studio 1.5で閲覧することができます。

 

1 Android StudioのHeap Viewer

hprofファイルをAndroid Studio上で開き、Androidアプリケーションのメモリダンプを閲覧することができます。 Android Studio 1.5から利用できます。

MainActivityのonCreateでchar型の配列を65536個ヒープに確保するコードを使います。

private char [] mArray;

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
  setSupportActionBar(toolbar);

  FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
  fab.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
      Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
          .setAction("Action", null).show();
    }
  });

  mArray = new char [65536];
  for (int i = 0; i < 65536; i += 4096)
    mArray[i] = 0xff;
}

2 DDMSでhprofファイルの取得

DDMSでメモリダンプすることでhprofファイルを生成することができます。

DDMSはAndroid Studio経由で起動します。

0001_DDMS.png

アプリを選択してメモリダンプを実行します。

デフォルトではパッケージ名.hprofという名前になります。

0002_DumpHeap.png

3 Android Studioでhprofファイルを開く

File -> Openから先ほど取得したhprofファイルを開きます。

Class List Viewでオブジェクト毎に使用しているメモリを閲覧できます。

0003_ClassListView.png

Package Tree Viewでパッケージ毎に使用しているメモリを閲覧できます。

MainActivityのメンバmArrayの内容を閲覧できます。

0004_PackageListView.png