android中的Memory Analyzer工具?

时间:2011-05-21 09:39:49

标签: android memory-leaks

我只是想知道如何使用android中的Memory analyzer工具。请告诉我如何解决特定项目的内存泄漏问题。有人可以给我一步一步的程序。

6 个答案:

答案 0 :(得分:23)

  1. 在Eclipse中打开DDMS透视图。
  2. 选择设备标签。
  3. 选择要转储的流程。
  4. 单击转储HPROF文件按钮。假设已安装MAT,将进行转储并打开MAT窗口。
  5. 在向导窗口中选择泄漏嫌疑人报告,然后点击完成
  6. 这就是全部。您将列出可能的泄漏列表,但其中一些是误报。我建议您运行一个想要多次检查泄漏的活动,然后再次运行MAT。

答案 1 :(得分:4)

答案 2 :(得分:1)

当您没有使用android.permission.WRITE_EXTERNAL_STORAGE时,写入hprof会失败。作为在设备上进行测试时的特殊情况,请检查您的SD卡是否仅在Charge ONLY模式下连接,否则您将无法在SD卡上进行写入访问

答案 3 :(得分:0)

  • 安装MAT

  • 转到工具 - > Android - > Android设备监视器(DDMS)

  • 设备下方的左上角,选择项目名称和 点击更新堆

  • 然后点击转储HPROF 文件并将其保存在桌面上。

  • 然后运行命令提示符并指出Android-sdk目录。

    例如: hprof-conv位于E目录中。所以跑吧 命令为cd android/sdk/platform-tools

  • 然后最后通过引用此doc来运行此命令以转换此文件格式以在MAT中读取它。

    E:\ Android \ sdk \ platform-tools> hprof-conv "C:\Users\Steve\Desktop\yourfilename.hprof" "C:\Users\Steve\Desktop\leakage.hprof"

  • 现在您的文件将转换为leak.hprof.check此文件和 在MAT中打开它。

修改:点击详细信息,然后它会显示类名。在Left Click -> Path To GC Roots ->With all references中。然后显示类名。

答案 4 :(得分:0)

Square开源的内存分析工具:LeakCanary

LeakCanary的核心是MAT。

答案 5 :(得分:0)

我建议您查看Leak Canary。它本身不是内存分析器,而是更多的泄漏检测器。只需使用您的应用程序,打开和关闭活动,让图书馆完成它的工作。它甚至会告诉你发生泄漏的地方。泄漏发生后,只需给泄漏分析仪一些时间来完成其工作 - 通常需要大约2分钟或更长时间才能找到泄漏源。