web-dev-qa-db-de.com

Picasso vs. Imageloader vs. Fresco vs. Glide

Ergebnisse:

  1. Unterschied zwischen Picasso v/s ImageLoader hier ...
  2. Infos zur Bibliothek GLIDE hier ...
  3. Jetzt hat Facebook kürzlich eine neue Bildbibliothek namens Fresco veröffentlicht

Fragen:

  1. Was ist der Unterschied zwischen Picasso und Imageloader und Fresco?
  2. Wann können wir Glide verwenden?
  3. Welches ist die beste Bibliothek zu verwenden.
  4. Wenn jede Bibliothek ihre eigene Bedeutung hat, welche?
332
Devrath

Ich bin einer der Ingenieure im Fresco-Projekt. Also bin ich offensichtlich voreingenommen.

Aber du musst mein Wort nicht dafür nehmen. Wir haben eine Beispiel-App veröffentlicht, mit der Sie die Leistung von fünf Bibliotheken - Fresco, Picasso, UIL, Glide und Volley Image Loader - nebeneinander vergleichen können. Sie können es bei nser GitHub-Repo bekommen.

Ich sollte auch darauf hinweisen, dass Fresco auf Maven Central als com.facebook.fresco:fresco verfügbar ist.

Fresco bietet Funktionen, die Picasso, UIL und Glide noch nicht bieten:

  1. Bilder werden nicht im Java-Heap gespeichert, sondern im Ashmem-Heap. Zwischenbytepuffer werden ebenfalls im nativen Heap gespeichert. Dadurch bleibt viel mehr Speicher für Anwendungen verfügbar. Es reduziert das Risiko von OutOfMemoryErrors. Es reduziert auch die Menge an Speicherbereinigungs-Apps, was zu einer besseren Leistung führt.
  2. Progressive JPEG-Bilder können wie in einem Webbrowser gestreamt werden.
  3. Bilder können nicht nur in der Mitte, sondern an jedem Punkt beschnitten werden.
  4. JPEG-Bilder können nativ in der Größe geändert werden. Dies vermeidet das Problem des OOMs beim Verkleinern eines Bildes.

Es gibt viele andere ( siehe unsere Dokumentation ), aber diese sind die wichtigsten.

187
tyronen

Wohlgemerkt, dass dies eine sehr meinungsbasierte Frage ist, also habe ich aufgehört, Fjorde zu machen und einen schnellen Tisch gemacht

enter image description here

Der Bibliotheksvergleich ist schwierig, da bei vielen Parametern fast alle vier dasselbe tun, außer möglicherweise bei Fresco, da es eine ganze Reihe neuer Optimierungen für die Speicherebene gibt. Lassen Sie mich wissen, ob Sie bestimmte Parameter möchten Einen Vergleich finden Sie aufgrund meiner Erfahrung.

Wenn ich Fresco am wenigsten benutzt habe, könnte sich die Antwort ändern, wenn ich es weiterhin für aktuelle Exploits verwende und verstehe. Der used personally hat die Bibliothek mindestens einmal in einer abgeschlossenen App verwendet.

* Hinweis - Fresco unterstützt jetzt sowohl GIF- als auch WebP-Animationen

130
Slartibartfast

Diese Antworten sind absolut meine Meinung

Antworten

  1. Picasso ist ein einfach zu bedienender Image Loader, genauso wie Imageloader. Fresco verwendet einen anderen Ansatz zum Laden von Bildern. Ich habe ihn noch nicht verwendet, aber ich sehe eher wie eine Lösung aus, um Bilder aus dem Netzwerk zu holen und zwischenzuspeichern und dann die Bilder anzuzeigen. dann umgekehrt wie Picasso/Imageloader/Glide, die für mich mehr sind. Zeigen von Bildern auf dem Bildschirm, die auch Bilder aus dem Netzwerk abrufen und sie zwischenspeichern.

  2. Glide versucht, mit Picasso einigermaßen austauschbar zu sein. Ich denke, als sie erstellt wurden, war Picassos Denkweise den HTTP-Spezifikationen zu folgen und ließ den Server die Caching-Richtlinien festlegen und die Größe und Größe bei Bedarf ändern. Glide ist mit der HTTP-Spezifikation identisch, versucht jedoch, den Speicherbedarf zu verringern, indem andere Annahmen getroffen werden, z. B. das Zwischenspeichern der Bilder mit geänderter Größe anstelle der Bilder mit voller Größe und das Anzeigen von Bildern mit RGB_565 anstelle von RGB_8888. Beide Bibliotheken bieten eine vollständige Anpassung der Standardeinstellungen.

  3. Welche Bibliothek am besten zu benutzen ist, ist wirklich schwer zu sagen. Picasso, Glide und Imageloader sind angesehene und getestete Bibliotheken, die alle mit den Standardeinstellungen einfach zu verwenden sind. Sowohl Picasso als auch Glide benötigen nur eine Codezeile, um ein Bild zu laden und einen Platzhalter und ein Fehlerbild zu haben. Das Anpassen des Verhaltens erfordert auch nicht viel Arbeit. Gleiches gilt für Imageloader, das ebenfalls eine ältere Bibliothek als Picasso und Glide ist. Ich habe es jedoch noch nicht verwendet, kann also nicht viel über Leistung/Speichernutzung/Anpassungen sagen, aber wenn ich mir die Readme-Datei auf Github ansehe, habe ich den Eindruck, dass es auch so ist relativ einfach zu bedienen und einzurichten. Wenn Sie sich für eine dieser 3 Bibliotheken entscheiden, können Sie keine falsche Entscheidung treffen, es ist eher eine Frage des persönlichen Geschmacks. Für Fresko ist meine Meinung, dass es eine andere Facebook-Bibliothek ist, also müssen wir sehen, wie sich das für sie auswirkt. Bisher ist die Erfolgsbilanz dort nicht so gut. Wie das Facebook SDK ist noch nicht offiziell auf mavenCentral veröffentlicht Ich habe Facebook SDK seit September 2014 nicht mehr benutzt und es scheint, dass sie die erste Version im Oktober 2014 auf mavenCentral online gestellt haben. Es wird also einige Zeit dauern, bis wir eine gute Meinung dazu haben.

  4. ich denke, zwischen den drei großen Bibliotheken gibt es keine signifikanten Unterschiede. Das einzige, was auffällt, ist das Fresko, aber das liegt daran, dass es einen anderen Ansatz hat und neu und nicht kampferprobt ist.

