本文來自http://blog.csdn.net/liuxian13183/ ,引用必須註明出處!
Mat最早在Elicpse,到今未在AndroidStudio上,找到類似的功能,最近在排查內存泄露問題,因此又拿出來用了。
步驟如下:
1、將應用進程殺掉,以免出現數據冗餘,影響出現實驗結果
2、將應用打開,到相關要實驗的頁面,模擬相關功能,測試相關流程,再關閉頁面,重複幾次。
3、獲取類GC數據的hprof文件,
adb shell am dumpheap com.yp.app /data/local/tmp/live.hprof
hprof-conv C:\Users\fred\Desktop\app_now.hprof ~ C:\Users\fred\Desktop\live_new.hprof
4、打開Eclispe,安裝MAT,下載地址:http://download.eclipse.org/mat/1.10.0/update-site/
5、使用Eclipse,打開此hprof文件,點此樹形按鈕,獲得此時的內存樹
6、按此步驟,查找GCRoots,查出“真兇”。建議多放置一段時間,內存並不是回收那麼快的。
7、根據引用鏈,找到觸發內存泄露的GCRoots。
8、根據代碼規範,去優化掉相關代碼。確認優化完畢之後,再重複此流程,直到此泄露不再出現,即宣告大功完成!