Android studio Gradle build accelerare



setup android studio (13)

Dall'ultimo aggiornamento (Build from june 25) qualsiasi modifica nello studio di Android Gradle è dolorosamente lenta. E sembra anche apportare modifiche automatiche quando si modifica il file e si ricompila in keyup.

Ogni modifica richiede alcuni minuti sul mio i5.

Qualche idea su come posso accelerare il mio cambiamento di Gradle?


Sono in esecuzione un 5th gen i7 con Windows 10 e un Solid State da 1 TB. Ho compresso la cartella Progetti Studio Android e ottenuto un aumento dell'80%. Spero che questo ti aiuti.

Poi l'ho combinato con le soluzioni di cui sopra cioè (org.gradle.parallel = true, org.gradle.daemon = true). L'aumento delle prestazioni è stato piuttosto impressionante.

Inoltre:

Tutte le risposte di cui sopra sono totalmente corrette, ma devo dichiarare come sviluppatore Android esperienza (di 4 anni e mezzo) che: Nessuno sviluppatore Android / Gradle dovrebbe lavorare su una macchina con un disco rotante, è necessario Stato solido. Tutti noi colpiamo quel pulsante di riproduzione negli IDE 100 di volte al giorno. Quando sono passato da uno spinner a SSD (post Gradle), la mia velocità ed efficienza erano letteralmente 2 - 4 volte più veloci e ti prometto che NON sto esagerando qui.

Ora non sto parlando di avere una macchina con un piccolo SSD e un grande spinner, sto parlando di 1 grande SSD. Se hai già una macchina con un SSD piccolo e un grande spinner, puoi aggiornare il piccolo spinner per dire un SSD da 500 GB e impostare l'SSD come unità principale del sistema operativo con gli strumenti di sviluppo installati su di esso.

Quindi, se stai lavorando in un ambiente a ritmo veloce, ti preghiamo di mostrare questo post al tuo capo. Un SSD da 1TB decente ti riporterà a circa £ 300 (IVA inclusa), o circa £ 160 per SSD da 500GB. A seconda se sei uno sviluppatore Android junior o senior, l'unità pagherà per sé (in termini di spese per i salari) in 1 - 2 settimane lavorative, o circa 2 e mezzo a 5 giorni lavorativi se investi in un minore; diciamo SSD da 500 GB.

Molti sviluppatori potrebbero obiettare che questo non è il caso, ma è il caso di Gradle, poiché il sistema Gradle è molto difficile per l'accesso diretto al disco. Se lavori con .NET / C # / VB Net o altri strumenti di sviluppo non noterai molta differenza, ma la differenza in Gradle è ENORME. Se reciti in questo post te lo prometto, non rimarrai deluso. Personalmente sto usando il quinto gen i7 con 8GB di RAM che originariamente era dotato di un Spinner da 1TB e l'ho aggiornato a un Samsung SSD 840 EVO da 1TB e da allora non ho mai più guardato indietro. Ho comprato il mio da: https://www.aria.co.uk .

Spero che questo ti aiuti. Devo anche dire che questo NON è un post commerciale, sto solo raccomandando Aria come li ho usati molte volte e sono sempre stati affidabili.


Per build più veloci, aumentare la dimensione massima dell'heap per il demone Gradle a più di 2048 MB.

Per fare questo set
org.gradle.jvmargs=-Xmx2048M
nel progetto gradle.properties .


C'è una versione più recente di gradle (versione 2.4).

Puoi impostarlo per i tuoi progetti aprendo la finestra di dialogo 'Struttura del progetto' dal menu File,

Project Structure -> Project -> Gradle version

e impostarlo su "2.4".
Puoi leggere ulteriori informazioni sull'aumento delle prestazioni a questo link .


Gli sviluppatori ci stanno lavorando. Come ho postato in questa risposta la soluzione più veloce ora è quella di usare gradle dalla riga di comando e si dovrebbe passare alle librerie binarie per tutti i moduli che non si sviluppano. Su g + c'è una discussion con gli sviluppatori su di esso.


dexOptions {
    incremental true
    javaMaxHeapSize "4g"
}

Sono stato in grado di ridurre il mio gradle build da 43 secondi a 25 secondi sul mio vecchio laptop core2duo (con linux mint) aggiungendo quanto segue al file gradle.properties in Android Studio

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

fonte del motivo per cui l'impostazione del daemon rende le build più veloci: https://www.timroes.de/2013/09/12/speed-up-gradle/


Dopo aver cambiato queste impostazioni, il mio tempo di compilazione di 10 minuti è stato ridotto a 10 secondi.

Passo 1:

Impostazioni (ctrl + Alt + S) ->

Build, Execution, Deployment ->

Compilatore ->

digita " --offline " nella casella delle opzioni della riga di comando.

Passo 2:

seleziona la casella di controllo "Compila moduli indipendenti in parallelo".

& fai clic su Applica -> OK

Passaggio 3: nel file gradle.properties -> Aggiungi righe seguenti

org.gradle.jvmargs=-Xmx2048M -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.parallel=true
org.gradle.configureondemand=true
org.gradle.daemon=true

Aggiornare:

Se utilizzi Android Studio 2.0 o versione successiva, prova l'esecuzione immediata

Impostazioni → Build, Execution, Deployment → Instant Run → Enable Instant Run.

Maggiori informazioni su Instant Run - https://developer.android.com/studio/run/index.html#instant-run


Questo è quello che ho fatto e la mia velocità di costruzione del gradle è migliorata notevolmente! da 1 minuto a 20 secondi per la prima build e le build successive sono passate da 40 secondi a 5 secondi.

Nel file gradle.properties Aggiungi questo:

org.gradle.jvmargs=-Xmx8192M -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

Nella riga di comando Argomenti tramite Vai al file> Altre impostazioni> Impostazioni predefinite> Build, Execution, Deploy> Complier e aggiungi i seguenti argomenti agli argomenti della riga di comando

Aggiungi questo:

--debug --stacktrace -a, --no-rebuild -q, --quiet --offline


Sicuramente fa la differenza: Come ... Accelerare il tempo di costruzione del Gradle

Basta creare un file denominato gradle.properties nella seguente directory:

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

Aggiungi questa linea al file:

org.gradle.daemon=true

In base a questa page del Team Android di Wikimedia Apps , un buon metodo per ottimizzare le build di Gradle è aggiungere queste righe al tuo ~ / .gradle / gradle.properties

org.gradle.daemon=true                                                          
org.gradle.parallel=true
org.gradle.configureondemand=true
org.gradle.jvmargs=-Xmx2048M

Per coloro che non hanno il file ci sono due modi per farlo:

  1. Aggiungi il file localmente nel tuo progetto creando un file chiamato gradle.properties nella root del progetto o,

  2. Puoi impostarli globalmente per tutti i tuoi progetti creando lo stesso file nella tua home directory (% UserProfile% .gradle su Windows , ~ / .gradle su Linux e Mac OS X )

    È buona norma impostare le proprietà nella home directory, piuttosto che a livello di progetto.


Aggiungi un file build.gradle :

android {
...
dexOptions {
        javaMaxHeapSize "4g" //specify the heap size for the dex process
    }
...
}

Spero possa essere d'aiuto.







android-studio