Android 中的内存分析工具?

发布于 2024-11-08 16:18:00 字数 75 浏览 0 评论 0原文

我只是想知道如何在 android 中使用内存分析器工具。请告诉我如何执行此操作以了解特定项目的内存泄漏。有人可以给我一步一步的程序吗?

I just want to know how to work with Memory analyzer tool in android. Please tell me how to do this to know about memory leaks for a particular project. Can someone give me step wise procedure for this.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

狼性发作 2024-11-15 16:18:00
  1. 在 Eclipse 中打开 DDMS 透视图。
  2. 选择“设备”选项卡。
  3. 选择您想要转储的进程。
  4. 单击“转储 HPROF 文件”按钮。假设已安装 MAT,将进行转储并打开 MAT 窗口。
  5. 在向导窗口中选择泄漏可疑报告,然后单击完成

就这样。您将看到可能泄漏的列表,但其中一些是误报的。我建议您多次运行要检查泄漏的活动,然后再次运行 MAT。

  1. Open DDMS perspective in Eclipse.
  2. Select Devices tab.
  3. Choose a process you want to make a dump for.
  4. Click Dump HPROF file button. The dump will be made and MAT window will be opened, assuming MAT is installed.
  5. Choose Leak Suspects Report in the wizard window and click Finish.

That's all. You'll se a list of possible leaks, but some of them are false-positive. I recommend you to run an activity you want to check leaks in several times and then run MAT again.

原野 2024-11-15 16:18:00

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

Write to hprof fails when you have not used android.permission.WRITE_EXTERNAL_STORAGE. As a special case when you are testing on device, check if your SD card is connected in Charge ONLY mode otherwise you wont have write access on SD Card

任谁 2024-11-15 16:18:00
  • 安装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"

  • 现在您的文件将转换为leakage.hprof。检查此文件并
    在 MAT 中打开它。

编辑:单击详细信息,然后它将显示类名称。在其中左键单击 -> Path To GC Roots ->包含所有引用。然后它显示类名。

  • Install MAT.

  • Go to Tools->Android ->Android device monitor(DDMS)

  • In the top left side under Devices,select the project name and
    click Update Heap.

  • Then Click Dump HPROF File and saved it in desktop.

  • Then run the Command prompt and point out the Android-sdk directory.

    For an Example: hprof-conv is located in E directory. So run the
    command as cd android/sdk/platform-tools.

  • Then finally run this command by referring this doc to convert this file format to read it in MAT.

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

  • Now your file will converted to leakage.hprof.check this file and
    open it in MAT.

Edit: Click details,then it will show the class names.In that Left Click -> Path To GC Roots ->With all references.Then it shows the class name.

無處可尋 2024-11-15 16:18:00

Square开源了一个内存分析工具:LeakCanary

LeakCanary 的核心是 MAT。

Square open sourced a memory analysis tool: LeakCanary.

The core of the LeakCanary is MAT.

一个人的夜不怕黑 2024-11-15 16:18:00

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

I'd recommend taking a look at Leak Canary. It's not a memory analyzer per se, but more a leak detector. Just use your app, open and close activities and let the library do it's job. It will even tell you about where the leak occured. Just give the leak analyzer some time to do its work after the leak occured - it usually takes around 2 minutes or more until the source of the leak has been found.

不疑不惑不回忆 2024-11-15 16:18:00

请更新到 Android studio 版本 1.41.5
在此版本中,Android 支持了名为 Analyzer Task 的新工具
这对于避免内存泄漏非常有用。

Please update to Android studio version 1.4 or 1.5.
In this version, android has supported new tool its called Analyzer Task
It is very useful to avoid memory leak.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文