Популярно, доступно, полезно

Профессиональные советы при работе с Gradle в Android Studio


Предисловие

Оговорка: это не еще одна статья про скорость сборки проекта. Если вы искали именно это, то информация находится на https://guides.gradle.org/performance/ и https://developer.android.com/studio/build/optimize-your-build

Вот несколько советов, которые я нашел полезными при работе с Gradle в Android Studio.

Запускайте модульные тесты перед запуском приложения

Итак, вы приложили усилия и написали модульные тесты? Хорошо.

Насколько они полезны?

Тесты не приносят пользы пользователю напрямую. Наиболее раннее исправление ошибок приносит пользу.

А это уже, в свою очередь, зависит от того, как часто вы запускаете модульные тесты.

Надеюсь, что вы применяете CI(Continuous Integration — непрерывная интеграция), в ходе которой выполняются ваши модульные тесты для каждого коммита. Но я решил пойти еще дальше и запускать unit-тесты при каждой установке.

Как оказалось, это не сложно сделать в Android Studio

Задачи gradle перед установкой

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

Не удалось выполнить синхронизацию проекта градла: не нужно запускать ее еще раз!

Когда синхронизация Gradle в Android Studio терпит неудачу, ощущения от работы не очень приятны. Try again означает, загрузи все jars, так же загрузи все javadocs, затем повторно проиндексируй проект, после процесс снова закончится неудачей, часто без явного сообщения об ошибке.

Поэтому, прежде чем снова провести синхронизацию, я предпочитаю сделать более быструю проверку работоспособности, запустив какую-нибудь простую задачу градла, например :tasks

Задачи gradle перед синхронизацией
  • Меню Run > Edit Configurations > + > Gradle
  • Name: $ gradle tasks
  • Gradle project: root project
  • Tasks: tasks

Определите область «Gradle»

Говоря о сбоях синхронизации градла: до тех пор, пока это происходит, среда Android Studio в основном бесполезна. Поэтому я нашел очень полезным иметь возможность сосредоточиться только на файлах градла. IntelliJ IDEA и студия обладают мощной, но скрытой функцией, которая позволяет это делать: Scopes

Область gradle

Для того, чтобы её настроить:

  • Preferences > Appearance & Behavior > Scopes > +
  • Name: Gradle
  • Check Share scope
  • Pattern : скопировать-вставить код ниже

file:*.gradle||file:*.kts||file:*.properties||file[buildSrc]:src//*

Очень полезная особенность, увы, не обнаруживается вообще. Я открыл тикеты, чтобы их включили по умолчанию в IDE.

Градл из командной строки: остерегайтесь проблемы «incompatible daemons»!

Мне не хотелось писать об этой ошибке, но если вы используете Gradle в Android Studio из командной строки, вам стоит проверить, не возникает ли эта ошибка у вас #68374709

Чтобы это проверить, создайте новый пустой проект в Android Studio и запустите задачу градла :properties из интерфейса студии и из командной строки.

Вас ждет не очень приятный опыт использования Android Studio, когда вы увидите это сообщение

Starting a Gradle Daemon, 1 incompatible could not be reused

Надеемся, что команда разработчиков исправит эту тупую проблему конфигурации, которая вызывает много страданий.

Kotlin делает редактирование вашей сборки градла менее разочаровывающим

Раньше у меня были неоднозначные отношения с градлом в следствии плохой поддержки инструментальных средств, из-за чего было больно работать с файлами build.gradle.

Хотя файлы build.gradle легко читаются, их довольно сложно писать. Когда вам нужно их поддерживать, вы в основном сами по себе. Обычно у вас ничего не работает какое-то время, и не понятно почему. Затем в какой-то момент вы копируете-вставляете правильное решение, и оно работает, но при этом так же не понятно почему.

С тех пор градл и JetBrains работали над настройкой градла с помощью Kotlin вместо Groovy. Это большая тема, поэтому я посвятил ей полную статью.

Перевод статьи «Android Studio Pro-Tips for working with Gradle»

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *