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

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

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

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

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

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

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

HB. 18.12.2020 09:16

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

blackapps 18.12.2020 09:23

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

Franz Andel 18.12.2020 12:50

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

Franz Andel 18.12.2020 12:54

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

HB. 18.12.2020 13:16

означает, что кеширование также применяется для загрузки изображения из локальных ресурсов, а не только из сети?

Franz Andel 18.12.2020 13:28
1
6
644
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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

Спасибо за отличный ответ :)

Franz Andel 18.12.2020 13:17

Другие вопросы по теме