Android應用內存泄漏的跟蹤與分析

1、內存泄漏的排查方法

DDMS(Dalvik Debug Monitor Server),現在改叫ADM(Android Debug Monitor)了。

它有兩項功能可用於內存檢查 :
· Heap 查看堆的分配情況(點擊DDMS左側Device工具欄上的Heap Update按鈕,再點擊Heap頁裏的CauseGC)。
· Allocation Tracker跟蹤內存分配情況。
DDMS 這兩項功能有助於找到內存泄漏的操作行爲。
MAT(Eclipse Memory Analysis Tools是一個分析 Java堆數據的專業工具,用它可以定位內存泄漏的原因。
工具地址 : https://www.eclipse.org/mat/

2、利用MAT分析內存堆

DDMS 可以將當前的內存 Dump成一個 hprof格式的文件,MAT 讀取這個文件後會給出方便閱讀的信息。

配合它的查找,對比功能,就可以定位內存泄漏的原因。
· 獲取 hprof文件(點擊DDMS左側Device工具欄上的Dump Hprof File按鈕,將內存信息保存成文件。 
· 轉換 hprof文件(DDMS Dump 出的文件,要經過轉換才能被 MAT識別,Android SDK提供了工具 hprof-conv)。
它位於Android\SDK\platform-tools目錄下。使用如下命令:hprof-conv dump.hprof out.hprof
用 MAT打開轉換後的 out.hprof 文件 

發佈了474 篇原創文章 · 獲贊 383 · 訪問量 393萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章