Подтвердить что ты не робот

Разница между "default gradle wrapper" и "local gradle distribution" в проекте студии Android

В студии android при создании проекта есть два варианта построения проекта:

settings- > build Tools → Gradle → Настройки уровня проекта

Первый параметр "Использовать по умолчанию gradle обертку" , а второй вариант "Использовать локальный gradle дистрибутив"

Мой вопрос: какой вариант быстрее и когда он будет использоваться?

4b9b3361

Ответ 1

Вы можете прочитать о Gradle Wrapper в официальном руководстве пользователя .

Главное в обертке - она ​​заботится о версии Gradle, используемой для создания вашего проекта. Итак, если вы настроили проект на использование обертки, тогда все будут строить его с той же версией Gradle. Версия Gradle может быть указана в файле конфигурации gradle-wrapper.properties.

Еще одна важная вещь: дистрибутив Gradle будет включен в ваш проект, и если кто-то попытается его построить, не потребуется локальная установка Gradle.

Но если вы выберете использовать локальный Gradle дистрибутив, то ваш проект будет построен с версией Gradle, установленной в настоящее время, и это не гарантирует, что ваш проект будет правильно построиться, так как версия Gradle может отличаться.

Я не думаю, что для этих двух случаев другое время, но использование обертки мне кажется предпочтительным. Разумеется, в этом случае вам нужно сохранить дистрибутив оболочки в своей системе управления версиями, но вы можете установить версию инструмента сборки, которая точно используется для создания проекта, и никому не устанавливайте Gradle вручную, если он еще не установлен Gradle.

Ответ 2

Я хочу добавить очень важный момент в ответ Станислава. Gradle может использоваться не только для создания вашего проекта из Android Studio, но и из командной строки. Это особенно важно, если вы хотите создать его в среде CI. В этом случае вам не нужно заботиться о конкретной версии Gradle на вашем сервере. Проект будет построен с той же версией для IDE и CI, что сделает вашу сборку стабильной и предсказуемой.