Picasso v / s Imageloader v / s Fresco vs Glide

Recomendaciones:

  1. Diferencia entre Picasso v / s ImageLoader aquí …
  2. Información sobre la biblioteca GLIDE aquí …
  3. Recientemente, Facebook lanzó una nueva biblioteca de imágenes llamada Fresco

Preguntas:

  1. ¿Cuál es la diferencia entre Picasso v / s Imageloader v / s Fresco
  2. Cuándo podemos usar Glide
  3. ¿Cuál es la mejor biblioteca para usar?
  4. Si cada biblioteca tiene su propio significado, ¿qué son?

Soy uno de los ingenieros en el proyecto Fresco. Entonces, obviamente, soy parcial.

Pero no tienes que creer en mi palabra. Hemos lanzado una aplicación de muestra que le permite comparar el rendimiento de cinco bibliotecas: Fresco, Picasso, UIL, Glide y Volley Image Loader, una al lado de la otra. Puede obtenerlo en nuestro repository de GitHub .

También debo señalar que Fresco está disponible en Maven Central, como com.facebook.fresco:fresco .

Fresco ofrece características que Picasso, UIL y Glide aún no tienen:

  1. Las imágenes no se almacenan en el montón de Java, sino en el montón de ashmem. Los búferes de bytes intermedios también se almacenan en el montón nativo. Esto deja mucha más memoria disponible para que las aplicaciones la usen. Reduce el riesgo de OutOfMemoryErrors. También reduce la cantidad de aplicaciones de recolección de basura que tienen que hacer, lo que lleva a un mejor rendimiento.
  2. Las imágenes JPEG progresivas se pueden transmitir, al igual que en un navegador web.
  3. Las imágenes se pueden recortar en cualquier punto, no solo en el centro.
  4. Las imágenes JPEG se pueden cambiar de tamaño de forma nativa. Esto evita el problema de OOMing al intentar reducir el tamaño de una imagen.

Hay muchos otros ( ver nuestra documentación ), pero estos son los más importantes.

Ten en cuenta que esta es una pregunta muy basada en la opinión, así que dejé de hacer fiordos e hice una tabla rápida

enter image description here

Ahora la comparación de la biblioteca es difícil porque en muchos parámetros, los cuatro hacen prácticamente lo mismo, excepto posiblemente para Fresco porque hay un montón de nuevas optimizaciones de nivel de memoria. Así que avíseme si ciertos parámetros le gustaría ver una comparación según mi experiencia.

Habiendo usado al menos Fresco, la respuesta podría evolucionar a medida que continúo usándola y entendiéndola para los exploits actuales. El used personally es haber usado la biblioteca al menos una vez en una aplicación completa.

* Nota: Fresco ahora es compatible con GIF y con animaciones WebP

Estas respuestas son totalmente mi opinión

Respuestas

  1. Picasso es un cargador de imágenes fácil de usar, lo mismo vale para Imageloader. Fresco utiliza un enfoque diferente para la carga de imágenes, todavía no lo he usado, pero a mí me parece más una solución para obtener imágenes de la red y almacenarlas en caché y luego mostrar las imágenes. luego al revés, como Picasso / Imageloader / Glide, que para mí es más. Mostrar imagen en pantalla que también permite obtener imágenes de la red y almacenarlas en caché.

  2. Glide intenta ser intercambiable con Picasso. Creo que cuando se crearon, la mentalidad de Picasso fue seguir las especificaciones de HTTP y dejar que el servidor decida las políticas de caché y caché de tamaño completo y cambiar el tamaño a pedido. Glide es lo mismo que seguir las especificaciones HTTP, pero intenta tener una huella de memoria más pequeña al hacer algunas suposiciones diferentes, como almacenar en caché las imágenes redimensionadas en lugar de las imágenes de tamaño completo, y mostrar imágenes con RGB_565 en lugar de RGB_8888. Ambas bibliotecas ofrecen una personalización completa de la configuración predeterminada.

  3. En cuanto a qué biblioteca es la mejor para usar es realmente difícil de decir. Picasso, Glide y Imageloader son bibliotecas respetadas y bien probadas que son fáciles de usar con la configuración predeterminada. Tanto Picasso como Glide requieren solo 1 línea de código para cargar una imagen y tienen un marcador de posición e imagen de error. Personalizar el comportamiento tampoco requiere tanto trabajo. Lo mismo vale para Imageloader, que también es una biblioteca más antigua que Picasso y Glide, sin embargo, no la he usado, así que no puedo decir mucho sobre el rendimiento / uso de memoria / personalizaciones, pero al leer el archivo léame en github me da la impresión de que también relativamente fácil de usar y configurar. Así que al elegir cualquiera de estas 3 bibliotecas no puede tomar la decisión equivocada, es más una cuestión de gusto personal. Para el fresco, mi opinión es que es otra biblioteca de Facebook, así que tenemos que ver cómo va a funcionar para ellos, hasta ahora el historial no es tan bueno. Al igual que el facebook SDK todavía no se lanzó oficialmente en mavenCentral, no he usado Facebook SDK desde septiembre de 2014 y parece que han puesto la primera versión en línea en mavenCentral en octubre de 2014. Por lo tanto, pasará un tiempo antes de que podamos obtener cualquier buena opinión al respecto.

  4. entre las 3 bibliotecas de grandes nombres, creo que no hay diferencias significativas. El único que se destaca es el fresco, pero eso se debe a que tiene un enfoque diferente y es nuevo y no se ha probado en la batalla.

