Ответ 1
Вам необходимо правильно определить входы и выходы даже для проектов библиотек с исходным кодом. (Gradle Документация). Получаете ли вы сообщение UP-TO-DATE, когда вы перестраиваете второй раз?
Я попытался создать его:
Требуется 40 с. КАЖДЫЙ раз. Неважно, я что-то изменю или нет. Построить его после "gradle clean" занимает > 50 секунд.
Я надеюсь, что я делаю что-то неправильно. Eclipse/ ant может строить последовательные сборки WITH CHANGES в < 10s.
Любая помощь в том, как довести это значение до 10 баллов. Да, у нас есть много модулей, некоторые библиотеки jar, некоторые зависимости от maven. По-прежнему не получается, почему он должен принимать > 40 секунд для двух последовательных сборок без изменений.
Gradle: 2.2.1 Студия Android: не очень актуальна, обычно она создается только с помощью Gradle.
EDIT: добавление некоторых профилирующих журналов.
: приложение: dexProjDebug 22.541s
: приложение: shrinkProjDebugMultiDexComponents 4.279s
: app: compileProjDebugJava 3.478s
: приложение: packageProjDebug 2.591s
: приложение: processProjDebugResources 2.590s
: app: packageAllProjDebugClassesForMultiDex 2.536s
: app: createProjDebugMainDexClassList 2.126s
Вам необходимо правильно определить входы и выходы даже для проектов библиотек с исходным кодом. (Gradle Документация). Получаете ли вы сообщение UP-TO-DATE, когда вы перестраиваете второй раз?
Если у вас нет изменений в других модулях, вы можете сами создать приложение, используя gradlew :app:build
. Это позволит исключить время Gradle, затрачиваемое на создание других модулей. Вы также можете построить любой модуль отдельно, используя gradlew :moduledirectoryname:build
. Если вам нужно создать один модуль и приложение, вы можете выполнить обе задачи сразу, чтобы избежать перехода через этап конфигурации Gradle дважды: gradlew :app:build :moduledirectoryname:build
Если возможно, обновите до Gradle 2.4. Это значительно быстрее (требуется 20-40%).
Одним из наиболее значительных сокращений времени сборки является задача preDex. Проверьте, работает ли preDex в вашей сборке. Это увеличивает время сборки при первом запуске, но значительно сокращает время сборки в последующих сборках, так как большинство ваших SDK и библиотек уже будут обработаны. Обратите внимание, однако, что он не будет работать при некоторых условиях, например. если вы используете multidex.
Btw Google хорошо знает времена сборки с Gradle и Android Studio и намерены внести существенные улучшения в предстоящие выпуски, включая Jack и Jill, которые позволят компилировать исходный код непосредственно в dex. Вы уже можете попробовать экспериментировать с ними - см. Здесь: http://tools.android.com/tech-docs/jackandjill.
Также стоит посмотреть это видео из недавних Google I/O: https://youtu.be/f7ihSQ44WO0?t=327
Загрузите эмулятор Genymotion. Очень быстро и полезно запускать приложения для Android. Это сэкономит вам много времени. Вот ссылка - GenyMotionDownload