eclipse中进行程式内存泄露调查之一:环境配置

参考网址:http://allenshao.iteye.com/blog/1040935

工具主要有两个
Allocation Tracker和heap dumps。

Allocation Tracker使用方法:
如果是在真机上进行debug的话,有可能出现,在DDMS页面的devices栏中,无法看到真机中的每个进程,这是由于权限不够,如果是拿到root权限的真机,应该可以看到每一个在运行的进程。
点击你要调试的进程,然后在Allocation Tracker点击start tracking.这样程式在运行时就可以记录Allocation Tracker的信息。

heap dumps的使用方法:
根据网上的说法,如果是安装了ADT就会在eclipse的IDE环境中安装了MAT(Meory Analysis)用于分析heap dumps记录的信息。可是不知道是我这边环境安装的时候出了问题还是其他原因。
eclipse环境中并没有安装heap dumps。于是自己动手安装。使用update的方式,
地址是:http://download.eclipse.org/mat/1.1/update-site/
安装完成后,运行程式之前,先选中你要调试的进程,然后点击devices栏上方的Update Heap,开始运行程式。程式结束以后,点击Dump HPROF file。这时候会有两种方式打开文件。
一种是直接在eclipse中打开,另一种是存储hprof文件到指定位置。采用哪种方式取决有你的设置。
preferences -> Android -> DDMS -> HPROF action 中选择你希望的方式。
如果选择 Open in eclipse的话,则直接打开文件。
如果选择save to disk的话,就会将hprof文件存储到指定位置,然后进入Meory Analysis页面,选择open heap dump
(如果选择acquire heap dump from a locally running VM,就会打开当前在运行的heap dump产生的HPROF file)
可能会有如下的问题发生:Unknown HPROF Version (JAVA PROFILE 1.0.3) (java.io.IOException)
这个时候需要将hprof文件进行一次转换。使用adt自带的工具,在/android-sdk/tool下的hprof-conv。
执行如下语句 hprof-conv source-xxxx.hprof target-xxxx.hprof
然后在Meory Analysis页面中打开target-xxxx.hprof,就可以看到分析的结果了。
关于如果看分析结果,再慢慢进行研究。

参考网址:
http://www.ibm.com/developerworks/cn/opensource/os-cn-ecl-ma/index.html
http://stackoverflow.com/questions/6219049/error-openning-hprof-file
http://android-developers.blogspot.tw/2009/02/track-memory-allocations.html
http://blog.csdn.net/harry_helei/article/details/6665219
http://blog.csdn.net/harry_helei/article/details/6692796
http://changyy.pixnet.net/blog/post/28985971-android-%E9%96%8B%E7%99%BC%E6%95%99%E5%AD%B8%E7%AD%86%E8%A8%98---%E4%BD%BF%E7%94%A8-ddms-%E5%92%8C-traceview-%E7%AD%86
http://allenshao.iteye.com/blog/1040935

posted @ 2012-06-13 19:27  日光之下无新事  阅读(1288)  评论(0编辑  收藏  举报