Przyspieszenie gradla wbudowane w Android Studio 3.2.1
Czy kiedykolwiek czułeś się, jakbyś czekał na ukończenie kompilacji w Android Studio przez kilka minut? Ja też. I to jest dość denerwujące. Na szczęście istnieje kilka sposobów, aby to poprawić. Android używa Gradle do budowania. Najnowsza wersja 4.6 ma ogromny wzrost wydajności w porównaniu do poprzednich wersji (szczegółowe informacje znajdują się w Uwagach do wydania).
Krok 1: Zaktualizuj wersję stopniową Łatwiejszym sposobem na osiągnięcie tego jest przejście do: Otwórz Ustawienia modułu (twój projekt)> Struktura projektu
AKTUALIZACJA
Zmień na wersję Gradle: 4.6
i Zmień na wersję wtyczki Android: 3.2.1
Pobierz wersję dystrybucyjną Gradle Release ze strony https://services.gradle.org/distribution/gradle-4.6-all.zip
I skopiuj ją do folderu Gradle:
Ostatnim krokiem jest dodanie opisu w Ustawieniach> Stopień
Nie zapomnij kliknąć Zastosuj, aby zapisać zmiany.
Krok 2: Włącz tryb offline, demona Gradle i kompilację równoległą dla projektu Tryb offline informuje Gradle, aby zignorował sprawdzanie aktualizacji na bieżąco. Gradle prosi o zależności za każdym razem, a ta opcja sprawia, że używa tylko zależności, które są już na komputerze. Idź do Gradle z Android Studio Setting i kliknij w polu Praca offline.
- Przejdź do kompilatora z Android Studio Setting i dodaj „- offline” w polu wiersza poleceń i kliknij Kompiluj niezależne moduły równolegle.
Następnym krokiem jest włączenie demona Gradle i kompilacji równoległej dla twojego projektu. Równoległe kompilacje spowodują, że twoje projekty z wieloma modułami (kompilacje wielu projektów w Gradle) będą budowane równolegle, co powinno przyspieszyć budowę dużych lub modułowych projektów.
Te ustawienia można włączyć, modyfikując plik o nazwie gradle.properties w katalogu skryptów Gradle (tj. ~ / .Gradle / gradle.properties). Niektóre z tych opcji (np. Równoległe moduły Complie) są dostępne w Android Studio, a także dostępne tam przez domyślnie, ale umieszczenie ich w pliku gradle.properties pozwoli im na budowanie z terminala, a także upewni się, że twoi koledzy będą używać tych samych ustawień. Ale jeśli pracujesz w zespole, czasem nie możesz tego zrobić.
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit org.gradle.parallel=true
# When set to true the Gradle daemon is used to run the build. For local developer builds this is our favorite property.
# The developer environment is optimized for speed and feedback so we nearly always run Gradle jobs with the daemon.
org.gradle.daemon=true
Użycie demona przyspieszy uruchamianie kompilacji, ponieważ nie będzie musiał za każdym razem uruchamiać całej aplikacji Gradle. Demon Gradle nie jest domyślnie włączony, ale zaleca się, aby zawsze włączać go na komputerach programistów (ale pozostawiając wyłączony dla serwerów ciągłej integracji). Często zadawane pytania dotyczące tego trybu można znaleźć tutaj https://docs.gradle.org/current/userguide/gradle_daemon.html . Ustawienie kompilacji równoległych może być niebezpieczne dla niektórych projektów. Wymagane jest, aby wszystkie moduły musiały być oddzielone od siebie, aby kompilacja nie powiodła się (zobacz http://gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects ).
Krok 3: Włącz ustawienia przyrostowego rysowania i poprawiania pamięci Możesz przyspieszyć swoje kompilacje, włączając przyrostowe rysowanie. W pliku kompilacji modułu:
Dodaj tę opcję do bloku Androida:
dexOptions {
incremental true
}
W tym bloku dexOptions można również określić rozmiar sterty dla procesu dex, na przykład:
dexOptions {
incremental true
javaMaxHeapSize "12g"
}
Gdzie „12g” to 12 GB pamięci. Dodatkowe informacje na ten temat można znaleźć tutaj google.github.io/android-gradle-dsl/current/ Możesz również skonfigurować parametry Gradle w pliku ustawień, np. Zwiększyć maksymalny rozmiar sterty w przypadku dużego projektu:
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx10248m -XX:MaxPermSize=256m
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
Zobacz całą listę parametrów tutaj: https://docs.gradle.org/current/userguide/userguide_single.html#sec:gradle_configuration_properties, aby uzyskać szczegółowe informacje.
Krok 4: Wyłącz program antywirusowy Rozważ wykluczenie plików projektu i pamięci podręcznej ze skanowania antywirusowego. Jest to oczywiście kompromis z bezpieczeństwem. Ale jeśli często przełączasz się między gałęziami, program antywirusowy ponownie przeskanuje pliki przed zezwoleniem procesowi gradacji na użycie, co spowalnia czas kompilacji (w szczególności projekt synchronizacji Android Studio z plikami stopni i zadaniami indeksowania). Zmierz czas kompilacji i przetwarzaj procesor z włączonym programem antywirusowym i bez niego, aby sprawdzić, czy jest on powiązany. Mam nadzieję, że to pomoże. Zostaw komentarz, jeśli masz jakieś pytania lub inne wskazówki dotyczące poprawy wydajności kompilacji.
pomocny link