473 votes

La construction et l'application en cours d'exécution via Gradle et Android Studio est plus lent que via Eclipse

J'ai le multi-projet (~10 modules) de construction qui prend environ 20 à 30 secondes à chaque fois. Lorsque j'appuie sur Exécuter dans Android Studio, je dois attendre à chaque fois à la reconstruction de l'app, ce qui est extrêmement lent.

Est-il possible d'automatiser le processus de construction dans Android Studio? Ou avez-vous des conseils, comment faire pour rendre ce processus plus rapide?

Dans Eclipse, grâce à la construction automatique, l'exécution d'un même projet sur émulateur prend environ 3-5seconds.

C'est mon build.gradle fichier (application module):

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
    }
}

442voto

Sergii Pechenizkyi Points 4906

Enfin certains progrès ici. http://tools.android.com/recent/androidstudio030released

En général, vous devriez outils de mise à jour vers les dernières versions. Qui sont pour le moment:

  • AndroidStudio 0.6.+
  • android plugin gradle 0.11.+
  • Gradle 1.12

--Daemon --parallèle --mode hors connexion arguments gradle versions sont génial de travailler.


Un peu plus en détail:

  • Activer gradle goodies avec des propriétés de fichier

gradle.properties

# Project-wide Gradle settings.

# 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.
# Default value: -Xmx10248m -XX:MaxPermSize=256m
org.gradle.jvmargs=-Xmx2048m -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

Gradle propriétés œuvres locales si vous les placez à l' projectRoot\gradle.properties et globalement si vous les placez à l' user_home\.gradle\gradle.properties. Propriétés appliquées si vous exécutez gradle des tâches à partir de la console ou directement à partir de l'idée:


  • Ou activer gradle propriétés de l'idée paramètres

enter image description here


  • Préférez @aar dépendances au lieu des projets de la bibliothèque.

La recherche de l'aar paquet sur mavenCentral(http://gradleplease.appspot.com/), github (https://github.com/Goddchen/mvn-repo) ou la télécharger sur mavenLocal.


150voto

yava Points 408

vous pouvez ignorer ignorer gradle mise à jour à la date des vérifications.

enter image description here

vers le bas à partir de ~30+ s à ~3 sec

35voto

odiggity Points 659

Fouillé partout pour cela, et a finalement trouvé une solution qui fonctionne pour nous. L'activation des constructions parallèles (Sur osx: préférences -> compiler -> gradle -> "Compiler des modules indépendants en parallèle") et permettant de "faire projet automatiquement' a apporté vers le bas à partir de ~1 min à ~20 sec. Grâce à /u/Covalence

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

25voto

Lionleaf Points 711

J'ai récemment acheté un nouveau disque SSD et suis passé de Windows à Linux.Mon temps de construire sont maintenant un ordre de grandeur plus rapide, et plus ennuyeux.

Si elle ne répond pas directement à votre question de savoir pourquoi elle soit plus lente que d'eclipse, il montre que le processus est un disque borné et une mise à niveau vers un disque SSD pourrait être un (un peu cher) solution. Je devine qu'il y aura des gens googler le problème et de se retrouver ici, qui pourrait apprécier mon expérience.

15voto

Yster Points 109

Il suffit de créer un fichier nommé gradle.propriétés dans le répertoire suivant:

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

Ajoutez cette ligne dans le fichier:

org.gradle.daemon=true

Pour moi, la vitesse est égale à Eclipse.

Source: https://www.timroes.de/2013/09/12/speed-up-gradle/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X