如何在android中释放内存

时间:2011-10-15 17:42:38

标签: android memory-management memory-leaks out-of-memory

我需要释放下面的指针,如何释放画布,油漆和矩阵的内存?

 Canvas pcanvas = new Canvas();

 Paint mPaint = new Paint(); 

 Matrix matrix = new Matrix(); 

提前致谢。

2 个答案:

答案 0 :(得分:5)

Java没有指针,您无法显式释放内存。

但是leak memory in Java and Android可以。如果您的任何对象引用了非托管内存,则需要让他们知道何时可以释放该内存。

因为看起来你正在做与图形相​​关的工作,我猜你在某处使用Bitmaps并且这些使用大量内存并且需要释放内存。使用完位图后,请务必致电Bitmap.recycle()

答案 1 :(得分:1)

在您不再引用您创建的对象后,为其指定空值。这显然不会立即释放内存但是int这样你告诉GC该对象有资格进行垃圾收集..(有效的java)。

编辑:正如@spatulamania所说,如果你正在管理位图,你必须调用循环(它调用c / c ++ free我认为)方法,以释放与之相关的内存。设置为null位图引用是没有用的,因为位图是本机实现的,java对象是几个字节。