Зборка і запуск прыкладання з дапамогай Gradle і Android Studio павольней, чым з дапамогай Eclipse,

У мяне ёсць мульты-праект (~ 10 модуляў) з якіх будаўніцтва займае каля 20-30 секунд кожны раз. Калі я націскаю Run ў Android Studio, я павінен чакаць кожны раз, каб аднавіць дадатак, якое вельмі павольна.

Ці можна аўтаматызаваць працэс будаўніцтва ў Android Studio? Ці ў вас ёсць якія-небудзь парады аб тым, як зрабіць гэты працэс хутчэй?

У Eclipse, дзякуючы аўтаматычнага будынку, працуе адзін і той жа праект на эмулятары займае каля 3-5 секунд.

Гэта мой build.gradle файл (модуль дадатку):

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
    }
}
438
Час траціцца тут, хутчэй за ўсё, у фазе Dexing. На жаль, марка Android Studio, здаецца, выканаць чысты кожны раз, у выніку чаго раней dex'd файлы, якія трэба выдаліць. Буду спадзявацца, што мы ўбачым Інкрыментны зборкі выпраўленні ў бліжэйшы час.
дададзена аўтар Richard J. Ross III, крыніца
@AndrewS Я лічу, гэта шкада, што нам трэба змяніць нашу аперацыйную сістэму толькі, каб атрымаць Gradle працаваць на разумнай хуткасці ў параўнанні з папярэднімі інструментамі.
дададзена аўтар Richard Le Mesurier, крыніца
я мадэрнізаваў баран ад 4 да 8 Гб і пераносяць у 50 секунд замест 54 секунд раней, выратаваў мне чатыры секунды кожны раз
дададзена аўтар S H, крыніца
@AndrewS: «Ці гэта паказвае на праблему з тым, як Android студыя працуе пад асяроддзі Windows?» - б'е мяне. Я не запуск Windows шмат. «Пры закрыцці Android спажывання студыі памяці падае да ад 1,4 да 1,6 Гбайта» - што таксама варта выключыць дэман Gradle, калі я разумею паводзіны Android праграме Studio правільна. «Вы прымаеце пад увагу, што Android-студыя таксама выклікае Java.exe пабегаць надзвычай высокай нагрузкай на памяць, так што само па сабе не можа выглядаць так дрэнна? - так.
дададзена аўтар CommonsWare, крыніца
@AndrewS: My 8GB чатырох'ядравы Ubuntu ноўтбук патрэбен толькі 518MB аператыўнай памяці для Android Studio, з «Прывітанне, свет» -sized адкрытага праектам, поўнымі зборкамі праекта і запусціць яго на эмулятары (эмулятар ўяўляе сабой асобны 310MB і тое, што я лічу, гэта Gradle дэмана іншым асобным 310MB). Можа быць, ёсць нешта не да ладу з устаноўкай.
дададзена аўтар CommonsWare, крыніца
Калі ласка, майце на ўвазе, што ні Gradle на аснове пабудовы сістэмы, ні Android студыі з'яўляецца вытворчасць класа ў гэты час.
дададзена аўтар CommonsWare, крыніца
@Richard Le Mesurier. Я згодзен. На самай справе я павінен быў абнавіць свой уласны кампутар значна ў памеры 600 даляраў. Зараз з High Spec Core i7, 16GB або бараном і жорсткім дыскам SSD я атрымаць від «пашыранай» прадукцыйнасці я чакаю ад бліскучых новых так званых «лепшых» інструментаў распрацоўкі.
дададзена аўтар Andrew S, крыніца
@CommonsWare Ok дзякуй за гэтую інфармацыю. Падобна на тое, што я, магчыма, прыйдзецца змяніць сваю аперацыйную сістэму.
дададзена аўтар Andrew S, крыніца
@CommonsWare Дзякуй за адказ. Цікава ці гэта паказвае на праблему з тым, як Android студыя працуе пад асяроддзі Windows? Я кажу гэта таму, што толькі з дапамогай браўзэра з 5 адкрытымі укладкамі і Android студыя праштурхоўвае яго да 3,75. Пры закрыцці Android спажывання студыі памяці падае да ад 1,4 да 1,6 Гбайта. Я мяркую, што калі б я запусціў яго на скрынцы Linux, я хацеў бы атрымаць тое ж перавага прадукцыйнасці тады? Вы прымаючы пад увагу, што Android-студыя таксама выклікае Java.exe пабегаць надзвычай высокую нагрузку памяці, так што ў адзіночку можа не выглядаць дрэнна?
дададзена аўтар Andrew S, крыніца
@CommonsWare добра, няма ніякага апраўдання, зараз мы на версіі 1.02, але яе да гэтага часу сур'ёзнай праблемай. З Android студыя працуе мой 4GB чатырох'ядравы ноўтбук выкарыстоўвае каля 3.75gb свайго барана проста трымае адзін асобнік прывітанне свет праекта. Акрамя таго, у выніку вельмі млявы. Для мяне гэта азначае, сур'ёзны і ісці канструктыўны недахоп. Я спадзяюся, што рэчы будуць вырашаны ў бліжэйшы час.
дададзена аўтар Andrew S, крыніца
У той жа час, ці ёсць просты спосаб сказаць змены задач Gradle па змаўчанні такім чынам, што яны не заўсёды выконваюць чысты?
дададзена аўтар sigmabeta, крыніца

