如何在Android应用程序中查找哪些对象占用了大部分内存?

时间:2016-01-08 20:26:09

标签: android macos android-studio mat hprof

我正在尝试查看哪些对象占用了我应用中的大部分内存 使用Android的工作室Android-> Memory选项卡,我可以看到内存增加但我看不出哪些对象占用了多少内存。
我使用DDMS来获取hprof,并从Memory选项卡中进行了启动位置跟踪和“Dump Java Heap”。
我安装了独立垫子,但是当我尝试打开hprofs时,我得到了两个:

  

打开堆转储'Snapshot_2016.01.08_19.00.05.hprof'时出错。校验   错误日志以获取更多详细信息。

有什么问题?
我的Android Studio版本是1.3.2

1 个答案:

答案 0 :(得分:2)

  

使用Android工作室Android->内存标签我可以看到内存如何增加但我无法看到哪些对象占用了多少内存

您可以从Memory选项卡的工具栏中在Android Studio上生成堆转储。这将打开类似于MAT的工具,让您仔细阅读内存中的对象。

Android Studio 1.5.1, Showing Heap Dump

  

打开堆转储错误' Snapshot_2016.01.08_19.00.05.hprof'。检查错误日志以获取更多详细信息。

Android使用的堆转储格式与MAT使用的格式略有不同。您的Android SDK hprof-conv中有一个platform-tools/工具,可以为.hprof文件准备MAT友好版本。

The documentation对此有一点材料。