我正在开发一个与图形相关的应用程序,在我正在使用的这个应用程序中 很多图像和绘图。所有活动都在运行,直到我的流程没有 得到完成。那么我应该怎么做才能分配大堆大小才能顺利运行我的 应用。或任何其他方式顺利运行应用程序..我不知道 内存管理现在。我只使用BitmapDrawable来显示图像 system.gc()到垃圾收集。也用这个
Runtime.getRuntime().runFinalizersOnExit(true);
Runtime.getRuntime().gc();
Runtime.getRuntime().freeMemory();
任何人都可以提前帮助我.. thanx
答案 0 :(得分:1)
您是否尝试过使用Java弱引用,以便自动对这些图像进行垃圾回收? This博客文章解释得很好。此外,您可以使用番石榴集合CacheBuilder作为图像。
答案 1 :(得分:1)
无法增加堆大小。它已修复。但是你做了一些计算以消除一些内存浪费。
1)如果你正在使用Bitmap,那么当它使用时,使用bitmap.recycle()回收它,这将被垃圾收集。
2)如果没有使用它们,请尝试从对象中删除不必要的引用。
3)尝试使用局部变量并避免使用静态函数和变量
希望它对你有所帮助:)。
答案 2 :(得分:0)
Android不允许您调整Java代码的堆大小 - 您需要使用大约20MB的值(在更新的设备上可能更多)。永远记得回收你的位图。