我已經通過在我的應用程序代碼中插入語句Debug.dumpHprofData("/sdcard/myapp.hprof");
創建了hprof文件;然後通過hprof-conv運行hprof文件並在Eclipse中打開轉換後的文件。Android:Eclipse MAT沒有顯示我的應用程序的所有對象
根據MAT「Cheat Sheet」的建議,我通過輸入「com.prepbgg。*」進入「泄漏識別 - >組件報告」並點擊完成,獲得了我應用內存使用情況的分析。
我知道我的應用程序正在消耗大量內存:特別是在我稱之爲dumpHprofData的階段,它具有一個百萬像素位圖對象和一個必須消耗幾百KB的畫布。 (我也懷疑它會泄漏大量內存,因爲在屏幕旋轉幾次後性能會嚴重下降。)
但是,com.prepbgg。*的組件報告顯示的總內存僅爲38.7KB。直方圖視圖顯示了android.graphics.Bitmap(大概這是包括我的所有應用程序的總數)404對象和淺堆12,928。那是12,928字節?
顯然,我的應用程序消耗超過38.7KB,位圖遠遠超過了12,928字節。我哪裏錯了?我怎樣才能看到我的應用程序消耗的內存總量?
非常感謝你的幫助的解答,埃利奧特。 getNativeHeapAllocatedSize是否顯示我的應用程序使用的總內存,它未包含在com.prepbgg。*命名空間的組件報告中顯示的總數(38.7KB)中? (和BitMap一樣,我的應用程序使用的明顯的大對象是Canvas和一個接近300KB的SQLite數據庫,它們是否也會在Native Heap中?) – prepbgg 2010-02-06 11:17:35