android的开发和测试工具很多,稍微总结下,方便以后用。

 首先说个简单点的,分析程序的内存泄露工具DDMS:

    

android开发和测试工具分析_DDMS和MAT_内存泄露


android开发和测试工具分析_DDMS和MAT_内存泄露_02

之前项目中遇到的一个就是2-byte arry的数据在不停的增长,导致程序运行的很卡,直到最后卡死。

如果你发现了一种类型的数据在不停的增长,就要具体问题具体分析了,因为你是对代码最熟的。我当时就一段代码一段代码的排除,最后找到泄露的地方。

另外一种方式稍微麻烦一点,我用的也不是很熟练,简单介绍下:


android开发和测试工具分析_DDMS和MAT_数据_03

   然后要下载一个工具(也算是eclipse的一个插件):

 MemoryAnalyzer-1.1.1

  下载下来之后直接点击MemoryAnalyzer.exe,然后open 上面生成的hprof文件,见下图。

   


android开发和测试工具分析_DDMS和MAT_数据_04

饼状图就画出来当前可能出现问题的概率,饼状图下面会有详细的文字描述。

调试内存泄露时,有时候适时比较2个地方的heap状态是很有用的。这时你就需要生成2个单独的HPROF文件(不要忘了转换格式)。下面是一些关于如何在MAT里比较2个heap dumps的内容(有一点复杂):

  1. 第一个HPROF 文件(using File > Open Heap Dump ).
  2. 打开 Histogram view.
  3. 在Navigation History view里 (如果看不到就从Window > Navigation History找 ), 右击histogram 然后选择Add to Compare Basket .
  4. 打开第二个HPROF 文件然后重做步骤2和3.
  5. 切换到Compare Basket view, 然后点击Compare the Results (视图右上角的红色"!"图标)。

  给两个链接,mat说的比较详细:

   http://allenshao.iteye.com/blog/1040935