如何使用Android Studio分析内存


74

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

Answers:


120

我将通过以下简单的方法进行解释:

  1. 首先,您已经安装MAT下载)或使用:

    酿造桶安装memoryanalyzer

  2. 在Android Studio中,打开Android设备监视器或DDMS。

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

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

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

  6. 单击原因GC。

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

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

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

./hprof-conv路径/file.hprof exitPath / heap-converted.hprof

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

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

对抛弃hprof时应该发生的事情感到好奇;单击该选项后,没有任何反应。在什么时候应该有任何迹象表明已完成转储,并将输出放在哪里?谢谢。
wkhatch

1
@wkhatch,对话框可能需要一段时间才能显示。您应该看到一个窗口询问保存位置。万一它对其他人有帮助,我没有意识到MAT下载链接是独立下载(打开mat.app)。我以为这只是到Eclipse插件的链接。
loeschg 2014年

谢谢@loeschg。我又尝试了。由于某种原因,它只是在我尝试的头几次挂断了。
wkhatch 2014年

14
在最新的Android Studio版本(1.2.x)中,可以通过以下方式快速生成堆转储:“ Android”(6)选项卡>“内存”子选项卡>“转储Java堆”图标:这将创建并下载.hprof文件到项目目录中名为Captures的文件夹。从那里,@ TeRRo描述的步骤9-10将完成工作。
d4vidi 2015年

@undo感谢您的更新!如果不能的话,请随意编辑答案,我会尽快更新。
joselufo


13

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

在此处输入图片说明


我相信这个答案已经过时了-据我所知,Log Cat旁边没有显示器
Chris Nevill

3

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

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

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

  3. 单击原因GC。

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


3

您还可以执行以下操作以获得更多选择,

  1. 工具
  2. 然后到 Android
  3. 终于到了Android Device Monitor

3
  1. 首先安装MAT,要在Android Studio中使用它,请选择Stand-alone Eclipse RCP Applications安装,可以将其用作独立工具

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

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

  4. 请点击 Dump Java Heap

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

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

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


2

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

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

当然,您始终可以选择将其转换为标准hprof格式并在MAT中查看。只需在“捕获”浏览器(在“项目”浏览器下)中右键单击文件,然后选择“转换”即可。而且像往常一样,由于不使用新的查看器,因此会丢失一些其他特定于Android的信息,因为标准hprof不支持这些信息。


2

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


1
自从我发布此文章以来,Android Studio大大改进了其分析工具。我现在使用AS进行分析。
克里斯汀


0

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.