【问题标题】:How to analyze memory using android studio如何使用android studio分析内存
【发布时间】:2014-08-24 05:08:58
【问题描述】:

最近从eclipse切换到android studio。如何在 android studio 中检查应用程序堆和内存分配?在 Eclipse 中我们有 MAT 工作室里有什么东西可以检查堆转储、hprof 文件吗?

【问题讨论】:

    标签: android android-studio profiling heap-memory


    【解决方案1】:

    我将通过步骤简单地解释它:

    1. 首先,您已安装 MAT (download) 或使用:

      brew cask install memoryanalyzer

    2. 在 Android Studio 中打开 Android Device Monitor 或 DDMS。

    3. 选择您的进程“com.example.etc..”

    4. 单击进程列表上方的更新堆。

    5. 在右侧面板中,选择“堆”选项卡。

    6. 单击导致 GC。

    7. 单击进程列表上方的转储 HPROF 文件。

    8. 当我们下载 HPROF 文件时,我们必须打开终端并运行此命令来生成文件以使用 MAT 打开它。

    9. 打开终端并运行此命令

    ./hprof-conv path/file.hprof exitPath/heap-converted.hprof

    命令“hprof-conv”在sdk的platform-tools文件夹中。

    1. 并且准备好和MAT可以打开并打开转换后的文件(heap-converted.hprof)。

    【讨论】:

    • 很好奇转储 hprof 时会发生什么;单击该选项后,似乎没有任何反应。在什么时候应该有任何迹象表明它已经完成了转储,它把输出放在哪里?谢谢。
    • @wkhatch,显示对话框可能需要一段时间。您应该会看到一个询问保存位置的窗口。如果它对其他人有帮助,我没有意识到 MAT 下载链接是独立下载(打开 mat.app)。我以为它只是指向 Eclipse 插件的链接。
    • 谢谢@loeschg。我让它在另一个尝试中工作。出于某种原因,它只是在我尝试的前几次挂断。
    • 在最近的 Android Studio 版本 (1.2.x) 中,可以通过以下方式快速生成堆转储:'Android' (6) tab > 'Memory' sub-tab > " Dump Java Heap”图标:这将创建一个 .hprof 文件并将其下载到项目目录中名为 captures 的文件夹中。从那里,@TeRRo 描述的步骤 9-10 将完成这项工作。
    • @undo 感谢更新!。如果可以,请随时编辑答案,否则我会尽快更新。
    【解决方案2】:

    还有另一种查看分配的方法:

    【讨论】:

    • 该按钮现已移至“内存”选项卡中。
    【解决方案3】:

    Android 监视器 -> 监视器(在 logcat 旁边)-> 内存 -> 转储 java 堆

    【讨论】:

    • 我相信这个答案已经过时了——据我现在所见,Log Cat 旁边没有监视器
    【解决方案4】:

    我同意上述答案,但以下步骤除外

    1. 单击进程列表上方的更新堆。

    2. 在右侧面板中,选择“堆”选项卡。

    3. 单击导致 GC。

    它们不是必需的。只需在 DDMS 中选择您的应用程序/进程,然后单击转储 HPROF 配置文件选项。之后,完全按照上述步骤操作。

    【讨论】:

      【解决方案5】:

      也可以通过以下方式获得更多选择,

      1. 转到工具
      2. 然后到 Android
      3. 终于到 Android 设备监视器

      【讨论】:

        【解决方案6】:
        1. 先安装MAT,要在Android Studio中使用,需要选择Stand-alone Eclipse RCP Applications安装,可以作为独立工具使用

        2. 在 Android Studio 中,运行您的应用程序

        3. 在底部面板中,选择6:Android,然后选择Memory Monitor

        4. 点击Dump Java Heap

        5. 切换到 Captures 选项卡(在左侧面板中),您可以在 Heap Snapshot 文件夹中找到 .hprof 文件

        6. 为了在 MAT 中打开 .hprof 文件,您需要转换格式: 左键单击.hprof 文件,然后选择Export to standard .hprof

        7. 打开MAT,然后打开你已经转换格式的.hprof文件

        【讨论】:

          【解决方案7】:

          请注意,在最新的 Android Studio (1.3+) 中,堆 (Android hprof) 捕获已移至 Android 选项卡下的 Memory Monitor 子选项卡(如 cVoronin 答案中的第一张图片)。

          捕获完成后,它会自动保存到您项目下的“captures”目录中(如果您愿意,可以在事后重命名文件)。 hprof 文件将在 1.3+ 的新 hprof 查看器中自动打开。

          当然,您始终可以选择将其转换为标准 hprof 格式并在 MAT 中查看。只需右键单击 Captures 浏览器中的文件(在项目浏览器下),然后在此处选择转换。和往常一样,如果不使用新的查看器,您会丢失一些额外的 Android 特定信息,因为标准 hprof 不支持这些信息。

          【讨论】:

            【解决方案8】:

            我从 Eclipse 切换到 Android Studio,但我仍然在 Eclipse 中使用 MAT,并带有 DDMS 插件。这要容易得多。

            【讨论】:

            • 自从我发布这个之后,Android Studio 已经大大改进了它的分析工具。我现在使用 AS 进行分析。
            【解决方案9】:

            我知道这是一个很老的问题,但 Android Studio 3 现在有一个内置的分析器。

            在此处查看文档:Android Profiler in Android Studio 3.0

            【讨论】:

            • 你能告诉我如何使用android studio 3分析器吗?
            【解决方案10】:

            您可以在新的 android studio 中使用 android profiler。

            【讨论】:

              猜你喜欢
              • 2016-06-15
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-06-09
              • 1970-01-01
              相关资源
              最近更新 更多