android内存管理(堆大小)

android内存管理(堆大小),android,Android,我正在开发一个与图形相关的应用程序,在这个应用程序中我正在使用 大量的图片和绘图。所有的活动都在运行,直到我的流程停止 那么,我应该如何分配大的堆大小以使我的应用程序顺利运行呢 应用或任何其他方式来顺利运行应用程序。。我不知道 内存管理现在。我只使用BitMapDraw来显示图像,而且 将system.gc()转换为垃圾收集。也要用这个 Runtime.getRuntime().runFinalizersOnExit(true); Runtime.getRuntime()

我正在开发一个与图形相关的应用程序,在这个应用程序中我正在使用 大量的图片和绘图。所有的活动都在运行,直到我的流程停止 那么,我应该如何分配大的堆大小以使我的应用程序顺利运行呢 应用或任何其他方式来顺利运行应用程序。。我不知道 内存管理现在。我只使用BitMapDraw来显示图像,而且 将system.gc()转换为垃圾收集。也要用这个

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

有人能帮我吗。。thanx Prevance

您是否尝试过使用Java弱引用以便自动垃圾收集这些图像?这篇博文很好地解释了这一点。此外,您还可以使用Guava Collections进行图像处理。

Android不允许您为Java代码调整堆大小,因为您的值约为20MB(在较新的设备上可能更高)。始终记得回收位图。

增加堆大小是不可能的。它是固定的。但您可以进行一些计算以消除一些内存浪费

1) 如果您使用的是位图,则使用Bitmap.recycle()对其进行回收。当使用结束时,将对其进行垃圾回收

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

3) 尽量使用局部变量,避免使用静态函数和变量


希望它能帮助你:)

你能给我举一些同样的例子吗