2016-07-11 31 views
0

Wenn ich ein Projekt mit vielen Bibliotheksprojekten verbunden habe, könnte ich die Leistung verbessern, indem ich jedes einzelne in einem AAR verpacke und es in das Hauptprojekt mit einbeziehe? Oder das wird keinen Unterschied machen, da der Compiler, wenn er die Apk zusammenstellen muss, alles zusammenpacken muss?aar vs "plain modul" Vorteile

Dank jedem, der mir einige clarifcation über Leistungsunterschiede zwischen den zwei Ansatz

Antwort

0

ich Ihnen Akkumulationen Zeit sparen nicht denken geben eine vorhandene .jar-Datei in eine Datei .aar durch Umwickeln und Verwendung das anstelle der ursprünglichen .jar-Datei.

Als this SO post notes, .aar-Dateien sind im Grunde nur Zip-Dateien, die eine JAR-Datei und einige Android-Ressourcen enthalten können.

Da .aar-Dateien auch nicht in Dalvik-Bytecode vorkompiliert werden, muss der Buildprozess für Ihre apk-Datei diesen Schritt mindestens einmal ausführen. Sie sparen also keine Dexing-Zeit, indem Sie die .jar-Datei in eine .aar-Datei einfügen.

Wenn Sie ein typisches Android Studio-Projekt erstellen (mit einigen Abhängigkeiten der Android-Bibliothek in der Gradle-Build-Datei), können Sie das Verzeichnis unter app/build/intermediates/exploded-aar sehen, wo diese Dateien entpackt wurden. Diese Arbeit muss weiterhin von Ihrer Build-Maschine ausgeführt werden, auch wenn Sie eine .aar-Datei verwenden.

Schließlich, wie Sie hingewiesen haben, müssen die .apk-Packaging-Arbeit noch am Ende des Build getan werden.