2010年11月25日木曜日

android memory leak

1.adb shellにて出力先の書き込み権限をつける
chmod 777 /data/misc

2.ソースに下記出力用の処理追加する
try {
long outputString = System.currentTimeMillis();
Debug.dumpHprofData("/data/misc/" + Long.toString(outputString) + ".hprof");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

3.android実機の/data/misc/配下には.hprofファイルが生成されるんで、
androidツールキットtools配下のhprof-convを利用してhprofのフォーマット
を変換する
./hprof-conv input.hprof output.hprof

4. output.hprofをeclipseのMemory Analysis perspective(eclipseのMATプラグイン)
からfile->open heap dump..
から開くとメモリリーク解析結果が表示される