Android,一个不可能的内存泄漏,如何通过eclipse找到它?

Android,一个不可能的内存泄漏,如何通过eclipse找到它?,android,memory,memory-leaks,Android,Memory,Memory Leaks,过了一段时间,我遇到了OutOfMemory异常,同时用位图膨胀XML视图 在多次打开使用许多位图但总是从XML膨胀的活动后,会出现此问题 我用记忆检查。 第一个问题:我没有在记忆中保留我的任何活动 -如果我根据活动的名称进行筛选,则会得到Objects=0,但在某些活动上是这样 我可以看到RetainedHeap>=302。这是否表明有泄漏 在那之后,我试着比较我在不同时间点的记忆,以查看已经创建的对象。但我找不到任何有意义的东西 我的问题是:如果我没有在内存中保留活动,那么泄漏的原因是什么?

过了一段时间,我遇到了OutOfMemory异常,同时用位图膨胀XML视图

在多次打开使用许多位图但总是从XML膨胀的活动后,会出现此问题

我用记忆检查。 第一个问题:我没有在记忆中保留我的任何活动 -如果我根据活动的名称进行筛选,则会得到Objects=0,但在某些活动上是这样 我可以看到RetainedHeap>=302。这是否表明有泄漏

在那之后,我试着比较我在不同时间点的记忆,以查看已经创建的对象。但我找不到任何有意义的东西

我的问题是:如果我没有在内存中保留活动,那么泄漏的原因是什么? 使用什么工具/方法查找它

问候,


Olivier

当活动被销毁时,尝试将位图的所有引用设置为
null
。这也许不能回答你的问题,但应该能解决你的问题

  • 如果您有较大的源图像,请将其缩放到目标大小:

  • 在列表(或映射)中缓存位图(但不是Drawables!!),并将其保存在
    onRetainonConfiguration实例()


  • 感谢您的回答,我正在缓存drawable,但是当我销毁我的活动时,我会清除回调引用。我认为最好是缓存drawable,否则每次将位图设置为imageView时,都会间接创建一个新的drawable。我的问题更多,我在位图上有一个漏洞,但我没有在内存中保留任何活动,但我如何才能找到这个漏洞?