Прискорити збірку Gradle в Android Studio 3.2.1
Ви коли-небудь відчуваєте, що чекаєте завершення версій у Android Studio? Я також. І це дуже дратує. На щастя, є кілька способів, які можна використати для покращення цього. Android використовує Gradle для побудови. Остання версія 4.6 має величезне підвищення продуктивності порівняно з попередніми версіями (детальніше див. Примітки до випуску).
Крок 1: Оновлення версії Gradle Найпростіший спосіб досягти цього - перейти до: Відкрийте Налаштування модуля (ваш проект)> Структура проекту
ОНОВЛЕННЯ
Перейдіть на версію Gradle: 4.6
та перейдіть на версію плагіна Android: 3.2.1
Завантажте дистрибутив Gradle Release з https://services.gradle.org/distributions/gradle-4.6-all.zip
та скопіюйте його у папку Gradle:
Останній крок - додати свою розмову в Налаштуваннях> Gradle
Не забудьте натиснути Застосувати, щоб зберегти зміни.
Крок 2: Увімкніть режим офлайн, демон Gradle та паралельне складання для автономного режиму проекту повідомляє Gradle ігнорувати перевірки оновлення до дати. Gradle щоразу запитує про залежність, а наявність цієї опції змушує просто використовувати те, що вже є на апараті для залежностей. Перейдіть до Gradle з програми «Студія Android» та натисніть на «Роботу офлайн».
- Перейдіть до програми "Компілятор" із програми "Студія Android" та додайте "- офлайн" у поле командного рядка та паралельно натисніть "Компілювати незалежні модулі".
Наступним кроком є включення демона Gradle та паралельної побудови для вашого проекту. Паралельне складання призведе до того, що ваші проекти з декількома модулями (багатопроектні збірки в Gradle) будуватимуться паралельно, що повинно робити великі або модульні проекти швидшими.
Ці параметри можна ввімкнути, змінивши файл з назвою gradle.properties в каталозі скриптів Gradle (тобто ~ / .gradle / gradle.properties). Деякі з цих параметрів (наприклад, паралельно модулі Complie) доступні в 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 не включений за замовчуванням, але рекомендується завжди вмикати його на машинах розробників (але залишати його вимкненим для серверів безперервної інтеграції). Поширені запитання щодо цього режиму можна знайти тут https://docs.gradle.org/current/userguide/gradle_daemon.html . Налаштування паралельних побудов може бути небезпечним для деяких проектів. Вимога полягає в тому, що всі ваші модулі повинні бути роз'єднані, або ваша збірка може вийти з ладу (детальніше див. Http://gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects ).
Крок 3: Увімкніть параметри інкрементального налаштування та налаштування пам’яті. Ви можете прискорити складання, включивши поступовий дексінг. У файлі збірки модуля:
Додайте цю опцію до свого блоку Android:
dexOptions {
incremental true
}
У цьому блоці dexOptions ви можете також вказати розмір купи для процесу dex, наприклад:
dexOptions {
incremental true
javaMaxHeapSize "12g"
}
Де "12g" - 12 Гб пам'яті. Додаткову інформацію про це можна знайти тут 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 для детальної інформації.
Крок 4: Вимкнення антивірусу Розгляньте можливість виключення файлів проектів та кешу з антивірусного сканування. Це, очевидно, компроміс із забезпеченням. Але якщо ви перемикаєтесь між гілками дуже багато, то антивірус буде переглядати файли, перш ніж дозволити процес Gradle використовувати його, що уповільнює час збирання (зокрема, проект синхронізації Android Studio з файлами gradle та завданнями індексації). Виміряйте час складання та обробляйте процесор із включеним антивірусом і без нього, щоб перевірити, чи це пов’язано. Я сподіваюся, що це допомагає. Залиште коментар, якщо у вас є питання або якісь інші поради щодо підвищення продуктивності збірки.
корисне посилання