当我调用Bitmap.createBitmap()时如何避免gc_for_alloc?

时间:2013-10-16 09:58:21

标签: java android performance

我对Bitmap.createBitmap()的调用总是导致gc_for_alloc。 这是代码:

if (theFinger.isTheSaveFlag())
{
    theBackGroundBuffer.position(0);
    gl.glReadPixels(0, 0, theBackGroundWidth, theBackGroundHeight, GL10.GL_RGBA, GL10.GL_UNSIGNED_BYTE, theBackGroundBuffer);
    theBackGroundBuffer.position(0);
    theBackGroundBuffer.get(theBackGroundPixel);
    theBackGroundTexture.dispose();
    theBackGround.recycle();
    theBackGround = Bitmap.createBitmap(theBackGroundPixel, theBackGroundWidth, theBackGroundHeight, Bitmap.Config.ARGB_8888);
    theBackGroundTexture.load(theBackGround);
}

有人可以告诉我为什么吗?

1 个答案:

答案 0 :(得分:0)

在android中,它总是调用垃圾收集器来收集和删除内存中未使用的资源,这就是它打印gc_for_alloc消息的原因,该消息显示未使用的资源被删除,并为需要它的其他资源分配了空间

特别是当你对图像进行操作并在内存中加载大量图像时需要调用它,这需要更多的空间来加载。