Правильный способ освобождения растровой памяти

Я разрабатываю свое первое приложение для Android. У меня есть метод, который создает два растровых изображения и возвращает третье растровое изображение, которое представляет собой наложение второго растрового изображения поверх первого растрового изображения. Так что в основном мне не нужны два растровых изображения после создания третьего растрового изображения. Я прочитал несколько сообщений и статей об освобождении растровой памяти, и я немного смущен тем, как с этим справиться.

Должен ли я сам выпускать растровые изображения? Если да, то как правильно это сделать? Выпускаются ли они после завершения метода? Должен ли я просто позволить сборщику мусора выпустить его?

public static Bitmap bitmapResizeOverlay(Context context, Uri selectedImage, int maxWidth,
                                         int maxHeight, @DrawableRes int overlayImageResource) {
    Bitmap selectedBitmap = bitmapResize(context, selectedImage, maxWidth, maxHeight);
    Bitmap overlayBitmap = BitmapFactory.decodeResource(context.getResources(), overlayImageResource);
    return overlayBitmapToBottom (selectedBitmap, overlayBitmap);
}

person Oshri    schedule 11.08.2018    source источник


Ответы (1)


 selectedBitmap.recycle()

метод используется всегда, когда вы хотите очистить память, занятую растровым изображением. Недостатком отказа от повторного использования битовой карты может быть OOM (исключение памяти).

person Abhinandan    schedule 11.08.2018