内存分析工具在android?

我只是想知道如何在Android中使用内存分析工具。 请告诉我如何做到这一点,以了解特定项目的内存泄漏。 有人可以给我这个步骤明智的程序。

  • 在textview上的Android内存泄漏 - LeakCanary(泄漏可以忽略)
  • Android AdMob导致内存泄漏?
  • MainActivity使用leakcanary泄漏
  • Android ClassLoader内存泄漏
  • 内存不足内存泄漏问题
  • android.database.CursorWindowAllocationException:即使closures游标后,游标窗口分配的2048 kb失败
  • 事件监听器中的内存泄漏
  • 活动已经泄漏窗口com.android.internal.policy.impl.PhoneWindow$DecorView@44f72ff0原来在这里添加
    1. 在Eclipse中打开DDMS透视图。
    2. select设备选项卡。
    3. select一个你想转储的进程。
    4. 点击转储HPROF文件button。 假设安装了MAT,转储将被打开,MAT窗口将被打开。
    5. 在向导窗口中select“ 泄漏可疑人员报告” ,然后单击“ 完成”

    就这样。 你会列出可能的泄漏清单,但其中有些是误报。 我build议你运行一个想要多次检查泄漏的活动,然后再次运行MAT。

    尝试使用内存分析工具(MAT)

    看这些文章:

    • 使用DDMS
    • 跟踪内存分配
    • 避免内存泄漏

    也看看这些SOpost:

    • Android ==>内存分析==> Eclipse内存分析器?
    • 哪些Android工具和方法最适合查找内存/资源泄漏?

    当你没有使用android.permission.WRITE_EXTERNAL_STORAGE时,写入hprof失败。 作为在设备上进行testing的特殊情况,请检查您的SD卡是否已连接到主机模式,否则您将无法在SD卡上进行写入

    • 安装MAT 。

    • 进入工具 – > Android – > Android设备监视器(DDMS)

    • 设备下的左上angular,select项目名称,然后单击更新堆

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

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

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

    • 然后最后运行这个命令,通过引用这个文件来转换这个文件格式在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 。然后显示类名称。

    方形开源内存分析工具: LeakCanary 。

    LeakCanary的核心是MAT。

    我build议看看泄漏金丝雀 。 这不是一个内存分析仪本身,而是更多的泄漏检测器。 只要使用你的应用程序,打开和closures活动,让图书馆做的工作。 它甚至会告诉你发生泄漏的位置。 只要泄漏分析器有一定的时间在泄漏发生后进行工作 – 通常需要大约2分钟或更长时间才能find泄漏源。

    请更新到Android Studio版本1.41.5 。 在这个版本中,android已经支持被称为Analyzer Task新工具。避免内存泄漏非常有用。