如何在Android游戏中释放/释放内存

时间:2015-06-15 07:27:53

标签: android performance memory memory-management

我使用Bitmaps为Android创建了一款2D游戏。关闭游戏后,android studio内存部分显示内存未解除分配。那么如何解除分配给位图的内存。 我有一个名为chopper的Bitmap数组,我正在初始化像

    chopper[0] = BitmapFactory.decodeResource(getResources(), R.drawable.copter1);
    chopper[1] = BitmapFactory.decodeResource(getResources(), R.drawable.copter2);
    chopper[2] = BitmapFactory.decodeResource(getResources(), R.drawable.copter3);

所以在关闭游戏时我试图释放像

这样的记忆
chopper[0]=null;

但它没有在android studio内存图中显示可用内存。是免费记忆的方式吗?如果不是,我怎么能在关闭游戏之前释放内存。 提前致谢

2 个答案:

答案 0 :(得分:1)

在Java中,将对象设为null将不会释放内存。如果垃圾收集器下次运行,如果在任何地方都没有引用该对象,则垃圾收集器可能会释放内存。

在您的情况下,假设您在活动中使用此数组,请关闭可能在您的活动的onDestroy()方法中使用此数组的所有资源,并确保没有任何对象浮动,在此之后引用此对象活动被破坏。

答案 1 :(得分:0)

您必须调用bitmap.recycle() API才能实际释放内存。 请参阅有关bitmaps memory management

的官方文章