Beschleunigen Sie den Gradle-Build in Android Studio 3.2.1
Fühlen Sie sich auch manchmal wie Minuten lang auf die Builds in Android Studio warten zu müssen? Mir geht es genauso. Und das ist ziemlich nervig. Glücklicherweise gibt es ein paar Möglichkeiten, wie Sie dies verbessern können. Android verwendet Gradle für den Build. Die neueste Version 4.6 bietet einen enormen Leistungsschub gegenüber früheren Versionen (siehe Versionshinweise für Details).
Schritt 1: Gradle-Version aktualisieren Ein einfacherer Weg, dies zu erreichen, ist: Gehen Sie zu: Moduleinstellungen öffnen (Ihr Projekt) > Projektstruktur
![Bildbeschreibung eingeben]()
UPDATE
Wechseln Sie zu Gradle-Version: 4.6 und Wechseln Sie zu Android-Plugin-Version: 3.2.1
![Bildbeschreibung eingeben]()
Laden Sie die Gradle-Release-Verteilung von https://services.gradle.org/distributions/gradle-4.6-all.zip herunter Und kopieren Sie sie in den Gradle-Ordner:
![Bildbeschreibung eingeben]()
Der letzte Schritt besteht darin, Ihre Verteilung in Einstellungen > Gradle hinzuzufügen
![Bildbeschreibung eingeben]()
Vergessen Sie nicht, auf Übernehmen zu klicken, um Änderungen zu speichern.
Schritt 2: Offline-Modus, Gradle-Daemon und parallelen Build für das Projekt aktivieren Im Offline-Modus ignoriert Gradle Update-Checks. Gradle fragt jedes Mal nach Abhängigkeiten und mit dieser Option verwendet er nur das, was bereits auf dem Rechner für Abhängigkeiten vorhanden ist. Gehen Sie zu Gradle von Android Studio Einstellungen und klicken Sie im Offline-Arbeitsfeld.
![Bildbeschreibung eingeben]()
- Gehen Sie zu Compiler von Android Studio Einstellungen und fügen Sie "— offline" im Befehlszeilen-Feld hinzu und klicken Sie auf Unabhängige Module parallel kompilieren.
![Bildbeschreibung eingeben]()
Der nächste Schritt besteht darin, den Gradle-Daemon und den parallelen Build für Ihr Projekt zu aktivieren. Parallele Builds führen dazu, dass Ihre Projekte mit mehreren Modulen (Mehrprojekt-Builds in Gradle) parallel erstellt werden, was große oder modulare Projekte schneller erstellen sollte.
![Bildbeschreibung eingeben]()
Diese Einstellungen können durch Bearbeiten einer Datei mit dem Namen gradle.properties im Gradle-Skriptverzeichnis aktiviert werden (z. B. ~/.gradle/gradle.properties). Einige dieser Optionen (z. B. Module parallel kompilieren) sind auch in Android Studio verfügbar und dort standardmäßig aktiviert, jedoch werden sie durch Hinzufügen in die gradle.properties-Datei beim Build vom Terminal aus aktiviert und sicherstellen, dass Ihre Kollegen die gleichen Einstellungen verwenden. Aber wenn Sie im Team arbeiten, können Sie manchmal diese Einstellungen nicht übernehmen.
# Wenn konfiguriert, wird Gradle im inkubierenden Parallelmodus ausgeführt.
# Diese Option sollte nur bei entkoppelten Projekten verwendet werden. Weitere Informationen finden Sie unter org.gradle.parallel=true
# Wenn true gesetzt ist, wird der Gradle-Daemon zum Ausführen des Builds verwendet. Für lokale Entwickler-Builds ist dies unser bevorzugtes Attribut.
# Die Entwicklerumgebung ist auf Geschwindigkeit und Rückmeldung optimiert, daher führen wir fast immer Gradle-Jobs mit dem Daemon aus.
org.gradle.daemon=true
Durch Verwendung des Daemons wird der Start Ihrer Builds schneller, da er beim Starten nicht jedes Mal die gesamte Gradle-Anwendung starten muss. Der Gradle-Daemon ist standardmäßig nicht aktiviert, aber es wird empfohlen, ihn immer für Entwicklermaschinen zu aktivieren (aber auf Continuous-Integration-Servern deaktiviert zu lassen). FAQ zu diesem Modus finden Sie hier https://docs.gradle.org/current/userguide/gradle_daemon.html. Die Einstellung für parallele Builds kann für einige Projekte unsicher sein. Die Anforderung ist, dass alle Ihre Module entkoppelt sein müssen oder Ihr Build fehlschlagen könnte (siehe http://gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects für Details).
Schritt 3: Incremental Dexing aktivieren und Speichereinstellungen optimieren Sie können Ihre Builds beschleunigen, indem Sie das inkrementelle Dexing aktivieren. In der Build-Datei Ihres Moduls:
![Bildbeschreibung eingeben]()
Fügen Sie diese Option zu Ihrem Android-Block hinzu:
dexOptions {
incremental true
}
In diesem dexOptions-Block können Sie auch die Heap-Größe für den Dex-Vorgang festlegen, z. B.:
dexOptions {
incremental true
javaMaxHeapSize "12g"
}
Wo "12g" 12 GB Speicher bedeutet. Weitere Informationen dazu finden Sie auf google.github.io/android-gradle-dsl/current/ Sie können auch Gradle-Parameter in der Einstellungsdatei konfigurieren, z. B. die maximale Heap-Größe erhöhen, wenn Sie ein großes Projekt haben:
# Gibt die JVM-Argumente für den Daemon-Prozess an, der für das Optimieren von Speichereinstellungen besonders nützlich ist.
# Standardwert: -Xmx10248m -XX:MaxPermSize=256m
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
Sehen Sie alle Parameter hier: https://docs.gradle.org/current/userguide/userguide_single.html#sec:gradle_configuration_properties für Details.
Schritt 4: Antivirus deaktivieren Betrachten Sie, Projekt- und Cache-Dateien vom Virenscan auszuschließen. Dies ist offensichtlich ein Kompromiss mit der Sicherheit. Aber wenn Sie häufig zwischen Branches wechseln, wird das Antivirenprogramm Dateien erneut scannen, bevor es dem Gradle-Prozess erlaubt, sie zu verwenden, was die Build-Zeit verlangsamt (insbesondere Android Studio synchronisiert Projekte mit Gradle-Dateien und Indizierungsaufgaben). Messen Sie die Build-Zeit und den CPU-Prozess mit und ohne aktiviertes Antivirenprogramm, um zu sehen, ob es zusammenhängt. Ich hoffe, das hilft. Hinterlassen Sie einen Kommentar, wenn Sie Fragen haben oder weitere Tipps zur Verbesserung der Build-Performance haben.
hilfreicher Link