Android內存泄漏測試、定位

工具

使用

導入LeakCanary

在項目的gradle文件導入LeakCanary,具體操作見leakcanary

當項目出現內存泄漏,通過LeakCanary定位具體的Activity或Fragment。

AS(v3.1.2)獲取heap dump文件 .hprof

一、選擇Android Profiler,選擇MEMORY。

步驟1

二、先強制GC多次,然後獲取heap dump信息

步驟2

三、生成heap dump 信息文件 a.hprof

步驟3

四、特別注意,capture出來的 a.hprof 並不能直接交由Ecliplse MAT 處理。需要AndroidSDK提供的hprof-conv工具轉碼一次:

hprof-conv a.hprof b.hprof

步驟4

MAT分析內存泄漏原因

一、導入轉換後的 b.hprof,選擇默認項,效果如下:

步驟1

二、獲取數據類名

步驟2

三、篩選LeakCanary定位的Activity/Fragment

步驟3

四、選中 查看引用詳情

步驟4

五、具體情況具體分析

這裏隨便找的個並沒有內存泄漏的例子,具體情況酌情處理
步驟5

這裏涉及到java的GC,以及四種引用類型,之後再做分析

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