27 адказы

апаратныя сродкі

Я прашу прабачэння, але абнаўленне развіцця станцыі на SSD і тону аператыўнай памяці, верагодна, большы ўплыў, чым пункты ніжэй, разам узятае.

інструменты версіі

Павышэнне эфектыўнасці пабудовы мае адным з асноўных прыярытэтаў для каманд распрацоўнікаў, таму пераканайцеся, што вы карыстаецеся апошнія Gradle і Android Gradle убудова .

файл канфігурацыі

Стварыце файл з імем gradle.properties у любы каталог ўжываецца:

  • /home//.gradle/ (Linux)
  • /Users//.gradle/ (Mac)
  • C:\Users\\.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 ўласцівасці працуе лакальным, калі вы змесціце іх у projectRoot \ gradle.properties і ва ўсім свеце, калі вы змесціце іх у USER_HOME \ .gradle \ gradle.properties . Ўласцівасці прымяняюцца пры выкананні Gradle задач з кансолі або непасрэдна ад ідэі:

IDE Settings

Можна наладзіць інтэграцыю Gradle-IntelliJ з графічнага інтэрфейсу налады IDE. Уключэнне «аўтаномная праца» (праверка адказ ад Yava ніжэй) адключыць рэальную сетку запыты на кожны «сінхранізацыя Gradle файл».

IDE Settings

Native мульты-Dex

Адзін з самых павольных крокаў APK зборкі з'яўляецца пераўтварэнне Java байткод ў адзін файл Dex. Ўключэнне роднай multidex (minSdk 21 для адладкі будуе толькі) дапаможа набор інструментаў для памяншэння аб'ёму працы (праверце адказ ад Аксель Willgert </а > ніжэй).

залежнасці

Prefer @aar залежнасці over library sub-projects.

Пошук AAR пакет на

mavenCentral отн jCenter або выкарыстаць jitpack.io пабудаваць любую бібліятэку з GitHub. Калі вы не рэдагуеце крыніцы бібліятэкі залежнасцяў вы не павінны будаваць яго кожны раз з вашымі крыніцамі праекта.

антывірус