Fuentes de Fresco | Fuera del sitio
(-)
– Gran tamaño de la biblioteca
– Sin callback con parámetros View, Bitmap
– SimpleDraweeView no es compatible con wrap_content
– Gran tamaño de caché
(+)
– Cargador de imágenes bastante rápido (para imágenes pequeñas y medianas)
– Una gran cantidad de funcionalidades (transmisión, herramientas de dibujo, gestión de memoria, etc.)
– Posibilidad de configurar directamente en xml (por ejemplo, esquinas redondeadas)
– Soporte GIF
– Soporte WebP y Webp animado

Fuentes de Picasso | Fuera del sitio
(-)
– Carga lenta imágenes grandes desde Internet a ListView
(+)
– Tamaño pequeño de la biblioteca
– Tamaño pequeño de la memoria caché
– Simple en uso
– La IU no está congelada
– Soporte de WebP

Fuentes de deslizamiento

(-)
– Gran tamaño de la biblioteca
(+)
– Tamaño pequeño de la memoria caché
– Simple en uso
– Soporte GIF
– Soporte de WebP
– Carga rápida de imágenes grandes desde Internet a ListView
– La IU no está congelada
– BitmapPool para reutilizar la memoria y, por lo tanto, menos eventos de GC

Fuentes de Universal Image Loader

(-)
– Funcionalidad limitada (procesamiento de imagen limitado)
– El apoyo del proyecto se ha detenido desde el 27.11.2015
(+)
– Tamaño pequeño de la biblioteca
– Simple en uso


Probado por mí en SGS2 (Android 4.1) (WiFi 8.43 Mbps)
¡Versiones oficiales para Java, no para Xamarin!
19 de octubre de 2015

Prefiero usar Glide.
Lea más aquí .
Cómo escribir caché en el almacenamiento externo (tarjeta SD) con Glide.

Ni Glide ni Picasso son perfectos. La forma en que Glide carga una imagen en la memoria y hace el almacenamiento en caché es mejor que Picasso, que permite cargar una imagen mucho más rápido. Además, también ayuda a prevenir una aplicación del popular OutOfMemoryError. GIF La carga de animación es una función asesina proporcionada por Glide. De todos modos, Picasso decodifica una imagen con mejor calidad que Glide.

¿Cuál prefiero? Aunque utilizo Picasso durante tanto tiempo, debo admitir que ahora prefiero Glide. Pero le recomendaría cambiar el formato de bitmap a ARGB_8888 y dejar que Glide guarde en caché ambas imágenes de tamaño completo y cambie su tamaño primero. ¡El rest haría tu trabajo genial!

  • El conteo de métodos de Picasso y Glide está en 840 y 2678 respectivamente.
  • El tamaño de Picasso (v2.5.1) es de alrededor de 118 KB, mientras que el de Glide (v3.5.2) es de alrededor de 430 KB.
  • Glide crea imágenes en caché por tamaño, mientras que Picasso guarda la imagen completa y la procesa, por lo que al cargarla se muestra más rápido con Glide pero usa más memoria.
  • Glide usa menos memoria de manera predeterminada con RGB_565 .

+1 para Picasso Palette Helper .

Hay una publicación que habla mucho sobre Picasso vs Glide post

Quiero compartir con ustedes un punto de referencia que he hecho entre Picasso, Universal Image Loader y Glide : https://bit.ly/1kQs3QN

Fresco estaba fuera del índice de referencia porque para el proyecto que estaba ejecutando la prueba, no queríamos refaccionar nuestros diseños (debido a la vista de Drawee).

Lo que recomiendo es Universal Image Loader debido a su personalización, consumo de memoria y equilibrio entre tamaño y métodos.

Si tienes un proyecto pequeño, elegiría Glide (o probar Fresco).