Budowanie i uruchamianie aplikacji przez Gradle i Android Studio jest wolniejsze niż przez Eclipse

Mam multi-projekt (~10 modułów), którego budowa trwa około 20-30 sekund za każdym razem. Po naciśnięciu Uruchom w Android Studio, muszę czekać za każdym razem, aby odbudować aplikację, która jest bardzo powolna.

Czy można zautomatyzować proces budowania w Android Studio? A może masz jakieś rady, jak przyspieszyć ten proces?

W Eclipse, dzięki automatycznemu budowaniu, uruchomienie tego samego projektu na emulatorze zajmuje około 3-5 sekund.

To Moja budowa.gradle plik (moduł aplikacji):
buildscript {
    repositories {
        maven { url 'http://repo1.maven.org/maven2' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.4'
    }
}
apply plugin: 'android'

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile project(':libraries:SharedLibs')
    compile project(':libraries:actionbarsherlock')
    compile project(':libraries:FacebookSDK')
    compile project(':libraries:GooglePlayServices')
    compile project(':libraries:HorizontalGridView')
    compile project(':libraries:ImageViewTouch')
    compile project(':libraries:SlidingMenu')
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 16
    }
}
Author: overactor, 2013-05-27

27 answers

Hardware

Przykro mi, ale modernizacja development station do SSD i ton pamięci ram ma prawdopodobnie większy wpływ niż punkty poniżej razem wzięte.

Wersje narzędzi

Zwiększenie wydajności kompilacji ma główny priorytet dla zespołów programistycznych, więc upewnij się, że używasz najnowszej Gradle i Android Gradle Plugin.

Plik Konfiguracyjny

Utwórz plik o nazwie gradle.properties w dowolnym katalogu, który ma zastosowanie:

  • /home/<username>/.gradle/ (Linux)
  • /Users/<username>/.gradle/ (Mac)
  • C:\Users\<username>\.gradle (Windows)

Append:

# IDE (e.g. Android Studio) users:
# Settings specified in this file will override any Gradle settings
# configured through the IDE.

# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html

# The Gradle daemon aims to improve the startup and execution time of Gradle.
# When set to true the Gradle daemon is to run the build.
# TODO: disable daemon on CI, since builds should be clean and reliable on servers
org.gradle.daemon=true

# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# https://medium.com/google-developers/faster-android-studio-builds-with-dex-in-process-5988ed8aa37e#.krd1mm27v
org.gradle.jvmargs=-Xmx5120m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
org.gradle.parallel=true

# Enables new incubating mode that makes Gradle selective when configuring projects. 
# Only relevant projects are configured which results in faster builds for large multi-projects.
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:configuration_on_demand
org.gradle.configureondemand=true

# Set to true or false to enable or disable the build cache. 
# If this parameter is not set, the build cache is disabled by default.
# http://tools.android.com/tech-docs/build-cache
android.enableBuildCache=true

Gradle properties działa lokalnie, jeśli umieścisz je w projectRoot\gradle.properties i globalnie, jeśli umieścisz je w user_home\.gradle\gradle.properties. Właściwości zastosowane w przypadku uruchamiania zadań gradle z konsoli lub bezpośrednio z idea:

Ustawienia IDE

Możliwe jest dostosowanie integracji Gradle-IntelliJ z GUI ustawień IDE. Włączenie "pracy offline" (sprawdź odpowiedź z Yava poniżej) wyłączy rzeczywistą sieć żądania na każdym "pliku sync gradle".

Ustawienia IDE

Native multi-dex

Jednym z najwolniejszych kroków kompilacji apk jest konwersja kodu bajtowego Javy do pojedynczego pliku dex. Włączenie natywnego multidex (minSdk 21 tylko dla debugowania kompilacji) pomoże narzędziu zmniejszyć ilość pracy (sprawdź odpowiedź z Aksel Willgert poniżej).

Zależności

Preferuje @aar zależności nad podprojektami bibliotek.

Wyszukaj pakiet aar na mavenCentral, jCenter lub użyj jitpack.io aby zbudować dowolną bibliotekę z Githuba. Jeśli nie edytujesz źródeł biblioteki zależności, nie powinieneś budować jej za każdym razem ze źródłami projektu.

