Gradle немного смущает меня, а также любого нового разработчика Android. Кто-нибудь может объяснить, что такое Gradle в Android Studio и какова его цель? Почему он включен в Android Studio?
android-studio
gradle
android-gradle-plugin
build-automation
androidcodehunter
источник
источник
Ответы:
Короткий ответ
Gradle - это система сборки.
Длинный ответ
До Android Studio вы использовали Eclipse для своих целей разработки, и, скорее всего, вы не знали, как создать свой Android APK без Eclipse.
Вы можете сделать это в командной строке, но вы должны узнать, что каждый инструмент (dx, aapt) делает в SDK. Eclipse избавил нас от этих низкоуровневых, но важных, фундаментальных деталей, предоставив нам свою собственную систему сборки.
Теперь, вы когда-нибудь задумывались, почему
res
папка находится в том же каталоге, что и вашаsrc
папка?Это где система сборки входит в картину. Система сборки автоматически берет все исходные файлы (
.java
или.xml
), затем применяет соответствующий инструмент (например, беретjava
файлы классов и преобразует их вdex
файлы) и группирует их все в один сжатый файл, наш любимый APK.Эта система сборки использует некоторые соглашения: пример одного - указать каталог, содержащий исходные файлы (в Eclipse это
\src
папка) или файлы ресурсов (в Eclipse это\res
папка).Теперь, чтобы автоматизировать все эти задачи, должен быть скрипт; Вы можете написать свою собственную систему сборки, используя сценарии оболочки в Linux или синтаксис пакетных файлов в Windows. Понял?
Gradle - это еще одна система сборки, которая использует лучшие функции других систем сборки и объединяет их в одну. Это улучшается на основе их недостатков. Это система сборки на основе JVM , это означает, что вы можете написать свой собственный скрипт на Java, который использует Android Studio.
Одна из замечательных особенностей gradle - это система на основе плагинов . Это означает, что если у вас есть свой собственный язык программирования, и вы хотите автоматизировать задачу создания какого-либо пакета (например, JAR для Java) из исходных текстов, тогда вы можете написать полный плагин на Java или Groovy (или Kotlin, см. Здесь ), и распространить его по всему миру.
Почему Google использовал это?
Google увидел одну из самых продвинутых систем сборки на рынке и понял, что вы можете писать свои собственные сценарии практически без обучения, без изучения Groovy или любого другого нового языка. Поэтому они написали плагин для Android для Gradle.
Вы, наверное, видели
build.gradle
файл (ы) в вашем проекте. Здесь вы можете написать сценарий для автоматизации ваших задач. Код, который вы видели в этих файлах, является Groovy кодом. Если вы напишите,System.out.println("Hello Gradle!");
он будет напечатан на вашей консоли.Что вы можете сделать в сценарии сборки?
Простой пример - вам нужно скопировать некоторые файлы из одного каталога в другой, прежде чем произойдет фактический процесс сборки. Сценарий сборки Gradle может сделать это.
источник
Это новый инструмент сборки, который Google хочет использовать для Android. Он используется благодаря тому, что он более расширяем и полезен, чем муравей. Он предназначен для улучшения опыта разработчиков.
Вы можете посмотреть выступление Ксавье Дюкроэ из команды разработчиков Android на Google I / O здесь.
Ксавье и Тор Норби также рассказывают о Android Studio, также во время ввода-вывода Google .
источник
Gradle - это система сборки, работающая на Android Studio .
На других языках, например:
источник
Gradle
что похоже наmake
, я только что получил его концепциюВот подробное объяснение о том, что
Gradle
такое и как его использовать в Android Studio.Изучение файлов Gradle
Файлы сборки Gradle
Файлы сборки Gradle используют a
Domain Specific Language or DSL
для определения пользовательской логики сборки и взаимодействия со специфичными для Android элементами плагина Android для Gradle.Проекты Android Studio состоят из одного или нескольких модулей, которые можно создавать, тестировать и отлаживать независимо. Каждый модуль имеет свой собственный файл сборки, поэтому каждый проект Android Studio содержит 2 вида файлов сборки Gradle.
Файл сборки верхнего уровня. Здесь вы найдете параметры конфигурации, общие для всех модулей, составляющих ваш проект.
Файл сборки на уровне модуля. Каждый модуль имеет свой собственный файл сборки Gradle, который содержит специфичные для модуля настройки сборки. Вы потратите большую часть своего времени на редактирование файлов сборки уровня модуля, а не файла сборки верхнего уровня проекта.
Чтобы взглянуть на эти
build.gradle
файлы, откройте панель «Проект» в Android Studio (выбрав вкладку «Проект») и разверните папку «Сценарии Gradle». Первые два элемента в папке Gradle Scripts - это файлы сборки Gradle уровня проекта и уровня модуля.Файл сборки Gradle верхнего уровня
Каждый проект Android Studio содержит один файл сборки Gradle верхнего уровня. Этот
build.gradle
файл является первым элементом, который появляется в папке Gradle Scripts и четко помечен как Project.Файлы сборки Gradle уровня модуля
В дополнение к файлу сборки Gradle уровня проекта каждый модуль имеет собственный файл сборки Gradle. Ниже приведена аннотированная версия базового файла сборки Gradle на уровне модуля.
Другие файлы Gradle
В дополнение к файлам build.gradle ваша папка Gradle Scripts содержит некоторые другие файлы Gradle. В большинстве случаев вам не нужно будет вручную редактировать эти файлы, так как они будут обновляться автоматически при внесении любых соответствующих изменений в ваш проект. Тем не менее, это хорошая идея, чтобы понять роль этих файлов в вашем проекте.
gradle-wrapper.properties (версия Gradle)
Этот файл позволяет другим людям создавать ваш код, даже если у них на компьютере не установлен Gradle. Этот файл проверяет, установлена ли правильная версия Gradle, и при необходимости загружает необходимую версию.
settings.gradle
Этот файл ссылается на все модули, которые составляют ваш проект.
gradle.properties (Свойства проекта)
local.properties (Расположение SDK)
Этот файл сообщает плагину Android Gradle, где он может найти вашу установку Android SDK.
Примечание.
local.properties
Содержит информацию, относящуюся к локальной установке Android SDK. Это означает, что вы не должны держать этот файл под контролем исходного кода.Предлагаемое чтение - Tutsplus Tutorial
Я получил ясное понимание Gradle от этого.
источник
Gradle - это один из инструментов сборки, который создает исходный код программы. Так что это важная часть Android Studio, и ее необходимо установить перед началом разработки приложения.
Нам не нужно устанавливать его отдельно, потому что Android Studio делает это за нас, когда мы делаем наш первый проект.
источник
Определение :: Gradle можно описать структурированный механизм здания , где он предоставляет разработчик инструментов и гибкость в управлении ресурсами проекта создания Сборки
smaller in size
,targeting specific requirements
для некоторых устройств определенных конфигурацийОСНОВНЫЕ КОНФИГУРАЦИИ
minimumSdk
maximumSdk
targettedSdk
versionCode
versionName
БИБЛИОТЕКИ :: Мы можем добавить библиотеки Android или любые другие сторонние библиотеки в соответствии с легкими требованиями, которые ранее были утомительной задачей. Если библиотека не подходит для существующего проекта, разработчику показывается журнал, в котором человек может найти подходящее решение для внесения изменений в проект, чтобы можно было добавить библиотеку. Это только одна линия зависимости
Генерирование сортов зданий
Комбинирование типов сборки со вкусами сборки для получения различных вариантов сборки
СНИЖЕНИЕ РАЗМЕРА
Gradle помогает уменьшить размер создаваемой сборки, удаляя неиспользуемые ресурсы и неиспользуемые вещи из интегрированных библиотек.
УПРАВЛЕНИЕ РАЗРЕШЕНИЯМИ
Мы можем указать определенные разрешения для определенных сборок, добавив определенные разрешения в определенных сценариях в зависимости от требований
СТРОИТЕЛЬСТВО ДЛЯ НЕКОТОРЫХ УСТРОЙСТВ
Мы можем управлять созданием сборки для определенных устройств, которые включают определенные плотности и определенные уровни API. Это помогает при развертывании продуктов в магазине приложений в соответствии с требованиями для нескольких типов устройств.
ХОРОШАЯ ССЫЛКА
Вогелла Учебники
источник
Все, что вам нужно знать о Gradle, вы можете найти здесь: Руководство пользователя плагина Gradle
источник
Я ссылаюсь на два урока, чтобы написать ответ один , два
Gradle - это универсальный, декларативный инструмент для сборки. Это общая цель, потому что она может быть использована для создания практически всего, что вы хотите реализовать в сценарии сборки. Это декларативно, так как вы не хотите видеть много кода в файле сборки, который не читается и менее удобен в обслуживании. Таким образом, хотя Gradle предоставляет идею соглашений и простой и декларативной сборки, он также делает инструмент адаптируемым и расширяет возможности разработчиков. Он также предоставляет простой способ настройки поведения по умолчанию и различных хуков для добавления сторонних функций.
Почему Градл? Почему сейчас?
Ответ инструмента сборки - добавить функциональность сценариев с помощью нестандартных механизмов расширения. Вы заканчиваете тем, что смешиваете код сценария с XML или вызываете внешние сценарии из своей логики сборки. Легко представить, что вам нужно будет со временем добавлять все больше и больше пользовательского кода. В результате вы неизбежно вносите случайную сложность, и ремонтопригодность выходит за рамки.
Эволюция инструментов сборки Java
В Ant вы делаете цель JAR зависимой от цели компиляции. Муравей не дает никаких указаний о том, как структурировать ваш проект. Хотя это обеспечивает максимальную гибкость, Ant делает каждый скрипт сборки уникальным и трудным для понимания. Внешние библиотеки, необходимые для вашего проекта, обычно проверяются на контроль версий, потому что нет никакого автоматизированного механизма для их извлечения из центрального расположения.
Maven 1 , выпущенный в июле 2004 года, попытался облегчить этот процесс. Он предоставил стандартизированную структуру проекта и каталога, а также управление зависимостями. К сожалению, пользовательскую логику сложно реализовать
Gradle вписывается в это поколение инструментов сборки и удовлетворяет многим требованиям современных инструментов сборки (рисунок 1). Это обеспечивает выразительный DSL, соглашение по конфигурации подхода и мощное управление зависимостями. Это делает правильный шаг, чтобы отказаться от XML и представить динамический язык Groovy для определения вашей логики сборки. Звучит убедительно, не так ли?
Gradle сочетает в себе лучшие функции других инструментов сборки.
Необыкновенный набор функций Gradle
Зачем создавать свои проекты Java с Gradle, а не с Ant или Maven?
Ключ к разблокировке мощных функций Gradle в вашем скрипте сборки заключается в обнаружении и применении его доменной модели, как показано на рисунке ниже.
Gradle не может знать все требования, специфичные для вашей корпоративной сборки. Предоставляя перехватчики на этапах жизненного цикла, Gradle позволяет отслеживать и настраивать поведение выполнения сценария сборки.
Интеграция с другими инструментами сборки
Gradle хорошо играет с муравьями предшественника, Maven и Ivy, как показано на рисунке ниже.
Автоматизация вашего проекта от сборки до развертывания
На изображении: этапы конвейера развертывания.
Компиляция кода
Работающие юнит и интеграционные тесты
Выполнение статического анализа кода и создание тестового покрытия
Создание дистрибутива
Обеспечение целевой среды
Развертывание результата
Выполнение дымовых и автоматических функциональных испытаний
Я ссылаюсь на два урока, чтобы написать ответ один , два
источник
Gradle - это система сборки . Системы сборки - это программные средства, предназначенные для автоматизации процесса компиляции программ. Системы сборки бывают разных форм и используются для различных задач сборки программного обеспечения. Хотя их основная цель - эффективно создавать исполняемые файлы.
Другим связанным термином является автоматизация сборки, которая представляет собой процесс автоматизации создания сборки программного обеспечения и связанных процессов, включая: компиляцию исходного кода компьютера в двоичный код, упаковку двоичного кода и запуск автоматических тестов.
Немного похожей системы сборки для других языков (см. Полный список здесь ):
источник
Риск быть дискурсивным, я думаю, за этим стоит вопрос, почему опыт Android Studio / Gradle такой плохой.
Типичный опыт Clojure:
Типичная Android Studio / Gradle опыт:
Я не уверен, что это вина Грэдла. Но «импорт из проекта Eclipse» кажется довольно нестабильным. Несмотря на все предполагаемые сложности Gradle и достоинства системы сборки, Android Studio, похоже, не очень хорошо импортирует зависимости сборки или процесс сборки из Eclipse.
Он не сообщает вам, когда не удалось импортировать полный граф зависимостей. Android Studio не дает никакой полезной помощи или советов, как решить проблему. Он не говорит вам, где вы можете посмотреть вручную в папках Eclipse. Он не говорит вам, какая библиотека, кажется, отсутствует. Или помочь вам найти Maven и т. Д. Для них.
В 2016 году такие вещи, как Leiningen / Clojars, или npm узла, или pips Python, или apkg Debian (и я уверен, что многие подобные менеджеры пакетов для других языков и систем) работают прекрасно ... отсутствующие зависимости остались в прошлом.
За исключением Android. Android Studio - теперь единственное место, где я до сих пор испытываю адский недостаток зависимостей.
Я склонен сказать, что это вина Google. Они сломали экосистему Android (и тысячи существующих проектов Android / онлайн-учебники), когда они решительно решили перейти с Eclipse на Android Studio / Gradle, не производя надежного процесса преобразования. Люди, чьи проекты работают в Eclipse, не адаптируют их к AS (предположительно, потому что это для них боль). И люди, пытающиеся использовать эти проекты в AS, сталкиваются с теми же проблемами.
И вообще, если Gradle - это сверхмощная система сборки, почему я до сих пор управляю множеством других зависимостей в менеджере SDK? Почему проект, который нуждается, скажем, в ndk, не может указать это в своем файле Gradle, чтобы он автоматически устанавливался и встраивался при необходимости? Почему NDK особенный? Аналогично для целевых платформ? Почему я устанавливаю их явно в IDE, а не просто проверяю свой проект по ним и сортирую все это за кулисами?
источник
Gradle
это усовершенствованная система сборки, а также расширенный инструментарий сборки, позволяющий создавать собственную логику сборки с помощью плагинов!Преимущества:
Манифест записей
Через DSL можно настроить следующие записи манифеста:
Вариант сборки
По умолчанию плагин Android автоматически настраивает проект на создание как отладочной, так и выпускной версии приложения.
зависимости
источник
Gradle для языка Groovy JVM является тем же, что и муравей для Java. По сути, это инструмент сборки Groovy. В отличие от Ant, он основан на полном языке Groovy. Например, вы можете написать код скрипта Groovy в скрипте Gradle, чтобы сделать что-то, а не полагаться на определенный язык домена.
Я не знаю конкретной интеграции IntelliJ, но представьте, что вы могли бы «расширить» Groovy так, чтобы вы могли писать конкретные языковые примитивы «сборки», и они просто стали частью языка Groovy. (Метапрограммирование Groovy - это целое обсуждение.) IntelliJ / Google могут использовать Gradle для создания языка сборки очень высокого уровня, но это язык, основанный на расширяемом, открытом стандарте.
источник
Gradle - это расширенный инструментарий сборки для Android, который управляет зависимостями и позволяет определять собственную логику сборки. функции похожи
Настройка, настройка и расширение процесса сборки.
Создайте несколько APK для вашего приложения с различными функциями, используя один и тот же проект.
Повторное использование кода и ресурсов.
обращаться
источник
Gradle - это автоматизированный инструментарий для сборки, который может интегрироваться во множество различных сред не только для проектов Android.
Вот несколько вещей, которые вы можете сделать с Gradle.
Минимальная конфигурация требуется для новых проектов, потому что Gradle имеет конфигурации по умолчанию для ваших проектов Android Studio.
Декларация зависимости. Вы можете объявить JAR-файлы зависимостей или библиотечные файлы, размещенные на локальном или удаленном сервере.
Gradle автоматически создает тестовый каталог и тестовый APK из исходного кода вашего проекта.
Если вы добавите всю необходимую информацию, такую как
keyPassword
иkeyAlias
, в свой файл сборки Gradle, вы можете использовать Gradle для создания подписанных APK.Gradle может генерировать несколько APK с разными пакетами и создавать конфигурации из одного модуля.
источник
В Android Studio Gradle - это пользовательский инструмент для сборки, используемый для сборки пакетов Android (apk-файлов) путем управления зависимостями и предоставления собственной логики сборки.
APK-файл (пакет приложений Android) представляет собой специально отформатированный zip-файл, который содержит
Файл apk подписывается и отправляется на устройство с помощью ADB (Android Debug Bridge), где он исполняется.
источник
Gradle - это инструмент для сборки, используемый для сборки APK или известный как пакет приложений.
источник
по @ Брайан Гарднер:
Gradle - это обширный инструмент сборки и менеджер зависимостей для программных проектов. Он имеет специфичный для домена язык, основанный на Groovy. Gradle также предоставляет поддержку сборки по соглашению для многих типов проектов, включая Java, Android и Scala.
Особенность Gradle:
источник
Gradle - это то, что позволяет автоматизировать создание сложных проектов Android, в которых задействованы десятки тысяч строк кода из нескольких источников, проектов, библиотек и т. Д. Он может условно генерировать несколько оптимизированных APK на основе множества спецификаций конфигурации - если вы заинтересованы, другие ответы предоставляют более подробную информацию об этом аспекте Gradle.
Однако, если вы новичок в разработке для Android, Gradle в 99% случаев - это то, что мешает вашему проекту строить. Это непостижимая, сложная система, которая эффективно запутывает процесс сборки Android и, по сути, делает его недоступным для неопытных разработчиков, то есть для того, чтобы создать простое приложение Android начального уровня, ничего не подозревающему новичку может понадобиться изучить и понять многие вещи, за которые они не торговались такие как:
Все эти вещи интересны и полезны для разработчиков Android, но они далеки от простого и представляют серьезный барьер для входа. Я подозреваю, что ФП задал этот вопрос - это чувство разочарования, которое неизбежно поражает разработчика-неофита после того, как он потратил слишком много времени, пытаясь создать простое приложение и постоянно мешать ему в Gradle. Проблема усугубляется огромным количеством высокотехнической документации, доступной для всех этих технологий. Также для большого количества потребностей развития Gradle является излишним.
Альтернативой является написание сценария оболочки, который создает ваш проект путем автоматизации инструментов, доступных в Android SDK. Преимущества этого подхода много, для начала это, пожалуй, лучший способ изучить и понять процесс сборки и экосистему Android, и он позволяет вам полностью контролировать, как создается ваше приложение. Однако этот подход больше подходит для тех, кто глубоко не поддается восстановлению, чем для неопытных новичков, пробующих Android.
Что бросается в глаза из-за его отсутствия (пожалуйста, сообщите мне, если есть такая вещь), это легкая интегрированная среда разработки начального уровня с сокращенным набором функций, которая одновременно упрощает процесс сборки, но не затеняет его (таким образом, нет сетевых объектов или затмений), который он все еще может используйте Gradle (что не так с Ant). Это должно упростить создание APK, которые соответствуют нескольким распространенным конфигурациям, и использовать структуру проекта, которая может развиться до полноценного проекта Android Studio, если вы решите пойти по этому пути.
источник
Проще говоря, Gradle - это инструмент, предоставляемый Android Studio для реализации двух важных процессов:
источник
Результаты поиска Избранные фрагменты из Интернета Android | строить. Gradle. Gradle - это система сборки (с открытым исходным кодом), которая используется для автоматизации сборки, тестирования, развертывания и т. Д. ... Например, простая задача скопировать некоторые файлы из одного каталога в другой может быть выполнена скриптом сборки Gradle перед фактической сборкой. процесс происходит.
источник
В Android Studio Gradle используется для создания наших проектов приложений для Android, следовательно, играет роль системы сборки. До Android Studio, в Eclipse мы использовали для компиляции и сборки приложений с использованием инструмента командной строки, который вскоре был принят на основе графического интерфейса для создания и запуска приложений Android в Eclipse с использованием ANT. Каждый инструмент разработки приложений для Android должен компилировать ресурсы, исходный код Java, внешние библиотеки и объединять их в окончательный APK.
Gradle - это система сборки, которая отвечает за компиляцию кода, тестирование, развертывание и преобразование кода в файлы .dex и, следовательно, запуск приложения на устройстве.
Поскольку Android Studio поставляется с предустановленной системой Gradle, для создания нашего проекта не требуется устанавливать дополнительное программное обеспечение времени выполнения. Всякий раз, когда вы нажимаете кнопку в Android Studio, автоматически запускается задача gradle и начинается сборка проекта, и после того, как gradle завершает свою задачу, приложение запускается в AVD или на подключенном устройстве.
Система сборки, такая как Gradle, не является компилятором, компоновщиком и т. Д., Но она контролирует и контролирует операции компиляции, связывания файлов, выполнения тестовых случаев и, в конечном итоге, объединения кода в файл apk для вашего приложения Android.
Есть два файла build.gradle для каждого проекта Android Studio, один из которых предназначен для приложения, а другой - для файлов сборки уровня проекта (уровня модуля) .
В процессе сборки компилятор берет исходный код, ресурсы, внешние библиотеки JAR-файлов и файл AndroidManifest.xml (который содержит метаданные о приложении) и преобразует их в файлы .dex (исполняемые файлы Dalvik) , которые включают в себя байт-код . Этот байт-код поддерживается всеми устройствами Android для запуска вашего приложения. Затем APK Manager объединяет файлы .dex и все другие ресурсы в один файл apk. APK Packager подписывает apk отладки или выпуска, используя соответствующее хранилище ключей отладки или выпуска.
Debug apk обычно используется для тестирования, или мы можем сказать, что он используется только на стадии разработки. Когда ваше приложение оснащено нужными функциями и вы готовы опубликовать приложение для внешнего использования, вам требуется APK-версия выпуска, подписанная с использованием хранилища ключей выпуска.
Теперь давайте рассмотрим некоторые файлы Gradle.
setting.gradle Файл setting.gradle (настройка Gradle) используется для указания всех модулей, используемых в вашем приложении.
build.gradle (уровень проекта) Файл build.gradle верхнего уровня (модуля) - это файл сборки уровня проекта, который определяет конфигурации сборки на уровне проекта. Этот файл применяет конфигурации ко всем модулям в проекте приложения для Android.
build.gradle (уровень приложения) Файл уровня приложения build.gradle находится в каждом модуле проекта Android. Этот файл включает имя вашего пакета в виде applicationID, имени версии (apk version), кода версии, минимального и целевого sdk для конкретного модуля приложения. Когда вы включаете внешние библиотеки (не файлы jar), вам нужно упомянуть об этом в файле gradle уровня приложения, чтобы включить их в ваш проект в качестве зависимостей приложения.
Примечание. Если определенное приложение разработано в вариантах для отдельных модулей, таких как смартфон, планшет или телевизор, то для всех должны быть созданы отдельные файлы Gradle. Вы даже можете запустить свою систему Gradle через инструмент командной строки . Для этого используются следующие команды:
./gradlew build - (сборка проекта)
./gradlew clean build - (сборка проекта с нуля)
./gradlew clean build - (запуск теста)
./gradlew wrapper - (чтобы увидеть все доступные задачи)
источник
Gradle = Groovy + Cradle Hans Dockter комментарий на форуме
Путаница немного ненужна, когда ее можно было просто назвать «Сборка» или что-то в Android Studio.
Нам нравится усложнять себе жизнь в сообществе разработчиков.
источник