Фон
Android P представляет новый API для загрузки изображений, используя ImageDecoder класс.
Проблема
Немного документировано об этом классе, поэтому мне просто любопытно, как его использовать, и стоит ли мне использовать его, когда это возможно, вместо Glide library , например , который сам Google рекомендует использовать:
В большинстве случаев мы рекомендуем использовать библиотеку Glide для извлечения,
декодировать и отображать растровые изображения в вашем приложении. Glide рефератов из большинства
сложность в решении этих и других задач, связанных с работой
с растровыми изображениями и другими изображениями на Android. Для получения информации об использовании
и скачав Glide, посетите хранилище Glide на GitHub.
Что я нашел
Я нашел несколько статей об этом, дающих подсказки о том, что он может сделать и как его использовать:
Однако, согласно моим тестам, загрузка GIF-анимации хуже с использованием этого API (занимает больше памяти, использует примерно тот же процессор) по сравнению с классом Movie, который сам по себе хуже, чем сторонние библиотеки, такие как android-gif-drawable . То, что я протестировал , довольно длинная анимация GIF. На стороннюю библиотеку ушло около 59МБ. При использовании класса Movie это заняло около 168 МБ, а при использовании нового API ImageDecoder - 200–300 МБ ...
Итак, вкратце, я обнаружил, что это API:
- Он должен заменить BitmapFactory
- Поддерживается загрузка анимированных GIF / WEBP
- Имеется несколько слушателей для предварительной / последующей обработки.
- Он должен быть более эффективным, но я не вижу его, по крайней мере, не с точки зрения использования памяти.
Вопросы
Есть ли какие-либо преимущества использования этого API по сравнению с тем, что мы уже имеем в сторонних библиотеках? Значение Glide для статических изображений и «android-gif-drawable» для GIF (и, может быть, что-то для WEBP, которое я не искал)?
Работает ли он лучше за кулисами, и мне наплевать на использование памяти?
Есть ли у него кеш памяти / диска? Если да, то как он управляет своей кэш-памятью сейчас, когда Android не хранит растровые изображения в куче памяти (писал об этом здесь )?
Возможно ли, что этот API будет доступен в библиотеке поддержки? В противном случае я не вижу особой необходимости использовать его вообще ... РЕДАКТИРОВАТЬ: кажется, это может быть в библиотеке поддержки. Ссылка здесь .