Выбор ответа Middle Производительность и утечки памяти обновлено

Сколько памяти занимает Bitmap

Вопрос

Сколько примерно памяти занимает декодированный Bitmap 4000×3000 в формате ARGB_8888?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Около 48 МБ. ARGB8888 хранит 4 байта на пиксель: 4000 × 3000 × 4 = 48 000 000 байт, около 48 МБ, независимо от размера сжатого файла.

Варианты ответа

  1. Около 4 МБ
  2. Около 12 МБ
  3. Около 48 МБправильный ответ
  4. Столько же, сколько JPEG-файл на диске

Разбор

ARGB_8888 хранит 4 байта на пиксель: 4000 × 3000 × 4 = 48 000 000 байт, около 48 МБ, независимо от размера сжатого файла. Поэтому картинки декодируют под размер view (Coil и Glide делают это сами, вручную inSampleSize) и не держат полноразмерные копии в памяти. Несколько таких картинок в списке быстро приводят к OutOfMemoryError.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.