Antywirus

Rozważ wykluczenie plików projektu i pamięci podręcznej ze skanowania antywirusowego. Jest to oczywiście kompromis z bezpieczeństwem (nie próbuj tego w domu!). Ale jeśli często przełączasz się między gałęziami, program antywirusowy przeskanuje pliki przed zezwoleniem proces gradle z niego korzystać, co spowalnia czas kompilacji (w szczególności AndroidStudio synchronizacji projektu z plikami gradle i zadań indeksowania). Zmierz czas kompilacji i Procesor Procesora z włączonym programem antywirusowym i bez niego, aby sprawdzić, czy jest on powiązany.

Profilowanie budowy

Gradle ma wbudowane wsparcie dla projektów profilowania. Różne projekty używają innej kombinacji wtyczek i niestandardowych skryptów. Użycie --profile pomoże znaleźć wąskie gardła.
 429
Author: Sergii Pechenizkyi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:18:22

Możesz ignorować aktualizacje gradle.

Tutaj wpisz opis obrazka

Dla systemu Windows z systemem Android Studio 1.5: przejdź do File -> Settings -> Build, Execution, Deployment -> Build tools -> Gradle -> Check Offline work (as shown in image)

Z ~30 + sek do ~3 sek

 147
Author: yava,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-23 22:15:04

Szukaliśmy tego wszędzie i w końcu znaleźliśmy rozwiązanie, które działa dla nas. Włączenie parallel builds (na OSX: preferences -> compiler -> gradle -> "Compile independent modules in parallel") i włączenie 'make project automatically' zmniejszyło go z ~1 min do ~20 sek. dzięki /u / Covalence.

Http://www.reddit.com/r/androiddev/comments/1k3nb3/gradle_and_android_studio_way_slower_to_build/

 33
Author: odiggity,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-23 22:07:48

[[0]] ostatnio kupiłem nowy dysk SSD i przeszedłem z Windowsa na Linux.My czasy tworzenia są teraz o rząd wielkości szybsze i nie są już denerwujące.

Chociaż nie odpowiada bezpośrednio na twoje pytanie, dlaczego jest wolniejszy niż eclipse, pokazuje, że proces jest ograniczony dyskami, a aktualizacja do SSD może być (nieco kosztownym) rozwiązaniem. Domyślam się, że znajdą się ludzie, którzy wygooglują problem i znajdą się tutaj, którzy mogą docenić moje doświadczenie.

 23
Author: Andreas Løve Selvik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-29 14:44:54

Jeśli korzystasz z usług google play, w zależności od bibliotek, których potrzebujesz, a nie całego Bloba, możesz przyspieszyć działanie.

Jeśli potrzebujesz tylko map, użyj:

compile 'com.google.android.gms:play-services-maps:6.5.+'

Zamiast:

compile 'com.google.android.gms:play-services:6.5.+'

Ta ostatnia wprowadza 20K metod (Zobacz blog) do classpath, co może przechylić całkowitą liczbę metod ponad 64k.

Wymusiłoby to użycie proguard lub multidex nawet do debugowania. Dla jednego z moich projektów miałem następujący build czasy

  • multidex build (with supportlibrary) ~40sec
  • proguard build ~20sec
  • buduj gdy limit metody

W przypadku tworzenia na sdk 21+, możliwe byłoby zoptymalizowanie kompilacji multidex zgodnie z opisem w dokumentacji Androida

android {
    productFlavors {
        // Define separate dev and prod product flavors.
        dev {
            // dev utilizes minSDKVersion = 21 to allow the Android gradle plugin
            // to pre-dex each module and produce an APK that can be tested on
            // Android Lollipop without time consuming dex merging processes.
            minSdkVersion 21
        }
        prod {
            // The actual minSdkVersion for the application.
            minSdkVersion 14
        }
    }
    ...
}
 18
Author: Aksel Willgert,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-06 07:50:56

