Android中內存泄露監測

在瞭解了JVM的內存管理後,我們再回過頭來看看,在android中應該怎樣來監測內存,從而看在應用中是否存在內存分配和垃圾回收問題而造成內存泄露情況。

android中,有一個相對來說還不錯的工具,可以用來監測內存是否存在泄露情況:DDMSHeap

使用方法比較簡單:

  • 選擇DDMS視圖,並打開Devices視圖和Heap視圖
  • 點擊選擇要監控的進程,比如:上圖中我選擇的是system_process
  • 選中Devices視圖界面上的"update heap" 圖標
  • 點擊Heap視圖中的"Cause GC" 按鈕(相當於向虛擬機發送了一次GC請求的操作)
Heap視圖中選擇想要監控的Type,一般我們會觀察dataobject total size的變化,正常情況下total size的值會穩定在一個有限的範圍內,也就說程序中的代碼良好,沒有造成程序中的對象不被回收的情況。如果代碼中存在沒有釋放對象引用的情況,那麼data objecttotal size在每次GC之後都不會有明顯的回落,隨着操作次數的增加而total size也在不斷的增加。(說明:選擇好data object後,不斷的操作應用,這樣纔可以看出total size的變化)。如果totalsize確實是在不斷增加而沒有回落,說明程序中有沒有被釋放的資源引用。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章