2016-05-11 9 views
5

Ich arbeite an einem Android-Bibliotheksprojekt und möchte Picasso zu meiner Bibliothek hinzufügen. Ich habe bemerkt, dass unterschiedliche Bibliotheken unterschiedliche Ansätze, dies zu tun:Bibliotheksabhängigkeiten von Drittanbietern zur Android-Bibliothek hinzufügen

  • Einige Bibliotheken verwenden statische Bibliothek Abhängigkeit (wie gif_encoder und gif_decoder Bibliotheken in Glide lib)
  • Einige Bibliotheken verwenden übliche dynamische gradle oder pom Abhängigkeiten (wie Picasso verwendet OKHttp oder Wire verwendet Retrofit und RxJava). Ich meine nicht, dynamische Versionen hier mit + Zeichen gekennzeichnet (wie 2.3.3+)
  • Einige Bibliotheken erfordern die explizite Abhängigkeit von einem gewissen lib zusammen mit der Zielbibliothek hinzufügen (wie RxAndroid verwendet RxJava)

So Die Frage: Was ist der beste Weg, Bibliotheken von Drittanbietern zum Android-Bibliotheksprojekt hinzuzufügen? Ich meine den Weg, der den Bibliotheksintegrationsprozess für den Endbenutzer vereinfachen und Versionskonflikte und andere mögliche Probleme vermeiden würde. Was sind die Vor- und Nachteile eines bestimmten Ansatzes?

+0

Aus meiner Sicht, und fügte hinzu, die Abhängigkeiten in der Bibliothek Modul gradle ist der beste Ansatz: durch die Verwendung

Sie können auch Ihre externen JAR-Dateien auf Gradle direkt kompilieren. Auf diese Weise machen Sie den Endnutzer transparent, was Sie zur Erfüllung seines Zwecks benötigen. Wenn Sie den Benutzer dazu veranlassen, Ihre Abhängigkeiten zusammen zu importieren, erhöhen Sie die Komplexität beim Importieren Ihrer Bibliothek und sogar Fehler, falls der Benutzer sie nicht importiert. Wenn der Benutzer jedoch eine andere Version der Bibliothek verwendet, die das Modul verwendet, können Konflikte zwischen den beiden auftreten, so dass der Benutzer sie in der Gradle-Datei lösen muss. –

Antwort

2

Die meiste Zeit haben Sie nicht wirklich die Wahl, Sie müssen die Installationsempfehlungen für die Bibliothek befolgen.

Wenn alle Optionen verfügbar sind, denke ich IMHO, dass es mit Gradle oder Maven viel einfacher ist, da das einzige, was Sie tun müssen, in der Regel eine Zeile in Ihre Konfigurationsdatei zum Einrichten einer neuen Bibliothek hinzufügen.

Wenn ein Update verfügbar ist, ändern Sie die Version und das System wird automatisch die Bibliothek für Sie herunterladen und aktualisieren.

Wenn Sie statische Bibliotheken verwenden müssen, müssen Sie alle selbst einrichten und die externe Bibliothek mit Ihrem Projekt verknüpfen. Jetzt behalte ich nur statische Bibliotheken, wenn ich etwas Code darin anpassen muss.

Ich bin kein Experte auf diesem Gebiet, aber seit ich in Android Studio migriert habe, hat Gradle mir eine Menge Zeit gespart (ich habe vorher Eclipse ADT benutzt und es nie geschafft, Gradle darauf zu integrieren).

compile fileTree(dir: 'libs', include: ['*.jar'])