596 Stimmen

Vergleich von Android-Netzwerkbibliotheken: OkHTTP, Retrofit und Volley

Zweiteilige Frage von einem iOS-Entwickler, der Android lernt und an einem Android-Projekt arbeitet, das eine Vielzahl von Anfragen von JSON bis Bild bis Streaming-Download von Audio und Video durchführen wird:

  1. Auf iOS habe ich das AFNetworking-Projekt umfangreich verwendet. Gibt es eine äquivalente Bibliothek für Android?

  2. Ich habe mich über OkHTTP und Retrofit von Square sowie Volley informiert, habe jedoch noch keine Erfahrung mit der Entwicklung damit. Ich hoffe, dass jemand konkrete Beispiele für die besten Anwendungsfälle für jede dieser Bibliotheken geben kann. Aus dem, was ich gelesen habe, scheint OkHTTP die robusteste der drei zu sein und könnte die Anforderungen dieses Projekts (oben erwähnt) erfüllen.

9voto

Tiago Gaspar Punkte 253

Ich habe kürzlich eine Bibliothek namens ion gefunden, die einen kleinen Mehrwert bietet.

ion hat eine integrierte Unterstützung für den Bild-Download mit ImageView, JSON (mit Hilfe von GSON), Dateien und eine sehr praktische UI-Thread-Unterstützung.

Ich verwende es in einem neuen Projekt und bisher sind die Ergebnisse gut. Die Verwendung ist viel einfacher als bei Volley oder Retrofit.

4voto

upenpat Punkte 685

Zusätzlich zur akzeptierten Antwort und dem, was LOG_TAG gesagt hat.... um Volley zu ermöglichen, Ihre Daten in einem Hintergrundthread zu parsen, müssen Sie Request als Unterklassen verwenden, da die Methode onResponse im Hauptthread aufgerufen wird und das Parsen im Hauptthread dazu führen kann, dass die UI verzögert wird, wenn Ihre Antwort groß ist. Lesen Sie hier, wie Sie das machen können: hier.

3voto

Asthme Punkte 4991

Retrofit 1.9.0 vs. RoboSpice

Ich benutze beide in meiner App.

Robospice funktioniert schneller als Retrofit, immer wenn ich die verschachtelte JSON-Klasse parsen muss. Denn der Spice Manager erledigt alles für dich. Bei Retrofit musst du einen GsonConverter erstellen und es deserialisieren.

Ich habe zwei Fragmente in der gleichen Aktivität erstellt und zur gleichen Zeit mit zwei gleichen Arten von URLs aufgerufen.

09-23 20:12:32.830  16002-16002/com.urbanpro.seeker E/RETROFIT   RestAdapter Init
09-23 20:12:32.833  16002-16002/com.urbanpro.seeker E/RETROFIT Aufruf der Methode
09-23 20:12:32.837  16002-16002/com.urbanpro.seeker E/ROBOSPICE Initialisiere Spice Manager
09-23 20:12:32.860  16002-16002/com.urbanpro.seeker E/ROBOSPICE Ausführen der Methode
09-23 20:12:33.537  16002-16002/com.urbanpro.seeker E/ROBOSPICE Erfolgreich
09-23 20:12:33.553  16002-16002/com.urbanpro.seeker E/ROBOSPICE Abrufen aller Inhalte
09-23 20:12:33.601  16002-21819/com.urbanpro.seeker E/RETROFIT Deserialisierung beginnt
09-23 20:12:33.603  16002-21819/com.urbanpro.seeker E/RETROFIT Deserialisierung endet

2voto

kalin Punkte 3488

Und doch eine weitere Option: https://github.com/apptik/jus

  • Es ist modular wie Volley, aber umfangreicher und die Dokumentation verbessert sich, unterstützt verschiedene HTTP-Stacks und Konverter von Anfang an
  • Es hat ein Modul zur Generierung von Server-API-Schnittstellenzuordnungen wie Retrofit
  • Es hat auch JavaRx-Unterstützung

Und viele andere praktische Funktionen wie Marker, Transformer usw.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X