Consider to exclude project and cache files from антывірус scanning. This is obviously a trade off with security (don't try this at home!). But if you switch between branches a lot, then антывірус will rescan files before allowing gradle process to use it, which slows build time (in particular AndroidStudio sync project with gradle files and indexing tasks). Measure build time and process CPU with and without антывірус enabled to see if it is related.

прафіляванне зборкі

Gradle мае убудаваную падтрымку прафіляванне праектаў . Розныя праекты выкарыстоўваюць розныя камбінацыі модуляў і прыстасаваныя сцэнары. Выкарыстанне - профіль дапаможа знайсці вузкія месцы.

428
дададзена
Я бедны і код для ежы і жыць на трушчобы з shittiest Інтэрнэт. Гэта рашэнне не адносіцца да мяне. Грустно ....
дададзена аўтар Neon Warge, крыніца
аб @aar depedencies: { '. com.android.support:support-v4:21.0 + кампіляваць} з выкарыстаннем кода <�напрыклад> залежнасцяў павольнае рашэнне? не абавязкова разумець
дададзена аўтар younes0, крыніца
« Не выкарыстоўвайце функцыю аўтаматычнага імпарту (пакуль) »> Ці можаце вы растлумачыць, дзе гэтая функцыя ўключаная/адключаная ў Android Studio? Я не 100% упэўнены, што вы маеце на ўвазе.
дададзена аўтар Duncan Jones, крыніца
Ну, яго запаволіць больш чым калі-небудзь пасля таго, як прытрымлівацца гэтых крокаў. Android студыя адстой !!
дададзена аўтар dhams, крыніца
Я ужыў усе аптымізацыі, і гэта па-ранейшаму займае каля 20 секунд, каб пабудаваць HelloWorld APK, у параўнанні з 2-3 секунд у Eclipse.
дададзена аўтар Pawel, крыніца
Нішто не кажа кампетэнтная порт Windows, як у вашых складаюць скрытыя дырэкторыі карыстальніка верхняга ўзроўню.
дададзена аўтар Glenn Maynard, крыніца
@HenriquedeSousa Чаму б вы паставілі нейкі лепшае апісанне «здабываючы retrolambda» у адказ на іншых, каб атрымаць доступ?
дададзена аўтар Arcane Engineer, крыніца
Imaging, вы дадалі бібліятэку, як гэта: github.com/novak/numberpicker . Гэта мае значэнне, забяспечваючы кодавае рашэнне для задачы, але аўтар не апублікаваў яго ў любым месцы, як Maven або jCenter. Цяпер вы альбо прынесці гэтую бібліятэку ў якасці крыніц у свой праект і пабудаваць яго кожны раз, калі асноўны праект будуе альбо сабраць яго аднаразовым і здзяйсняць толькі @aar у рэпазітар праекта. Так што гэта сапраўды выбар крыніцы/бінарнае залежнасць. Калі вы не рэдагуеце крыніца, які вы павінны ўзяць з сабой залежнасць у скампіляваных двайковых файлаў. Для звычайных бібліятэк ява гэта значыць .jar для андроіда бібліятэк, з'яўляецца .aar
дададзена аўтар Sergii Pechenizkyi, крыніца
Чаму вы не выкарыстоўваеце Eclipse, то? Чаму мы параўноўваючы сістэму зборкі з IDE? Gradle пра функцыі і магчымасцях для распрацоўніка. Прадукцыйнасць толькі адна асаблівасць гэтага. Паспрабуйце наладзіць Ant (я мяркую, што вы карыстаецеся Ant з Eclipse), каб апрацоўваць ўсе выпадкі, якія Gradle будаваць можа апрацоўваць і дазваляе параўнаць, колькі часу гэта будзе трэба. Gradle, Ant, Maven, Buck, Базэл, Sbt ёсць дастатковы выбар для распрацоўшчыкаў Android у гэтыя дні.
дададзена аўтар Sergii Pechenizkyi, крыніца
Гэта налада праекта> Gradle. Глядзіце скрыншот ніжэй: i.stack.imgur.com/wrwgo.png
дададзена аўтар Sergii Pechenizkyi, крыніца
На самай справе, вы павінны зрабіць гэта ў першую чаргу. Я рушыў услед вашаму радзе і адказаў. Дзякуючы.
дададзена аўтар Henrique de Sousa, крыніца
Мы высветлілі пытанне: ён быў retrolambda, які змушае будаваць усе (так што не было ніякага перавагі ў incrmental не будуе). Пасля выдалення retrolambda праблема была вырашана. Спадзяюся, што гэта дапамагае каму-то яшчэ.
дададзена аўтар Henrique de Sousa, крыніца
@ 3c71, якія вы зафіксавалі праблему? Я на той жа лодцы, 1 дадатак, 3-х праектаў, і гэта займае 2 ~ 3
дададзена аўтар Henrique de Sousa, крыніца
Я ўсё налады аптымізацыі, як апісана, аднак у Android Studio гэта займае ад 3 да 4 хвілін, каб пачаць маё дадатак, у той час як гэта было каля 30 секунд у Eclipse. Дзярмо. Толькі 12 праектаў, адзін сінгл прыкладанне для запуску! Android DEV стаў настолькі грувасткім зараз, і гэта больш, чым праз год.
дададзена аўтар 3c71, крыніца
@HenriquedeSousa, на жаль, няма. Я павышаны да апошняй AS (ад канарэйкі канала), апошняе Gradle бэта (1.3b3 я думаю), гэта зводзіць мяне з розуму. Гэтая праблема адсочвання сапраўды дапамагае неяк, але ёсць і іншыя недахопы: code.google. кім/р/Android/пытанні/дэталі? ID = 80272 . Выкарыстанне такіх, мне ўдалося зьменшыць час зборкі да 45 секунд, на жаль, у мяне ёсць, каб запусціць яго ў два разы для ўсіх залежнасцяў, якія будуць абноўлены правільна :(
дададзена аўтар 3c71, крыніца
Native multidexing ўключана па змаўчанні да таго часу, пакуль вы працуеце ў апошні (на дадзены момант 3.1) версіі Android Studio і вы працуеце на прыладзе з узроўнем АПА 21 або вышэй. Android студыя бяжыць + Усталёўкі будуць аўтаматычна перайсці на наступны ўзровень АПА ў працэс зборкі і ўключыць ўласную мульты Dexing па меры неабходнасці.
дададзена аўтар AndrewPK, крыніца
Я хацеў бы дадаць наступнае ў раздзел Hardware: RAM мае важнае значэнне, і 16GB мой мінімум у цяперашні час. Прапрацаваўшы ў 3-х вялікіх памерах праектаў (для даведкі: +200 класаў ~ 500 LOC, гульнявых паслугі, гуавы, і/або іншых «цяжкіх» залежнасці), я заўважыў, абнаўленне аператыўнай памяці, у прыватнасці, 8 Гб да 16 Гб скакаць, мае вырашальны ўплыў - думаю, 10мин да 30-х гадоў. Акрамя таго, гэтая несувымерныя розніца ў прадукцыйнасці была адзначана як на SSD'd, I7 машыны пад Windows, так і Linux, працуе мой звычайны працоўная прастора рэчы (20tabs Chromium, HQ Spotify, выпадковы TextEditor і CLI/Putty/SSH ці два на баку халастога ходу вакол )
дададзена аўтар leRobot, крыніца
няма Параметр - дэман больш не існуе. Вы ўсё яшчэ можаце выкарыстоўваць канфігурацыйны файл, каб атрымаць дэман паводзін.
дададзена аўтар EntangledLoops, крыніца
якія убудовы адключыць?
дададзена аўтар user3575963, крыніца

Вы можаце ігнараваць Gradle праверкі абнаўлення да бягучай даты.

enter image description here

For Windows running Android Studio 1.5: Go to File -> Settings -> Build, Execution, Deployment -> Build tools -> Gradle -> Check Offline work (as shown in image)

ўніз ад ~ 30 + сек да ~ 3 сек

147
дададзена
@EhteshChoudhury гэта вельмі дзіўна. Уся DEV сераду Gradle/Android Студыя настолькі slooooooow. Большасць людзей думаюць, што гэта павольна з-за Java. Я на баку сервера Java Dev на IDEA і рэчы працуюць вельмі гладка.
дададзена аўтар stepanian, крыніца
То даволі халаднавата. Гэта нашмат хутчэй. Але што ж гэта ламаць?
дададзена аўтар John Ballinger, крыніца
Ці ёсць па змаўчанні гэта выкарыстоўваць залежнасці кэшаваныя першым, перш чым праз сетку? Я не магу сабе ўявіць гэтую праверку на наяўнасць абноўленых залежнасцяў кожны раз Gradle запускаецца. Гэта дзіўна.
дададзена аўтар Ehtesh Choudhury, крыніца
Лепшае рашэнне. Ці магу я ведаць пабочныя эфекты гэтага рашэння
дададзена аўтар Kavin Varnan, крыніца
@JohnBallinger аўтаномнай працы - выкарыстоўвайце гэты сцяжок, каб працаваць з Gradle ў аўтаномным рэжыме. У гэтым выпадку Gradle будзе выкарыстоўваць залежнасці ад кэша. Gradle не будзе спрабаваць атрымаць доступ да сеткі для выканання дазволу залежнасцяў. Калi патрэбныя залежнасці няма ў кэшы залежнасцяў, а выкананне зборкі пацерпіць няўдачу. (Крыніца: jetbrains.com/idea/help/gradle-2.html</а>)
дададзена аўтар cprcrack, крыніца
Гэта памяншае мой час зборкі ад некалькіх хвілін да секунд .. дзякуй
дададзена аўтар Bruce, крыніца
дзякуй яна працавала
дададзена аўтар masoud Cheragee, крыніца

Searched everywhere for this and finally found a solution that works for us. Enabling parallel builds (On OSX: preferences -> compiler -> gradle -> "Compile independent modules in parallel") and enabling 'make project automatically' brought it down from ~1 min to ~20 sec. Thanks to /u/Covalence.

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

33
дададзена
Майце на ўвазе, што гэта дапамагае, па-відаць, толькі калі ў вас ёсць некалькі незалежных модуляў/праектаў. Я праверыў гэта на адным дадатку модуля, і гэта не мае ніякага значэння.
дададзена аўтар Sam, крыніца
У мяне ёсць даволі вялікі праект, і гэта займае 2 - 3 хвіліны на MacBook Pro 2012 Core i7, 8 Гб аператыўнай памяці. Гэта нармальна?
дададзена аўтар Sermilion, крыніца
20 секунд па-ранейшаму вельмі павольна.
дададзена аўтар Johannes Brodwall, крыніца

Я нядаўна купіў новы SSD і выйшаў з Windows, каб Linux.My будуеце раз цяпер на парадак хутчэй, і больш не раздражняе.

Хоць гэта не наўпрост адказаць на ваша пытанне, чаму гэта павольней, чым зацьменне, гэта паказвае, што працэс дыска абмежаваны і абнаўлення на SSD можа быць (некалькі даражэй) рашэнне. Я мяркую, што там будуць людзі трошкі гэтае пытанне і сканчаюцца тут, якія могуць ацаніць свой вопыт.

23
дададзена
Распрацоўшчыкі па маёй камандзе ёсць хуткі SSD-назапашвальнікі ў хуткіх машынах з вялікай колькасцю памяці. Для нетрывіяльнага прыкладання, перадыслакацыі пасля малаважнага змены коды ўсё яшчэ займае каля ~ 45 секунд, у параўнанні з перадысьлякацыяй амаль імгненна ў Eclipse. Нават працуе раўніну, ня Android JUnit недазваляльна павольна. «Абнаўленне» у Android Studio і Gradle было вялікае паніжэннем рэйтынгу да гэтага часу. : - /
дададзена аўтар spaaarky21, крыніца
@Lionleaf наколькі хутчэй пераключэнне з вокнаў на Linux?
дададзена аўтар younes0, крыніца
У маім выпадку пераключэнне з АС Windows на Linux прывяло да 40% хутчэй Android будуе ... так што гэта вызначана варта
дададзена аўтар kosiara - Bartosz Kosarzycki, крыніца
@ Younes0 я не ведаю. Я перайшоў на Linux ў той жа час я пераключыўся на SSD. Я не кажу, што гэта мае якое-небудзь станоўчае ўплыў, гэта як раз тыя дзве зменныя я змяніў для паскарэння.
дададзена аўтар Andreas Løve Selvik, крыніца
Я другі, што сказаў @Bartosz Kosarzycki. Я ў канчатковым выніку працуе ў віртуальную машыну Ubuntu з VirtualBox на маім Dev машыны. ~ 54 другі зборкі на вокнах, ~ 7sec для той жа зборкі ўнутры віртуальнай машыны на тым жа абсталяванні. Вар'яцкае убыстрение пры пераходзе на Linux.
дададзена аўтар Eric C., крыніца

Пры выкарыстанні сэрвісаў Google Play, у залежнасці ад толькі бібліятэк вам трэба замест цэлага згустку можа зрабіць рэчы хутчэй.

Калі толькі патрэба карты, выкарыстоўвайце:

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

замест:

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

Апошняе прыводзіць 20K Метады (гл блог) у шляху да класаў, якія могуць перакуліць разлічваць агульны метад больш 64k.

Гэта прымусіць выкарыстоўваць ProGuard або multidex нават для адладкі будуе. Для аднаго з маіх праектаў я меў наступны будаваць раз

  • multidex build (with supportlibrary) ~40sec
  • proguard build ~20sec
  • build when method limit < 64k ~5sec

If developing on sdk 21+, it would possible to optimize multidex builds as stated in the android documentation

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
дададзена
Замест кампіляцыі ўсіх плэй-сэрвіс бібліятэка, я скампіляваныя толькі карты і размяшчэнняў і адключыў multidex . Я адчуваю вялікую розніцу. дзякуй +1
дададзена аўтар Sami Eltamawy, крыніца

<�Моцны> Паскорыць Gradle пабудаваць у Android Studio 3.0

Заўсёды адчуваю, што вы чакаеце зборкі завяршыць у Android Studio за некалькі хвілін? Я таксама. І гэта вельмі раздражняе. На шчасце, ёсць некалькі спосабаў, якія вы можаце выкарыстоўваць, каб палепшыць гэта. Android выкарыстоўвае Gradle для будаўніцтва. Апошняя версія 2.14.1 мае велізарны прырост прадукцыйнасці ў параўнанні з папярэднімі версіямі (гл Каментароў да выпуску дэталяў).

Step 1: Update Gradle version An easier way to accomplish this is to go to: Open Module Settings (your project) > Project Structure

enter image description here

<�Моцны> UPDATE

Change to Gradle version: 4.1 and Change to Android Plugin Version: 3.0.0

enter image description here

Спампаваць дыстрыбутыў Gradle рэліз ад https://services.gradle.org/distributions/gradle -3.1-all.zip І скапіяваць яго ў тэчку Gradle:

enter image description here

Last step is to add your discribution in Settings > Gradle

enter image description here

Не забудзьцеся націснуць кнопку Ужыць, каб захаваць змены.

Step 2: Enable Offline mode, Gradle daemon and parallel build for the project Offline mode tells Gradle to ignore update-to-date checks. Gradle asks for dependencies everytime and having this option makes it just uses what is already on the machine for dependencies. Go to Gradle from android studio Setting and click in Offline work box.

enter image description here

  1. Перайдзіце да Compiler ад андроіда студыі Настройкі і дадаць «- ў аўтаномным рэжыме». У камандным радку поле і націсніце кнопку Compile незалежных модуляў паралельна

enter image description here

Наступны крокам з'яўляецца ўключэнне дэмана Gradle і паралельнай зборкі для вашага праекта. Паралельна будуе прычыніць свае праекты з дапамогай некалькіх модуляў (мульты-праект заснаваны ў Gradle), якія будуць пабудаваны паралельна, якія павінны зрабіць вялікія ці модульныя праекты будаваць хутчэй.

enter image description here

Гэтыя налады могуць ўключаны па modifiing файл з імем gradle.properties ў каталогу Gradle сцэнарыяў (г.зн. ~/.gradle/gradle.properties) .Некаторыя з гэтых варыянтаў (напрыклад Скомпилируйте модулі паралельна) даступныя з Android Studio, а таксама уключаны там па змаўчанні, але змясціўшы іх у gradle.properties файл будзе ўключаны іх пры зборцы з тэрміналу, а таксама пераканаўшыся, што вашы калегі будуць выкарыстоўваць адны і тыя ж параметры. Але калі вы працуеце ў камандзе, часам вы не можаце здзейсніць гэты матэрыял.

# 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

Выкарыстанне дэмана зробяць зборкі запуску хутчэй, так як ён не будзе мець для запуску ўсяго прыкладання Gradle кожны раз. Gradle Daemon не ўключаны па змаўчанні, але гэта рэкамендуецца заўсёды дазваляе гэта для машын распрацоўнікаў (але пакінуць яго выключаным для бесперапынных сервераў інтэграцыі). FAQ пра гэты рэжым можна знайсці тут https://docs.gradle.org/current/ UserGuide/gradle_daemon.html . Паралельна будуе ўстаноўка можа быць небясьпечнай для некаторых праектаў. Гэта патрабаванне заключаецца ў тым, што ўсе вашыя модулі павінны быць раз'яднаныя ці ваша зборка можа не (гл enter image description here

Дадаць гэтую опцыю для андроіда блока:

dexOptions {
    incremental true
}

У тым, што dexOptions блок можна таксама пазначыць памер кучы для працэсу DEX, напрыклад:

dexOptions {
    incremental true
    javaMaxHeapSize "12g"
}

Дзе «12г» з'яўляецца 12GB памяці. Дадатковыя звесткі аб гэтым можна знайсці тут google.github.io/android-gradle-dsl/current/ Акрамя таго, можна наладзіць параметры Gradle ў файле налад, напрыклад, павялічыць максімальны памер кучы ў выпадку, калі ў вас ёсць вялікі праект:

# 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

Глядзець увесь спіс параметраў тут: https://docs.gradle.org /current/userguide/userguide_single.html#sec:gradle_configuration_properties для дэталяў.

Step 4: Disable Antivirus Consider to exclude project and cache files from antivirus scanning. This is obviously a trade off with security. But if you switch between branches a lot, then antivirus will rescan files before allowing gradle process to use it, which slows build time (in particular Android Studio sync project with gradle files and indexing tasks). Measure build time and process CPU with and without antivirus enabled to see if it is related. I hope this helps. Leave a comment if you have any question or some other tips for improving the build performance.

helpful link

15
дададзена

Прыняты адказ для старых версій андроіда студыі і большасць з іх усё яшчэ працуе ў цяперашні час. Абнаўленне Android Studio зрабіў гэта крыху хутчэй. Не трэба пазначыць памер кучы, як ён будзе аўтаматычна павялічвацца з павелічэннем XMS і Xmx. Вось некаторыя мадыфікацыі з VMoptions

  1. In bin folder there's a studio.vmoptions file to set the environment configuration. In my case this is studio64.vmoptions Add the following lines if they're not added already and save the file. In my case I've 8GB RAM.

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

    • Check compile independent modules in parallel
    • In command-line Options write: --offline
    • Check Make project automatically
    • Check configure on demand

У выпадку выкарыстання Макінтош, спачатку я не мог знайсці vmoptions. Ва ўсякім выпадку, вось добра артыкул пра тое, як мы можам змяніць vmoptions ў MAC OSX . Цытаванне з гэтага артыкула тут.

Адкрыйце тэрмінал і змесціце гэтую каманду, каб адкрыць vmoptions ў MAC OSX:

open -e /Applications/Android\ Studio.app/Contents/bin/studio.vmoptions
15
дададзена
па стане на AS 2.3.2 вы можаце змяніць параметры VIM па Помощь-> Edit Custom Options Vm
дададзена аўтар Sam, крыніца
Гэта правільнае рашэнне ў 2016 годзе
дададзена аўтар fillobotto, крыніца

Проста стварыце файл з імем gradle.properties ў наступным каталогу:

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

Дадайце гэты радок у файл:

org.gradle.daemon=true

Для мяне хуткасць цяпер роўная Eclipse.

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

14
дададзена
@Dharmik: Можа быць, вы ўсталявалі Android Studio, але з іншай назвай. У адваротным выпадку, гэта не правільна ўсталяваны, я думаю.
дададзена аўтар Yster, крыніца
Не, гэта іншае пытанне .. «.gradle» сістэмная папка была схаваная .. Так што я іду ў Go => Go To Folder і чым я знайшоў .gradle тэчкі .. Дзякуй за хуткі адказ ..
дададзена аўтар Dharmik, крыніца
Я не ў стане бачыць .gradle тэчку ў макінтошы. Як адкрыць?
дададзена аўтар Dharmik, крыніца

Вы маглі б зрабіць гэты працэс хутчэй, калі вы карыстаецеся Gradle з каманднага радка. Існуе шмат аптымізацыі, каб зрабіць для распрацоўшчыкаў IDE. Але гэта толькі ранняя версія.

Для атрымання больш падрабязнай інфармацыі чытайце гэтай дыскусіі на г + з некаторымі з дэвов.

12
дададзена
Гэта, здаецца, каб быць праўдай, нават цяпер ў 2016 годзе
дададзена аўтар Leonardo Acevedo, крыніца

Калі хтосьці працуе праект, які сінхранізаваны з дапамогай Subversion, і гэта ўсё яшчэ адбываецца, я думаю, што гэта можа запаволіць працэс дакументазвароту ў Android Studio. Напрыклад, калі ён працуе вельмі павольна час: пракрутка у класе, xml і г.д., у той час як маё дадатак па-ранейшаму працуе на маім прыладзе.

  • Go to Version Control at Preferences, and set from Subversion to None.enter image description here
10
дададзена
Калі хто-то яшчэ з дапамогай Subversion, яны павінны перайсці на Git або Mercurial
дададзена аўтар Leonardo Acevedo, крыніца
Вы эканоміце свой дзень: 2/4 мін -> 15сек (я адключыў Tortoise HG для праекта).
дададзена аўтар kaftanati, крыніца

<�Моцны> Абнаўленне Пасля Android-студыя 2,3

Усе адказы з'яўляюцца вялікімі, і я заклікаю выкарыстоўваць гэтыя метады з гэтым для павышэння хуткасці зборкі.

Пасля выхаду андроіда 2.2 верасня 2016 года, Android выпусціла эксперыментальная пабудаваць функцыю кэша для паскарэння Gradle будаваць працу, якая зараз афіцыйна з Android Studio 2.3 Canary. (Афіцыйная нота Release)

Ён уводзіць новую функцыю кэша зборкі, якая дасць магчымасць па змаўчанні, можа паскорыць час зборкі (уключаючы поўны будуе, дадатковае будуе, і імгненнага запуску) шляхам захавання і паўторнага выкарыстання файлаў/каталогаў, якія былі створаныя ў папярэдніх зборках таго ж або іншага Android праект.

<�Моцны> Як выкарыстоўваць:

Дадайце наступны радок у 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.

Clean the cache:

  • There is a new Gradle task called cleanBuildCache for you to more easily clean the build cache. You can use it by typing the following in your terminal:

    ./gradlew cleanBuildCache

  • OR You can clean the cache for Android studio 2.2 by deleting all the files store at location

    C:\Users\\.android\build-cache

7
дададзена

Пасля змены налад гэта мая працягласць кампіляцыі 10 хвілін змянілі да ~ 10 секунд.

<�Моцны> Крок 1:

Settings(ctrl+Alt+S) ->

Build,Execution,Deployment ->

Compiler ->

type "--offline" in command-line Options box.

Step 2:

check the “Compile independent modules in parallel” checkbox.

& click Apply -> OK

enter image description here

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

<�Моцны> Недахопы:

Вы не будзеце ў стане пацягнуць ўніз апошнія версіі залежнасцяў, указаных у файле build.gradle. Яна працуе хутчэй, таму што ён выкарыстоўвае кэшаваць здымак гэтых імпартаваных бібліятэк.

Important Note: When you deploy the application remove this settings & build with latest versions of dependencies.

6
дададзена

Вырашана шахта з

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

Gradle зборак пайшлі ад 8 хвілін да 3 секунд.

5
дададзена

Проста яшчэ адзін савет прадукцыйнасці imporvement:

Android Studio 3.0 includes new DEX compiler called D8.

«Вудзі кампілятар ў асноўным працуе пад капотам у вашым развіцці прыкладанняў з дня ў дзень, але гэта непасрэдна ўплывае на час зборкі прыкладання, .dex памер файла і час выканання прадукцыйнасць.»

«І пры параўнанні новага D8 кампілятар з бягучым DX кампілятарам, D8 кампілюе хутчэй і выводзіць меншыя .dex файлы, у той час як якія маюць такую ​​ж або больш прыкладанняў прадукцыйнасць падчас выканання.»

D8 не з'яўляецца абавязковым - сапраўды выкарыстоўваць яго, мы павінны паставіць на gradle.properties праекта

android.enableD8=true

More informations: https://android-developers.googleblog.com/2017/08/next-generation-dex-compiler-now-in.html

PS. Гэта мой час паляпшэння выяўлення зборкі прыкладна на 30%.

3
дададзена

Вось што дапамагло гэта пачатак Android праграміст (былы прафесійны праграміст, гадоў назад) у паскарэнні Android Studio 2.2. Я ведаю, што гэта пераспяваўшы, але толькі <�моцны> абагульняючы у адным месцы.

Initial будуе ўсё яшчэ можа быць жорстка павольна, але перазагружаецца з запушчаных прыкладанняў цяпер, як правіла, вельмі памяркоўна. Я выкарыстоўваю неаптымальнай ПК: AMD Quad-Core A8-7410 працэсар, 8 Мб аператыўнай памяці, без SSD HD, Win 10. (І гэта мой першы Перапаўненне стэка праводкі ....;)

IN SETTINGS -> GRADLE:

ды для «Offline працы» (гэта, бадай, самая налада імпарту).

IN SETTINGS -> COMPILER:

ды для «Кампіляцыя незалежных модуляў паралельна» (не ўпэўнены, калі гэта робіць на самай справе дапаможа выкарыстоўваць шмат'ядравы ЦП).

IN GRADLE SCRIPTS, "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

ALSO IN GRADLE SCRIPTS, "gradle.properties (Project Properties)":

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

org.gradle.parallel = дакладна org.gradle.daemon = дакладна

Additionally, testing on a physical device instead of the emulator is working well for me; a small tablet that stands up is convenient.

3
дададзена

Гэтая ўстаноўка ідзе вельмі хутка для мяне (Каля 2 секунд зборкі)

<�Моцны> build.gradle

android {

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

<�Моцны> gradle.properties

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

<�Моцны> мой кампутар:

  • CPU Intel (R) Pentium (R) CPU G2030 @ 3,00 Ггц, 3000 МГц, 2 procesadores principales, 2 procesadores lógicos
  • 64
  • Microsoft Windows 7 Professional
  • <�Літый> (АЗП) 16,0 ГБ </літый>

project files
- All located in local HD

1
дададзена

Вы можаце паспрабаваць адкрыць на правай баку студыі ў Gradle меню і сабраць толькі модулі, якія былі зменены, а затым выканаць каманду ўстаноўкі. Пры націску перспектывы яна збірае ўсе, незалежна ад любых змяненняў, якія вы зрабілі ў код яго зборка

1
дададзена

Выканайце наступныя дзеянні.

  1. Enable offline mode : Please check below print screen.

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

  2. Enable Instant Run : Please check below print screen.

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

    If you want to learn more about instant run please visit android developer site.

1
дададзена

Прывітанне, я ведаю, што гэта вельмі і вельмі позна адказ, але, магчыма, дапамагчы каму-то
у маім выпадку я выкарыстаў

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

ў маім дадатку Gradle
залежнасцяў але ў адным з маіх бібліятэк гэта было

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

пасля змены ўсіх да апошняй версіі мая праблема вырашана.

0
дададзена

A trivial change (to a resoruce xml) still took 10 minutes. As @rivare says in his answer, a command line build is mutch faster (took this down to 15 seconds).
Here are some steps to at least make a trivial build fast from the command line for Windows.

  1. Go to your projects root (where the gradlew.bat is):

    cd c:\android\MaskActivity

  2. execute the build:

    gradlew assembleDebug

  3. uninstall the apk from the phone directly (drag it to uninstall).

  4. When the build is finished, kill the BIG java process using Windows Task Manager.

АБО калі ў вас ёсць прылады UNIX на кампутары з Windows:

ps

"PID" «s паказаны:

kill -9 
  1. Now install your apk:

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

0
дададзена

Пасля крокаў зробіць гэта ў 10 разоў хутчэй і скараціць час зборкі 90%

Спачатку стварыце файл з імем gradle.properties ў наступным каталогу:

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

Дадайце гэты радок у файл:

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

І праверыць гэтыя опцыі ў Android Studio

enter image description here

0
дададзена

У нашым канкрэтным выпадку, праблема была з-за наяўнасці ў retrolambda убудова, які вымусіў усе праекты і подпроекты перакампіляваць кожны раз мы спрабавалі запусціць наша дадатак, нават калі код ня быў зменены ў нашых асноўных модуляў.

Выдаленне <�моцны> retrolamba ўсталяваў яе для нас. Спадзяюся, што гэта дапаможа камусьці.

0
дададзена

<�Моцны> Для запуску Android envirorment на нізкай машыне канфігурацыі.

  1. Close the uncessesory web tabs in browser
  2. For Antivirus users, exclude the build folder which is auto generated
  3. Android studio have 1.2 Gb default heap can decrease to 512 MB Help > Edit custom VM options studio.vmoptions -Xmx512m Layouts performace will be speed up

  4. For Gradle one of the core component in Android studio Mkae sure like right now 3.0beta is latest one

<�Моцны> Ніжэй парады могуць паўплываць на якасць кода так, калі ласка, выкарыстоўвайце з засцярогамі:

  1. Студыя ўтрымлівае бяспечны рэжым харчавання пры ўключэнні на ім будуць закрываць фонавыя аперацыі, пух, код complelitions і гэтак далей.

  2. Вы можаце запусціць ўручную lintcheck пры неабходнасці ./gradlew пуху

  3. Большасць выкарыстоўваюць Android эмулятараў на сярэднім спажываюць 2 ГБ аператыўнай памяці, так што калі магчыма выкарыстанне фактычнага Android прылада гэта дасць магчымасць зменшыць нагрузку на рэсурс на вашым кампутары. У якасці альтэрнатывы вы можаце паменшыць аб'ём аператыўнай памяці эмулятара і ён будзе аўтаматычна паменшыць спажыванне памяці віртуальнай на вашым кампутары. Вы можаце знайсці гэта ў канфігурацыі віртуальнага прылады і папярэдняй налады.

  4. Gradle аўтаномны рэжым з'яўляецца функцыяй для паласы прапускання абмежаваных круг карыстальнікаў, каб адключыць загрузку залежнасцяў зборкі. Гэта паменшыць фонавую аперацыю, якая дапаможа павысіць прадукцыйнасць студыі Android.

  5. Android студыя прапануе аптымізацыю для кампіляцыі некалькіх модуляў паралельна. На нізкіх машынах RAM гэтая функцыя, верагодна, аказваюць негатыўны ўплыў на прадукцыйнасць. Вы можаце адключыць яго ў дыялогу налад кампілятара.

0
дададзена

выкарыстоўвайце гэты Судо DPKG --add-архітэктуры i386 Судо абнаўленне APT-з'явіцеся Sudo APT-атрымаць ўстаноўку libncurses5: i386 libstdc ++ 6: i386 zlib1g: i386

Android-студыя не можа стварыць новы праект, тайм-аўт у той час як прыхільнікаў падначаленага працэсу AAPT

0
дададзена

Проста паспрабуйце гэта першы. Гэта мой асабісты вопыт.

У мяне была тая ж праблема. Што я зрабіў гэта проста назаўжды адключыць антывірус (Mine быў Avast Security 2015). Адразу пасля адключэння антывіруса, рэч прайшла добра. Gradle паспяхова завершана. З гэтага моманту на працягу секунд Gradle заканчвае (толькі з 5-10 секунд).

0
дададзена

Я далёкі ад таго, спецыяліста па Gradle, але маё асяроддзе мела наступны радок у .gradle/init.gradle

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

Але я паняцця не маю, чаму гэтая лінія была там, але я стараюся, каб змены

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

and now I finally can work without swearing to Android Studio & Gradle buildind scheme.

0
дададзена
Artifactory ў вашым выпадку, верагодна, выкарыстоўваецца ў якасці кэш-бібліятэкі. Вы звязваецеся з серверам Artifactory якія выглядаюць, калі ёсць бібліятэка. Калі так, дык вярнуць яго да вас у адваротным выпадку ён ідзе і здабываць яго mavencentral, а затым вярнуцца да вас.
дададзена аўтар Fabio Marcolini, крыніца

Згодна андроіда дакументацыі , дадайце гэта ў Gradle файл модуля прыкладання.

android {
    ...
    dexOptions {
    preDexLibraries true
    maxProcessCount 8
    }
}
0
дададзена