看看這個視頻here在大約35分鐘,他們展示瞭如何描述你的應用,不知道你是否可以做'活'壽。
更多信息from this post on milk.com:
有沒有因爲試過這個Android 1.6及不知道你是否能做到這一點的生活,但用於能夠通過生成堆數據:
得到一個設備上的命令shell:
$ adb shell
您可以驗證是否正在運行與id命令根。響應應該看起來像uid = 0(root)gid = 0(root)。如果不是,請輸入su並重試。如果su失敗了,那麼你運氣不好。
接下來,確保目標目錄存在:
# mkdir /data/misc
# chmod 777 /data/misc
用PS或DDMS來確定應用程序的進程ID,然後發送一個SIGUSR1到目標進程:
# kill -10 <pid>
信號導致GC,然後是堆轉儲(要完全準確,它們實際上是同時發生的,但堆轉儲中的結果反映了GC後狀態)。這可能需要幾秒鐘的時間,所以您必須注意GC日誌消息以瞭解它何時完成。
下一頁:
# ls /data/misc/heap-dump*
# exit
使用ls來檢查文件名,然後退出,退出設備命令shell。
您應該看到兩個名爲/data/misc/heap-dump-BLAH-BLAH.hprof和.hprof-head的輸出文件,其中BLAH是一個運行時生成的值,可確保文件名是唯一的。拉他們關閉設備,並刪除該設備端副本:
$ adb pull /data/misc/heap-dump-BLAH-BLAH.hprof tail.hprof
$ adb pull /data/misc/heap-dump-BLAH-BLAH.hprof-head head.hprof
$ adb shell rm /data/misc/heap-dump-BLAH-BLAH.hprof /data/misc/heap-dump-BLAH-BLAH.hprof-head
合併在一起,並刪除中間體:
$ cat head.hprof tail.hprof > dump.hprof
$ rm head.hprof tail.hprof
你現在有dump.hprof的HPROF轉儲。
數據文件格式從常用的hprof格式略有增加,並且由於許可限制,修改後的hat工具無法分發。轉換工具hprof-conv可用於從輸出中去除特定於Android的部分。這個工具最初被包含在1.5中,但可以與老版本的Android一起使用。
轉換的輸出應該可以與任何hprof數據分析器一起工作,包括jhat,它可以在Sun JDK和Eclipse MAT中免費獲得。
DDMS提供堆和分配跟蹤器 - 這些和MAT幾乎是我所能找到的。請更新你的帖子,你發現比這更好的東西。 – Asahi
看到我的答案在這http://stackoverflow.com/questions/9565453/android-memory-analysis/9679360#9679360 – Sameer