Picasso v / s ImageLoader v / s Fresko gegen Gleiten

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 v / s Imageloader v / s Fresko
  2. Wann können wir Glide verwenden?
  3. Welches ist die beste zu verwendende Bibliothek?
  4. Wenn jede Bibliothek ihre eigene Bedeutung hat, was sind sie?

   

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

    Aber du musst mein Wort nicht dafür nehmen. Wir haben eine Beispielanwendung veröffentlicht, mit der Sie die performance von fünf Bibliotheken – Fresco, Picasso, UIL, Glide und Volley Image Loader – nebeneinander vergleichen können. Sie können es in unserem GitHub Repo bekommen .

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

    Fresco bietet functionen, die Picasso, UIL und Glide noch nicht haben:

    1. Bilder werden nicht im Java-Heap, sondern im Ashmem-Heap gespeichert. Zwischenbytepuffer werden ebenfalls im nativen Heap gespeichert. Dadurch bleibt viel mehr Speicherplatz für Anwendungen verfügbar. Es reduziert das Risiko von OutOfMemoryErrors. Es reduziert auch die Anzahl der Garbage-Collection-Apps, was zu einer besseren Performance führt.
    2. Progressive JPEG-Bilder können wie in einem Webbrowser gestreamt werden.
    3. Bilder können um jeden Punkt herum zugeschnitten werden, nicht nur in der Mitte.
    4. JPEG-Bilder können nativ angepasst werden. Dies vermeidet das Problem des OOMing beim Versuch, ein Bild zu verkleinern.

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

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

    Bildbeschreibung hier eingeben

    Jetzt ist der Bibliotheksvergleich schwierig, weil bei vielen Parametern alle vier ziemlich genau dasselbe tun, außer vielleicht für Fresco, weil es eine ganze Reihe neuer Speicherlevel-Optimierungen gibt. Lassen Sie mich wissen, ob bestimmte Parameter Sie möchten Sehen Sie einen Vergleich für basierend auf meiner Erfahrung.

    Nachdem ich Fresco am wenigsten verwendet habe, könnte sich die Antwort weiterentwickeln, wenn ich sie weiterhin für aktuelle Exploits nutze und verstehe. Der used personally Nutzer nutzt die Bibliothek zumindest einmal in einer fertigen App.

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

    Diese Antworten sind absolut meine Meinung

    Antworten

    1. Picasso ist ein einfach zu benutzender Bildlader, genauso wie der Imageloader. Fresco verwendet einen anderen Ansatz zum Laden von Bildern, ich habe es noch nicht benutzt, aber es sieht für mich eher nach einer Lösung aus, um Bilder aus dem Netzwerk zu holen und sie zu cachen und dann die Bilder zu zeigen. dann umgekehrt wie Picasso / Imageloader / Glide, die für mich mehr anzeigen Bild auf dem Bildschirm, die auch Bilder aus dem Netzwerk bekommen und zwischenspeichern.

    2. Glide versucht, mit Picasso leicht austauschbar zu sein. Ich glaube, als Picassos Mindset erstellt wurde, folgte man den HTTP-Spezifikationen und ließ den Server die Caching-Policies bestimmen und die Größe und Größe bei Bedarf zwischenspeichern. Glide ist das gleiche wie bei der HTTP-Spezifikation, versucht jedoch, einen kleineren Speicherbedarf zu haben, indem verschiedene Annahmen gemacht werden, wie zum Beispiel das Speichern der skalierten Bilder anstelle der Vollbilder und das Anzeigen von Bildern mit RGB_565 anstelle von RGB_8888. Beide Bibliotheken bieten vollständige Anpassung der Standardeinstellungen.

    3. Welche Bibliothek am besten zu verwenden ist, ist wirklich schwer zu sagen. Picasso, Glide und Imageloader sind anerkannte und gut getestete Bibliotheken, die mit den Standardeinstellungen einfach zu bedienen sind. Sowohl Picasso als auch Glide benötigen nur eine Zeile Code, um ein Bild zu laden und haben ein Platzhalter- und Fehlerbild. Die Anpassung des Verhaltens erfordert auch nicht viel Arbeit. Gleiches gilt für Imageloader, das ist auch eine ältere Bibliothek als Picasso und Glide, aber ich habe es nicht benutzt, kann also nicht viel über Performance / Speicherverbrauch / Anpassungen sagen, aber wenn ich mir die Readme von github anschaue, erweckt das den Eindruck relativ einfach zu bedienen und einzurichten. Wenn Sie also eine dieser 3 Bibliotheken auswählen, können Sie nicht die falsche Entscheidung treffen, es ist eher eine Frage des persönlichen Geschmacks. Für Fresco ist meine Meinung, dass es eine andere Facebook-Bibliothek ist, also müssen wir sehen, wie das für sie funktionieren wird, soweit ist die Erfolgsbilanz nicht so gut. Wie das facebook SDK ist noch nicht offiziell auf mavenCentral Ich habe nicht gewohnt, Facebook sdk seit September 2014 und es scheint, sie haben die erste Version online auf mavenCentral im Oktober 2014. So wird es einige Zeit dauern, bevor wir irgendwelche bekommen können gute Meinung dazu.

    4. zwischen den 3 großen Namensbibliotheken finde ich keine signifikanten Unterschiede. Der einzige, der herausragt, ist Fresco, aber das ist, weil es einen anderen Ansatz hat und neu und nicht kampferprobt ist.

    Freskoquellen | außerhalb der Baustelle
    (-)
    – Riesige Bibliotheksgröße
    – Kein callback mit Ansicht, Bitmap-Parameter
    – SimpleDraweeView unterstützt wrap_content nicht
    – Riesige Cache-Größe
    (+)
    – Pretty Fast Image Loader (für kleine und mittlere Bilder)
    – Viele functionen (Streaming, Zeichenwerkzeuge, Speicherverwaltung usw.)
    – Möglichkeit, direkt in XML einzurichten (zum Beispiel runde Ecken)
    – GIF-Unterstützung
    – WebP und animierte Webp-Unterstützung

    Picasso Quellen | außerhalb der Baustelle
    (-)
    – Laden Sie langsam große Bilder aus dem Internet in ListView
    (+)
    – Tiny Größe der Bibliothek
    – Kleine Größe des Caches
    – Einfach im Gebrauch
    – Die Benutzeroberfläche wird nicht eingefroren
    – WebP-Unterstützung

    Gleiten Quellen

    (-)
    – Große Größe der Bibliothek
    (+)
    – Kleine Größe des Caches
    – Einfach im Gebrauch
    – GIF-Unterstützung
    – WebP-Unterstützung
    – Schnelles Laden großer Bilder aus dem Internet in ListView
    – Die Benutzeroberfläche wird nicht eingefroren
    – BitmapPool, um Speicher und damit kleinere GC-Ereignisse wiederzuverwenden

    Universal Image Loader- Quellen

    (-)
    – Begrenzte functionalität (begrenzte Bildverarbeitung)
    – Die Projektunterstützung wurde seit dem 27.11.2015 eingestellt
    (+)
    – Tiny Größe der Bibliothek
    – Einfach im Gebrauch


    Getestet von mir 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 hier mehr.
    Wie schreibe ich Cache auf externen Speicher (SD-Karte) mit Glide.

    Weder Glide noch Picasso sind perfekt. Die Art wie Glide ein Bild in den Speicher lädt und das Zwischenspeichern ist besser als Picasso, wodurch ein Bild viel schneller geladen wird. Darüber hinaus hilft es auch, eine App vor dem populären OutOfMemoryError zu schützen. Das Laden von GIF-Animationen ist eine von Glide bereitgestellte Tötungsfunktion. Jedenfalls dekodiert Picasso ein Bild mit besserer Qualität als Glide.

    Welche bevorzuge ich? Obwohl ich Picasso so lange benutze, muss ich zugeben, dass ich jetzt Glide bevorzuge. Aber ich würde Ihnen empfehlen, das Bitmap-Format auf ARGB_8888 zu ändern und Glide sowohl das Bild in voller Größe als auch das Bild in der Größe zwischenzuspeichern. Der Rest würde deinen Job großartig machen!

    • Methodenzahl von Picasso und Glide sind bei 840 und 2678 beziehungsweise.
    • Die Größe von Picasso (v2.5.1) liegt bei 118KB, während Glide (v3.5.2) bei etwa 430KB liegt.
    • 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, aber mehr Speicherplatz benötigt.
    • Glide verwenden standardmäßig weniger Speicher mit RGB_565 .

    +1 Für Picasso Palettenhelfer .

    Es gibt einen Beitrag, der viel über Picasso vs Glide Post spricht

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

    Fresco war außerhalb des Benchmarks, weil ich für das Projekt, an dem ich den Test durchführte, unsere Layouts nicht umgestalten 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 für Glide gehen (oder Fresco versuchen).