So importieren Sie ** einige ** Teile der Guava-Bibliothek in Android-App (Gradle)

8

Wie jeder Android-Entwickler wissen sollte, gibt es ein 65k-Methodenlimit für Ihre apk (weil die VM nur 16 Bit für die Methodenbehandlung hat). Es sollte ziemlich schwer zu erreichen sein, aber es ist einfach, sobald Sie beginnen, einige Bibliotheken hinzuzufügen.

Seit letztem Jahr können Sie dies beheben, indem Sie MultiDex unter Android 5.0 und höher aktivieren (und eine Support-Bibliothek für frühere Android-Versionen hinzufügen). Selbst wenn dies möglich ist, ist es immer besser, die Methodenanzahl zu reduzieren und eine kleinere API zu erhalten (und die Leistung sollte besser sein, oder?).

Zu einem bestimmten Zeitpunkt stellten die Android-Leute fest, dass die Größe ihrer Google Play Services-Bibliothek unerschwinglich war (20k-Methoden) und sie die großartige Entscheidung getroffen haben, in verschiedene Module aufzuteilen die Teile, die du brauchst (mit Note):

%Vor%

Weißt du, ob es möglich ist, so etwas mit der Guava-Bibliothek zu machen? Es sind ungefähr 15.000 Methoden, also wird es sehr hilfreich sein. Ich möchte nur einen kleinen Teil von Guava verwenden, also brauche ich den anderen nicht. Ich habe in der Dokumentation gesucht und gegoogelt, aber nichts gefunden.

%Vor%

Jemand hat vor zwei Jahren etwas Ähnliches gefragt, wahrscheinlich für ein Java-Projekt, aber dann gab es keine kleineren Guava-Teile. Herunterladen eines Teils der Guava-Bibliotheken

Das einzige, was mir in den Sinn kommt, ist, nur die benötigten Guava-Klassen zu kopieren, anstatt die Bibliothek zu laden, aber ich denke, das ist eine schreckliche Lösung.

Glauben Sie nicht, dass eine große Bibliothek ein Modul-Splitting-System wie bei Play Services verwenden sollte?

BEARBEITEN : Außerdem dauert die multidex-Aufgabe zu lange (eineinhalb Minuten vorher weniger als 15 Sekunden), also muss ich jedes Mal warten, wenn ich die App starten will. Auch wenn Proguard eine großartige Lösung für eine Produktionsversion ist, ist es nicht für die Entwicklung geeignet, da es länger dauert als Multidexing.

    
Ender Muab'Dib 13.11.2015, 10:04
quelle

1 Antwort

1

Die Verbesserung von Guava für Android läuft noch, Es wird keine Aufteilung in kleinere Module geplant . Wie bereits erwähnt, können Sie mit ProGuard die Teile von Guava ausschließen, die Sie nicht in Ihrem endgültigen Build verwenden.

>     
dimo414 22.11.2017 09:25
quelle

Tags und Links