android - 内存分析器工具 - Android

标签 android memory-leaks eclipse-memory-analyzer

我修复了我的应用程序 Activity 中的窗口泄漏。但是,当我使用 Android 中的内存分析器工具 - 直方图 View 测试该应用程序时,我发现了 2 个 Activity 实例。

类名 |对象 |浅堆 |保留堆

MATDemoActivity。 | | |
com.pace.mat.MATDemoActivity | 2 | 368 |

总计:1 个条目(过滤 2,195 个)| | |

既然没有内存泄漏,怎么可能是2个对象呢?请帮助我理解 MAT 结果中的数据....提前致谢

请在此链接中找到完整代码和相关讨论。

Android Memoryleak in code

=================

我发现当我从 Activity 1st -> 2nd -> 1st 开始时。第一个 Activity 类的浅堆 = 2 和第二个 Activity 类 = 1,当我从第一个 -> 第二个 -> 第一个 -> 第二个移动时......第一个 Activity 类的浅堆 = 1 和第二个 Activity 类 = 2.

所以我尝试了启动模式。我为所有 Activity 设置了 android:launchMode="singleTask"。现在这两个 Activity 的浅堆都等于我导航到页面的次数。但是由于在此启动模式下不允许使用多个实例,为什么我没有将浅堆对象计数为 1?

请分享您的想法,这将有助于我更好地理解这一点。

最佳答案

在 Activity 中创建不需要的对象会导致内存泄漏。因此,避免创建无用的类对象非常重要。这些对象会占用一些内存而不释放它。我认为这 link将帮助您解决问题。

关于android - 内存分析器工具 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10632855/

相关文章:

android - 使用应用名称获取包名称

android - 如何使用 Android 通过 3G 连接到手机

java - 我需要帮助使用 MAT 查找我的内存泄漏

java - eclipse中解析hprof文件时发生内部错误

eclipse内存分析器打不开

java - 当我将 int 替换为 Short 时,为什么 Java 对象的大小相差超过两个字节?

java - 在 relativeLayout 中将 View 设置在中心下方几处

java - 在后台更新位置并检查 LocationSettings

javascript - 这段代码会产生内存泄漏吗?

memory-leaks - 如何检查之前是否运行过子程序?