Влияет ли Glide, Picasso или другая библиотека загрузки изображений на производительность приложения при загрузке изображения из локальных ресурсов в RecyclerView?

#android #android-recyclerview #android-imageview #picasso #android-glide

#Android #android-recyclerview #android-imageview #пикассо #android-скольжение

Вопрос:

Как указано в названии, в моих текущих приложениях у меня есть возможность загружать изображения с локальных ресурсов RecyclerView . Пожалуйста, обратите внимание, что изображения не загружаются с URL, поэтому сеть не требуется.

Я знаю, что при загрузке изображений с URL-адреса эти библиотеки загрузки изображений улучшат производительность нашего приложения благодаря их потрясающим оптимизированным функциям загрузки и кэширования.

Но применимо ли это и при загрузке изображений из локальных ресурсов?

Я нашел этот ресурс, в нем указано, что если мы загружаем только изображение из локальных ресурсов без каких-либо изменений, то нам не нужна эта библиотека.

Итак, как насчет того, чтобы загрузить его туда RecyclerView , где нам нужно загрузить много изображений из локальных ресурсов? Улучшает ли это производительность нашего приложения? Или ImageView.setImageResource() достаточно? Обратите внимание, что существует вероятность повторного использования одного и того же изображения.

Комментарии:

1. Библиотеки, подобные тем, которые вы упомянули, кэшируют изображения в память. Если вы не кэшируете изображения в память, используя только using ImageView.setImageResource() , вы столкнетесь OutOfMemoryException с загрузкой больших изображений. Я, безусловно, рекомендую использовать библиотеку кэша изображений, такую как glide, picasso и т.д.

2. Они будут загружаться так же быстро из локальных — или быстрее — как из сети. Они не улучшают производительность ваших приложений. Они только могут ускорить загрузку изображений. Или медленнее.

3. да, это правда. Но меня здесь больше беспокоит производительность после использования библиотеки изображений. В любом случае, спасибо за ответ 🙂 @HB.

4. Не могли бы вы, пожалуйста, подробнее объяснить, когда изображение загружается быстрее, а когда медленнее? @blackapps

5. @FranzAndel При загрузке изображения в первый раз с использованием этих библиотек оно будет на несколько мс медленнее, потому что сначала его нужно кэшировать. Во второй раз он загрузится с той же скоростью или быстрее, чем при использовании ImageView.setImageResource() , потому что изображение уже находится в памяти к моменту его «загрузки».

Ответ №1:

Если ваши изображения хранятся в drawable каталогах, и у вас уже есть разные размеры для разных разрешений, то использование другой библиотеки для загрузки этих изображений не принесет большой пользы.

Однако, если у вас есть изображения raw или у вас нет разных размеров, только большие, использование чего-то вроде Glide оказывается весьма полезным, поскольку оно уменьшает размер изображения, чтобы оно соответствовало требуемому пространству, и сохраняет меньшее изображение в кэше (памяти или диске, в зависимости от того, как вы используетенастройте его). Это значительно ускоряет последующие загрузки, поскольку пользовательскому интерфейсу Android не нужно снова выполнять масштабирование.

Комментарии:

1. Спасибо за отличный ответ 🙂