У меня есть настраиваемая автономная карта, реализованная путем рисования растровых изображений на Canvas. Я пытаюсь устранить создание объектов, чтобы уменьшить количество циклов GC и, следовательно, сделать плавную прокрутку карты более плавной. Я вижу в Allocation Tracker, что BitmapFactory.decodeFile(...) всегда создает объект byte [16400]. Я думал, что установка поля inTempStorage в BitmapFactory.Options изменит это:
byte[] buffer = new byte[16*1024];
// ...
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Config.RGB_565;
options.inTempStorage = buffer;
Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath(), options);
Но даже с этим кодом я все еще вижу decodeFile, создающий массив byte []. Итак, в чем проблема?