準(zhǔn)備
1、下載及安裝Android SDK
2、下載及安裝MAT(http://www.eclipse.org/mat/)
使用流程(windows平臺(tái))
收集hprof文件
1拟杉、在{ANDROID_HOME}\tools目下雙擊monitor.bat,打開(kāi)DDMS界面峡扩,如圖:
2昼激、選擇要操作進(jìn)程,如圖:
3抹恳、點(diǎn)擊一下紅色圈圈的按鈕(在點(diǎn)擊前旬薯,可以先點(diǎn)擊下它右邊的GC按鈕),彈出如圖:
4适秩、將hprof文件保存到指定的文件夾绊序。
轉(zhuǎn)換hprof文件
通過(guò)DDMS得來(lái)的hrpof文件硕舆,用MAT軟件是打不開(kāi)的,需要經(jīng)過(guò)一次轉(zhuǎn)換才行骤公,Android SDK中提供了這樣的一個(gè)工具{ANDROID_HOME}\platform-tools\hprof-conv.exe抚官,通過(guò)hprof-conv original.hprof original_conv.hprof,original.hprof 是你通過(guò)DDMS得來(lái)的hprof阶捆,original_conv.hprof是轉(zhuǎn)換后的文件凌节。文章末附錄一個(gè)bat腳本以方便快速的將hprof進(jìn)行轉(zhuǎn)換。
運(yùn)行MAT
1洒试、打開(kāi)MAT軟件倍奢,如圖
2、點(diǎn)擊File->Open Heap Dump垒棋,選擇剛剛我們轉(zhuǎn)換成功的hprof
3卒煞、選擇Leak Suspects Report,點(diǎn)擊finish叼架,進(jìn)入MAT主界面畔裕。
hprof 轉(zhuǎn)換腳本(Windows)
@echo off
if exist %ANDROID_SDK_HOME% (
set convPath=%ANDROID_SDK_HOME%\platform-tools\hprof-conv.exe
for %%i in (*.hprof) do (
echo %%i|findstr "conv_">nul&&echo echo conv_%%i is exist||if exist conv_%%i (
echo conv_%%i is exist
)else (
%convPath% %%i conv_%%i
)
)
)else (
echo ANDROID_SDK_HOME is missing.
)
復(fù)制此腳本粘貼到一個(gè)文本中,后綴名設(shè)置為bat乖订,將這個(gè)bat文件放到hprof目錄下后點(diǎn)擊扮饶,將目錄中的hprof文件都統(tǒng)一轉(zhuǎn)換為mat能識(shí)別的hprof文件了。