Geschwindigkeit bis gradle build im multidex Anwendung
Meine Anwendung hat eine Reihe von Bibliotheken, die wesentlich sind, dass ist der Grund, warum ich gezwungen war, zu verwenden multidex-support-library und es funktioniert gut. Aber wo das problem zeigt, ist in der gradle Körperbau Geschwindigkeit. Es dauert im Durchschnitt 2minutes zu bauen und wenn ich die Entwicklung und Erprobung dieses ist ziemlich ärgerlich.
Gibt es eine Möglichkeit, die Geschwindigkeit meiner debug-builds?
- Kaufen Sie mehr Arbeitsspeicher - 16 GB mindestens. Ich hatte 8 GB und nach dem Upgrade auf 16 GB build-Zeit verringert sich von 60 auf 30 Sek.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie beschleunigen Ihre Entwicklung baut durch die Angabe der Mindest-SDK-version = 21.
Die offizielle Dokumentation enthält eine ganze Abschnitt darüber.
Beispiel (aus der Dokumentation):
Sobald Sie das Produkt Aromen, die Sie verwenden können, die
devDebug
Aufgabe (anstelle der Standard -debug
Aufgabe) für Ihre Entwicklung baut:- von der Kommandozeile aus: führen Sie
./gradlew installDevDebug
- von Android Studio: der open Build-Varianten Fenster und wählen Sie die
devDebug
build-Variante.Sollten Sie, natürlich, die Arbeit gegen ein Gerät, dessen SDK >= 21.
Gibt es auch eine Lösung für diejenigen, die nicht verwenden möchten, Aromen. Wie bereits in diese gist, dynamisch berechnen Sie die
minSdkVersion
Wert:In diesem Beispiel, wir prüfen, ob
devMinSdk
Eigenschaft definiert, und wenn es true ist - nutzen wir es. Ansonsten wir Standard-bis zum 14.Wie geben wir
devMinSdk
Wert auf build-Skript? Zwei Optionen:Mithilfe der Anwendung command line:
Mit Android Studio Vorlieben:
Gehen Vorlieben (Einstellungen unter Windows) -> Bauen, Ausführung, Bereitstellung -> Compiler -> setzen
-PdevMinSdk=21
im Kommandozeilen-Optionen Textfeld.use the devDebug task for your development builds
? Wie kann ich es nutzen für meine Entwicklung baut?Kürzlich cache wurde von team arbeitet auf Android-Gradle-plugin. Sie können es durch hinzufügen
android.enableBuildCache=true
zugradle.properties
.Mehr info hier
http://tools.android.com/tech-docs/build-cache
Es für mich erhöht inkrementellen build-Zeiten von ~30 Sekunden.
Funktioniert es nicht mit älteren multidex (
com.android.support:multidex
) eingeführt, die als Teil der support-Bibliothek, so ist es nur geeignet, wenn Ihr minSDK >= 21. Sie können es nur für Ihre Entwicklung baut und do-release-builds mit minSDK < 21.Funktioniert es auch ohne multidexing aktiviert.
Android Studio 1.3 (derzeit in der Vorschau 3) ist ein neues build-system, die verbessert gradle build-Zeit (wirklich, wie 10-30x schneller).
Mehr Informationen in der Live-Sitzung bei Google I/O 2015
classpath 'com.android.tools.build:gradle:1.3.0-beta4'
zu versuchen @ValerioSantinelliMultidexing verwendet mehr Speicher. Als Sie näher an Ihre max-heap-Größe in Java finden Sie Java verbringt mehr Zeit damit, GC, als es dabei keine wirkliche Arbeit, kann dies die Dinge verlangsamen viel.
Würde ich dringend empfehlen, die Erhöhung der max-heap-Größe bei Verwendung multidex. Fügen Sie den folgenden, um die android-Schließung in deinem build.gradle-Datei um die max-heap-Größe 4GB (kleiner Machen, wenn Sie möchten):
Ändern MinSdk auf 21 gemacht, alles wieder normal für mich.Nun alles kompiliert, wie in 6s
Diese nicht mehr benötigt mit der neuesten Android Studio 3.0
Gehen Sie in Einstellungen , Suche-compiler , geben Sie "--offline" in den Optionen für die Befehlszeile und als kompilieren.