108
Aegis

Fresko Quellen | off site
(-)
- Riesige Größe der Bibliothek
- Kein Rückruf mit Ansicht, Bitmap-Parameter
- SimpleDraweeView unterstützt keine wrap_content
- Sehr großer Cache
(+)
- Ziemlich schneller Bildlader (für kleine und mittlere Bilder)
- Viele Funktionen (Streaming, Zeichenwerkzeuge, Speicherverwaltung usw.)
- Möglichkeit direkt in xml einzurichten (zB runde Ecken)
- GIF-Unterstützung
- Unterstützung von WebP und animiertem WebP


Picasso sources | off site
(-)
- Langsames Laden großer Bilder aus dem Internet in ListView
(+)
- Kleine Bibliothek
- Kleine Cache-Größe
- Einfach in der Anwendung
- UI ist nicht eingefroren
- WebP-Unterstützung


Glide sources

(-)
- Große Bibliothek
(+)
- Kleine Cache-Größe
- Einfach in der Anwendung
- GIF-Unterstützung
- WebP-Unterstützung
- Schnelles Laden großer Bilder aus dem Internet in ListView
- UI ist nicht eingefroren
- BitmapPool zur Wiederverwendung des Speichers und damit geringerer GC-Ereignisse


Universal Image Loader sources

(-)
- Eingeschränkte Funktionalität (eingeschränkte Bildverarbeitung)
- Die Projektunterstützung wurde seit dem 27.11.2015 eingestellt
(+)
- Kleine Bibliothek
- Einfach in der Anwendung


Von mir getestet auf SGS2 (Android 4.1) (WiFi 8.43 Mbps)
Offizielle Versionen für Java, nicht für Xamarin!
19. Oktober 2015

Ich bevorzuge Glide.
Lesen Sie mehr hier .
Wie schreibe ich Cache auf externen Speicher (SD-Karte) mit Glide.

104
Volodymyr Kulyk

Weder Glide noch Picasso sind perfekt. Die Art und Weise, wie Glide ein Bild in den Speicher lädt und die Zwischenspeicherung durchführt, ist besser als bei Picasso, bei dem ein Bild viel schneller geladen wird. Darüber hinaus wird verhindert, dass eine App vom beliebten OutOfMemoryError betroffen ist. Das Laden von GIF-Animationen ist eine Kill-Funktion von Glide. Wie auch immer, Picasso decodiert ein Bild mit besserer Qualität als Glide.

Welches bevorzuge ich? Obwohl ich Picasso so lange benutze, muss ich zugeben, dass ich jetzt Glide bevorzuge. Ich würde Ihnen jedoch empfehlen, das Bitmap-Format in ARGB_8888 zu ändern und Glide das Bild in voller Größe zwischenspeichern und die Größe zuerst ändern zu lassen. Der Rest würde deine Arbeit großartig machen!

  • Die Methodenanzahl von Picasso und Glide liegt bei 840 bzw. 2678.
  • Picasso (v2.5.1) ist ungefähr 118 KB groß, während Glide (v3.5.2) ungefähr 430 KB groß ist.
  • Glide erstellt zwischengespeicherte Bilder pro Größe, während Picasso das gesamte Bild speichert und verarbeitet, sodass es beim Laden mit Glide schneller angezeigt wird, jedoch mehr Speicherplatz benötigt.
  • Verwenden Sie mit RGB_565 standardmäßig weniger Speicher.

+1 Für Picasso Palettenhilfe .

Es gibt einen Beitrag, in dem viel über Picasso vs Glide gesprochen wird Beitrag

62

Ich möchte mit Ihnen einen Benchmark teilen, den ich unter Picasso, Universal Image Loader und Glide durchgeführt habe: https: //bit.ly/1kQs3QN

Fresco war außerhalb der Benchmark, weil wir für das Projekt, für das ich den Test durchführte, unsere Layouts nicht überarbeiten wollten (wegen der Drawee-Ansicht).

Was ich empfehle, ist Universal Image Loader wegen seiner Anpassung, Speicherverbrauch und Balance zwischen Größe und Methoden.

Wenn Sie ein kleines Projekt haben, würde ich mich für Glide entscheiden (oder es mit Fresco versuchen).

18
shollmann