使用AndroidStudio dump heap,再用 Eclipse MAT插件分析內存泄露

1.eclipse mat插件的安裝

Help->Install new software,如下圖,一直下一步即可


2.eclipse 打開mat,並導入\導出的文件 

file->open file 選擇即可

3.Android studio export heap dump

進入Android Monitor視圖 
將光標定位到Android Studio的左下角,然後如下圖所示彈出一個列表,選中“Android Monitor”


生成hprof文件

點擊“Memory“Tab,進入內存分析的部分,然後點擊”dump java heap for selected client”按鈕,如下圖所示:


然後主工作區就顯示一個與下圖類似的頁面 

 

導出hprof文件 
再次將光標定位到Android Studio的右下角,這次選擇”Captures“,在導出的hprof文件上右鍵單擊並選擇”Export to Stand .hprof“,就可以將導出的hprof文件進行分析了。


4.OQL查找Activity內存泄露


select * from instanceof android.app.Activity


再右鍵選擇Path to GCRoots


gc roots 顯示android源碼一個比較低級的bug導致的泄露,單例引用context。

leak canary給出瞭解決文案


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章