4

我们有一个在内存中有很多位图的应用程序。它一直失败

java.lang.OutOfMemoryError: bitmap size exceeds VM budget

错误。我们可能真的使用了太多的内存;我们可能正在泄漏内存;也有可能我们没有做错任何事情,而堆碎片正在杀死我们。(由于 Android 的垃圾收集器不会重新定位活动块,我们可能有兆字节的空闲空间,但无法分配 50K。)

有什么办法可以排除碎片吗?我一直在寻找类似 maxAvail/memAvail 的东西,但没有发现任何合适的东西。

4

1 回答 1

1

我会考虑通过MAT检查堆。Eclipse Memory Analyzer 将帮助您确定您实际遇到的建议问题。

Google I/O 2011 上有一个演讲,涵盖了有关内存管理和调试主题的一些基础知识。您可以在这里在线观看:http ://www.youtube.com/watch?v=_CruQY55HOk&feature=relmfu

于 2011-12-10T06:36:31.150 回答