Akceptowana odpowiedź dotyczy starszych wersji android studio i większość z nich działa nadal. Aktualizacja android studio sprawiła, że było to trochę szybsze. Nie trudź się, aby określić rozmiar sterty, ponieważ zwiększy się automatycznie wraz ze wzrostem Xms i Xmx. Oto kilka modyfikacji z VMoptions

  1. W folderze bin jest studio.plik vmoptions do Ustawienia konfiguracji środowiska. W moim przypadku jest to studio64.vmoptions Dodaj następujące wiersze, jeśli nie zostały jeszcze dodane i zapisz plik. W moim przypadku mam 8GB RAM.

    -Xms4096m
    -Xmx4096m
    -XX:MaxPermSize=2048m
    -XX:+CMSClassUnloadingEnabled
    -XX:+CMSPermGenSweepingEnabled 
    -XX:+HeapDumpOnOutOfMemoryError
    -Dfile.encoding=utf-8`
    
  2. Uruchom android studio. Przejdź do File-> Settings-> Build, Execution, Deployment - > Compiler

    • Sprawdź kompilowanie niezależnych modułów równolegle
    • w opcjach wiersza poleceń napisz: --offline
    • Sprawdź automatycznie Utwórz projekt
    • sprawdź konfigurację na żądanie

W przypadku korzystania z mac, na początku nie mogłem znaleźć vmoptions. W każdym razie, oto ładny artykuł o tym, jak możemy Zmień vmoptions w MAC OSX . Cytując z tego artykułu tutaj.

Otwórz terminal i umieść to polecenie, aby otworzyć vmoptions w MAC OSX:

open -e /Applications/Android\ Studio.app/Contents/bin/studio.vmoptions
 15
Author: Reaz Murshed,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-09 14:47:36

Przyspiesz Gradle Build W Android Studio 3.0

Czułeś kiedyś, że przez kilka minut czekasz na ukończenie kompilacji w Android Studio? Ja też. I to jest dość irytujące. Na szczęście istnieje kilka sposobów, które można użyć, aby to poprawić. Android używa Gradle do budowania. Najnowsza wersja to 2.14.1 ma ogromny wzrost wydajności w porównaniu z poprzednimi wersjami(szczegóły w Uwagach do wydania).

Krok 1: Zaktualizuj wersję Gradle Łatwiejszy sposób na osiągnięcie tego aby przejść do: Otwórz Ustawienia modułu (Twój projekt) > struktura projektu

Tutaj wpisz opis obrazka

UPDATE

Zmień na Gradle Wersja: 4.1 oraz Zmień na Android Plugin Version: 3.0.0

Tutaj wpisz opis obrazka

Pobierz Gradle Release distributive z https://services.gradle.org/distributions/gradle-3.1-all.zip I skopiuj do folderu Gradle:

Tutaj wpisz opis obrazka

Ostatnim krokiem jest dodanie swojego discribution in Settings > Gradle

Tutaj wpisz opis obrazka

Nie zapomnij kliknąć Zastosuj, aby zapisać zmiany.

Krok 2: włącz Tryb Offline, daemon Gradle i parallel build dla projektu Tryb Offline nakazuje Gradle ignorowanie kontroli aktualizacji. Gradle pyta o Zależności za każdym razem, a posiadanie tej opcji sprawia, że używa tylko tego, co jest już na maszynie do zależności. Przejdź do Gradle z ustawień android studio i kliknij w pracy Offline box.

Tutaj wpisz opis obrazka

  1. przejdź do kompilatora z ustawień android studio i dodaj "- offline " w polu wiersza poleceń i kliknij Kompiluj niezależne moduły równolegle.

Tutaj wpisz opis obrazka

Następnym krokiem jest włączenie demona Gradle i równoległego budowania dla Twojego projektu. Parallel builds spowoduje, że Twoje projekty z wieloma modułami (Multi-project builds w Gradle) będą budowane równolegle, co powinno sprawić, że duże lub modułowe projekty będą budowane szybciej.

Tutaj wpisz opis obrazka

Te ustawienia mogą zostać włączone poprzez modyfikację pliku o nazwie gradle.właściwości w katalogu skryptów Gradle(np.~/.gradle/gradle.właściwości).Niektóre z tych opcji (np. Moduły Complie równolegle) są dostępne z Android Studio i również tam włączone domyślnie, ale umieszczając je w gradle.Plik Właściwości włączy je podczas budowania z terminala, a także upewni się, że twoi koledzy będą używać tych samych ustawień. Ale jeśli jesteś pracując w zespole, czasami nie można popełnić takich rzeczy.

# 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żywanie demona sprawi, że Twoje Kompilacje będą się szybciej uruchamiać, ponieważ nie będzie musiał za każdym razem uruchamiać całej aplikacji Gradle. Daemon Gradle nie jest domyślnie włączony, ale zaleca się zawsze włączenie go dla maszyn programistów (ale pozostawienie go wyłączonego dla serwerów ciągłej integracji). FAQ na temat tego trybu można znaleźć tutaj https://docs.gradle.org/current/userguide/gradle_daemon.html . The parallel ustawienie kompilacji może być niebezpieczne dla niektórych projektów. Wymaganiem jest to, że wszystkie moduły muszą być oddzielone od siebie lub Twoja budowa może się nie udać (zobacz http://gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects Po szczegóły).

Krok 3: włącz przyrostowe ustawienia pamięci dexign i tweak Możesz przyspieszyć swoje Kompilacje, włączając deksowanie przyrostowe. W pliku budowania Twojego modułu:

Tutaj wpisz opis obrazka

Dodaj tę opcję do swojego blok Androida:

dexOptions {
    incremental true
}

W tym bloku dexOptions możesz również określić rozmiar sterty dla procesu dex, na przykład:

dexOptions {
    incremental true
    javaMaxHeapSize "12g"
}

Gdzie " 12g " to 12GB 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{[17]Po szczegóły.

Krok 4: Wyłącz Program Antywirusowy Rozważ wykluczenie plików projektu i pamięci podręcznej ze skanowania antywirusowego. To oczywiście kompromis z ochroną. Ale jeśli często przełączasz się między gałęziami, program antywirusowy przeskanuje pliki przed zezwoleniem procesowi gradle na korzystanie z niego ,co spowalnia czas kompilacji (w szczególności projekt synchronizacji Android Studio z plikami gradle i zadania indeksowania). Zmierz czas kompilacji i Procesor Procesora 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

 15
Author: Ahmad Aghazadeh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-21 06:04:25

Po prostu utwórz plik o nazwie gradle.właściwości w następującym katalogu:

/home/<username>/.gradle/ (Linux)
/Users/<username>/.gradle/ (Mac)
C:\Users\<username>\.gradle (Windows)

Dodaj ten wiersz do pliku:

org.gradle.daemon=true

Dla mnie prędkość jest teraz równa Eclipse.

Źródło: https://www.timroes.de/2013/09/12/speed-up-gradle/

 14
Author: Yster,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-10 15:45:22

Możesz przyspieszyć proces, jeśli używasz gradle z linii poleceń. Jest wiele do optymalizacji dla programistów IDE. Ale to tylko wczesna wersja.

Aby uzyskać więcej informacji, przeczytaj tę dyskusję na g+ z niektórymi deweloperami.

 12
Author: rivare,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-24 22:11:14

Jeśli ktoś pracuje nad projektem, który jest synchronizowany przez Subversion i to nadal się dzieje, myślę, że może to spowolnić proces przepływu pracy w Android Studio. Na przykład, jeśli działa bardzo wolno podczas: przewijania w klasie, xml itp., podczas gdy moja aplikacja jest nadal uruchomiona na moim urządzeniu.

  • Przejdź do kontroli wersji w preferencjach i ustaw z Subversion na None.Tutaj wpisz opis obrazka
 10
Author: Gent Berani,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-08 15:05:39

Aktualizacja Po Android Studio 2.3

Wszystkie odpowiedzi są świetne i zachęcam do korzystania z tych metod w celu poprawy szybkości budowania.

[10]} po wydaniu Androida 2.2 we wrześniu 2016 roku, Android wydał experimental build Cache feature, aby przyspieszyć gradle Build performance, która jest teraz oficjalna z Android Studio 2.3 Canary. (Official Release note)

Wprowadza nową funkcję build cache, która jest domyślnie włączona, może Przyspiesz czas kompilacji (w tym pełne Kompilacje, przyrostowe i natychmiastowe uruchamianie), przechowując i ponownie wykorzystując pliki / katalogi utworzone w poprzednich kompilacjach tego samego lub innego projektu na Androida.

Jak używać:

Dodaj następujący wiersz w pliku gradle.properties

android.enableBuildCache = true
# Set to true or false to enable or disable the build cache. If this parameter is not set, the build cache is enable by default.

Wyczyść pamięć podręczną:

  • Istnieje nowe zadanie Gradle o nazwie cleanBuildCache, aby łatwiej wyczyścić pamięć podręczną kompilacji. Możesz go użyć, wpisując w swoim terminal:

    ./gradlew cleanBuildCache

  • Możesz też wyczyścić pamięć podręczną dla Androida studio 2.2, usuwając wszystkie pliki przechowywane w lokalizacji]}

    C:\Users\<username>\.android\build-cache

 7
Author: Shaishav Jogani,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-06 02:31:26

Po zmianie tych ustawień mój czas kompilacji 10 minut zmienił się na ~10 sekund.

Krok 1:

Ustawienia (ctrl + Alt + S) - >

Build, Execution,Deployment - >

Kompilator - >

Wpisz "--offline " w polu Opcje wiersza poleceń.

Krok 2:

Zaznacz pole wyboru "Kompiluj niezależne moduły równolegle".

& Kliknij Zastosuj -> OK

Tutaj wpisz opis obrazka

Reference - https://www.sundoginteractive.com/blog/speed-up-gradle-in-android-studio

Wady:

Nie będziesz w stanie ściągnąć najnowszych wersji zależności określonych w Twojej kompilacji.plik gradle. Działa szybciej, ponieważ używa buforowanej migawki tych zaimportowanych bibliotek.

Ważna Uwaga: po wdrożeniu aplikacji usuń te ustawienia i zbuduj je z najnowszymi wersje zależności.

 6
Author: Ranjith Kumar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-22 04:52:32

Rozwiązałem Moje z

File -> Settings -> Build, Execution, Deployment -> Build Tools -> Gradle -> Offline work

Gradle builds trwała od 8 minut do 3 sekund.
 5
Author: mn_test347,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-22 05:41:46

Oto, co pomogło temu początkującemu programiście Androida (byłemu profesjonalnemu programiście, lata temu) w przyspieszeniu Android Studio 2.2. Wiem, że to powtórka, ale po prostu podsumowanie w jednym miejscu.

Początkowe Kompilacje nadal mogą być brutalnie powolne, ale ponowne uruchamianie uruchomionych aplikacji jest zwykle bardzo tolerowane. Używam sub - optymalnego komputera: AMD Quad-Core A8-7410 CPU, 8MB RAM, non-SSD HD, Win 10. (I to jest mój pierwszy post przepełnienie stosu.... ;)

W USTAWIENIACH - > GRADLE:

Tak dla " praca w trybie Offline "(jest to prawdopodobnie najbardziej importowane ustawienie).

W USTAWIENIACH - > KOMPILATOR:

Tak dla "kompilacji niezależnych modułów równolegle" (Nie wiem, czy faktycznie pomaga to w wykorzystaniu procesorów wielordzeniowych).

W skryptach GRADLE , " build.gradle (Module: app)":

defaultConfig {
    ...
   // keep min high so that restarted apps can be hotswapped...obviously, this is hugely faster.
   minSdkVersion 14
   ...
    // enabling multidex support...does make big difference for me.
    multiDexEnabled true

Również w skryptach GRADLE , " gradle.właściwości (Właściwości projektu)":

Org.gradle.jvmargs= - Xmx3048m-XX: MaxPermSize=512m -XX: + HeapDumpOnOutOfMemoryError-Dfile.encoding = UTF-8

Org.gradle.parallel = true, org.gradle.daemon = true

DODATKOWO , testowanie na fizycznym urządzeniu zamiast emulatora działa dobrze dla mnie; mały tablet, który stoi jest wygodny.

 3
Author: Greg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-10 21:43:28

Just another performance imporvement tip:

Android Studio 3.0 zawiera nowy kompilator DEX o nazwie D8.

"kompilator dex działa głównie pod maską w codziennym rozwoju aplikacji, ale bezpośrednio wpływa na czas kompilacji aplikacji .Rozmiar pliku dex i wydajność pracy."

" i porównując nowy kompilator D8 z obecnym kompilatorem DX, D8 kompiluje się szybciej i generuje mniej .plików dex, mając jednocześnie ten sam lub lepszy czas działania aplikacji wydajność."

D8 jest opcjonalne - użyj go musimy umieścić w Gradle projektu.właściwości

android.enableD8=true
Więcej informacji: https://android-developers.googleblog.com/2017/08/next-generation-dex-compiler-now-in.html

PS. To improve mój czas budowy o około 30%.

 3
Author: lesniak,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-30 10:18:42

Ta konfiguracja idzie naprawdę szybko dla mnie (około 2 sekundy budowy)

Buduj.gradle

android {

    dexOptions {
        incremental true
        preDexLibraries = false
        jumboMode = false
        maxProcessCount 4
        javaMaxHeapSize "6g"
    }
}

Gradle.właściwości

org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.jvmargs=-Xmx8192M

Mój komputer:

  • CPU Intel (r) Pentium (r) CPU G2030 @ 3.00 GHz, 3000 Mhz, 2 procesory principales, 2 procesadores lógicos
  • x64
  • Microsoft Windows 7 Professional
  • (RAM) 16,0 GB

Pliki projektów
- Wszystkie zlokalizowane w lokalnym HD

 1
Author: MoaLaiSkirulais,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-04 14:45:40

Wykonaj następujące czynności.

  1. Włącz tryb offline: Sprawdź poniżej print screen.

    Https://i.stack.imgur.com/RF9uG.png

  2. Włącz natychmiastowe uruchamianie: Sprawdź poniżej print screen.

    Https://i.stack.imgur.com/mvHKJ.png

    Jeśli chcesz dowiedzieć się więcej o instant run, odwiedź witrynę programisty Androida.

 1
Author: vinod,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-09 06:13:47

Możesz spróbować otworzyć menu gradle po prawej stronie studia i złożyć tylko zmienione moduły, a następnie uruchomić polecenie install. Po naciśnięciu przycisku Uruchom asembluje wszystko bez względu na jakiekolwiek zmiany wprowadzone w kodzie, który jest asemblowany

 1
Author: SBC,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-14 21:14:20

Jestem daleki od bycia ekspertem od Gradle, ale moje środowisko miało następującą linię .gradle/init.gradle

gradle.projectsLoaded {
    rootProject.allprojects {
        repositories {
            mavenRepo name: 'libs-repo', url: 'http://guest-vm/artifactory/repo'
        }
    }
}

Jeszcze nie mam pojęcia dlaczego tam była ta linia, ale staram się zmienić na

gradle.projectsLoaded {
    rootProject.allprojects {
        repositories {
            mavenCentral()
        }
    }
} 

I teraz wreszcie mogę pracować bez przeklinania Android Studio & Gradle buildind scheme.

 0
Author: cifuentes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-16 22:56:29

W naszym konkretnym przypadku problem wynikał z posiadania wtyczki retrolambda, która zmuszała wszystkie projekty i podprojekty do rekompilacji za każdym razem, gdy próbowaliśmy uruchomić naszą aplikację, nawet jeśli żaden kod nie został zmieniony w naszych podstawowych modułach.

Usunięcie retrolamba naprawiło to dla nas. Mam nadzieję, że to komuś pomoże.

 0
Author: Henrique de Sousa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-27 12:54:09

Najpierw spróbuj tego. To moje osobiste doświadczenie.

Miałem ten sam problem. To, co zrobiłem, to po prostu trwale wyłączyć program antywirusowy (mój był Avast Security 2015). Zaraz po wyłączeniu antywirusa wszystko poszło dobrze. gradle zakończył się sukcesem. Od teraz w ciągu kilku sekund gradle kończy (zajmuje tylko 5-10 sekund).

 0
Author: NIKHIL C M,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-24 06:54:25

Witam wiem, że to bardzo późna odpowiedź ale może komuś pomóc
w moim przypadku używałem

compile 'com.android.support:support-v4:23.1.1'

In my app Gradle dependency
ale w jednej z moich bibliotek było

 compile 'com.android.support:support-v4:23.0.1'

Po zmianie WSZYSTKICH na najnowszą wersję mój problem rozwiązany.

 0
Author: max,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-24 15:17:37

Wykonanie tych kroków sprawi, że będzie to 10 razy szybsze i skróci czas budowy o 90%

Najpierw Utwórz plik o nazwie gradle.właściwości w następującym katalogu:

/home/<username>/.gradle/ (Linux)
/Users/<username>/.gradle/ (Mac)
C:\Users\<username>\.gradle (Windows)

Dodaj ten wiersz do pliku:

org.gradle.daemon=true
org.gradle.parallel=true

I sprawdź tę opcję w Android Studio

Tutaj wpisz opis obrazka

 0
Author: Biswajit Karmakar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-14 06:52:53

Użyj tego sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install libncurses5:i386 libstdc++6:i386 zlib1g: i386

Android Studio nie buduje nowego projektu, timed out podczas wating dla procesu slave AAPT

 0
Author: roshan posakya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:02:47

A trywialna zmiana (na resoruce xml) nadal trwała 10 minut. Jak mówi @rivare w swojej odpowiedzi, budowanie linii poleceń jest szybsze (wziął to do 15 sekund ).
Oto kilka kroków, aby przynajmniej zrobić trywialną kompilację szybko z linii poleceń dla Windows.

  1. Go to your projects root (where the gradlew."bat is"): {]}

    Cd c:\android\MaskActivity

  2. Wykonaj Zbuduj :

    Gradlewebug

  3. Odinstaluj apk bezpośrednio z telefonu (przeciągnij go, aby odinstalować).

  4. Po zakończeniu kompilacji, Zabij duży proces Javy za pomocą Windows Menedżer Zadań.

Lub jeśli masz narzędzia uniksowe na komputerze z systemem Windows:

ps

"pid" są wyświetlane:

kill -9 <pid>
  1. Teraz Zainstaluj twój apk:

    ADB-d install C:\Android\MaskActivity\app\build\outputs\apk\app-debug.apk

 0
Author: Jon Goodwin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-06 08:20:57

Zgodnie z Dokumentacja Androida, dodaj to do pliku gradle modułu aplikacji.

android {
    ...
    dexOptions {
    preDexLibraries true
    maxProcessCount 8
    }
}
 0
Author: Allan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-06 02:53:45

Aby uruchomić środowisko Android na maszynie o niskiej konfiguracji.

  1. Zamknij zakładki uncessesory web w przeglądarce
  2. dla użytkowników antywirusa, wyklucz folder kompilacji, który jest automatycznie generowany
  3. Android studio ma 1,2 GB domyślnej sterty można zmniejszyć do 512 MB Pomoc > Edycja niestandardowych opcji maszyny wirtualnej studio.vmoptions - Xmx512m Layouts performace będzie przyspieszać

  4. Dla Gradle jeden z podstawowych komponentów w Android studio mkae sure tak jak teraz 3.0 beta jest ostatni

Poniższe wskazówki mogą mieć wpływ na jakość kodu, więc proszę używać z ostrzeżeniami:

  1. Studio zawiera tryb awaryjny zasilania po włączeniu zamknie operacje w tle, które się kłaczą, uzupełniają kod i tak dalej.

  2. W razie potrzeby można uruchomić ręcznie lintcheck ./ gradlew lint

  3. Większość z nich używa emulatorów Androida średnio zużywa 2 GB PAMIĘCI RAM, więc jeśli to możliwe, użyj rzeczywistego urządzenia z Androidem, zmniejszy to Twój zasób załaduj komputer. Alternatywnie można zmniejszyć PAMIĘĆ RAM emulatora i automatycznie zmniejszy zużycie pamięci wirtualnej na komputerze. można to znaleźć w konfiguracji urządzenia wirtualnego i Ustawieniach zaawansowania.

  4. Gradle offline mode to funkcja dla użytkowników o ograniczonej przepustowości, która wyłącza pobieranie zależności kompilacji. Zmniejszy to działanie w tle, które pomoże zwiększyć wydajność Android studio.

  5. Android studio oferuje optymalizację kompilacji wielu modułów równolegle. Na komputerach o niskiej pamięci RAM funkcja ta prawdopodobnie będzie miała negatywny wpływ na wydajność. Możesz go wyłączyć w oknie dialogowym Ustawienia kompilatora.

 0
Author: Smit Patel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-28 09:40:55