android内存管理(堆大小)

时间:2012-02-08 07:48:31

标签: android

我正在开发一个与图形相关的应用程序,在我正在使用的这个应用程序中   很多图像和绘图。所有活动都在运行,直到我的流程没有   得到完成。那么我应该怎么做才能分配大堆大小才能顺利运行我的   应用。或任何其他方式顺利运行应用程序..我不知道   内存管理现在。我只使用BitmapDrawable来显示图像   system.gc()到垃圾收集。也用这个

Runtime.getRuntime().runFinalizersOnExit(true);
            Runtime.getRuntime().gc();
            Runtime.getRuntime().freeMemory();

任何人都可以提前帮助我.. thanx

3 个答案:

答案 0 :(得分:1)

您是否尝试过使用Java弱引用,以便自动对这些图像进行垃圾回收? This博客文章解释得很好。此外,您可以使用番石榴集合CacheBuilder作为图像。

答案 1 :(得分:1)

无法增加堆大小。它已修复。但是你做了一些计算以消除一些内存浪费。

1)如果你正在使用Bitmap,那么当它使用时,使用bitmap.recycle()回收它,这将被垃圾收集。

2)如果没有使用它们,请尝试从对象中删除不必要的引用。

3)尝试使用局部变量并避免使用静态函数和变量

希望它对你有所帮助:)。

答案 2 :(得分:0)

Android不允许您调整Java代码的堆大小 - 您需要使用大约20MB的值(在更新的设备上可能更多)。永远记得回收你的位图。