Что такое Gradle в Android Studio?

1200

Gradle немного запутывает меня, а также для нового разработчика Android. Может ли кто-нибудь объяснить, что gradle в Android Studio, и какова его цель? Почему gradle включен в Android Studio?

  • 4
    Смотрите gradle.org
  • 12
    Чтобы ответить, почему вам нужен инструмент для сборки, такой как Gradle, прочитайте этот пост от Джеффа Этвуда.
Показать ещё 4 комментария
Теги:
android-studio
gradle
android-gradle
build-automation

25 ответов

1417
Лучший ответ

Короткий ответ

Gradle - это система сборки.

Длинный ответ

Перед Android Studio вы использовали Eclipse для своих целей разработки, и, скорее всего, вы не знали, как создать Android APK без Eclipse.

Вы можете сделать это в командной строке, но вам нужно узнать, что делает каждый инструмент (dx, aapt) в SDK. Eclipse спас нас всех от этих низких уровней, но важных, фундаментальных деталей, предоставив нам собственную систему сборки.

Теперь вы когда-нибудь задавались вопросом, почему папка res находится в том же каталоге, что и ваша папка src?

Здесь система сборки входит в изображение. Система сборки автоматически принимает все исходные файлы (.java или .xml), затем применяет соответствующий инструмент (например, принимает файлы класса java и преобразует их в файлы dex) и группирует их все в один сжатый файл, наш любимый APK.

В этой сборке используются некоторые условные обозначения: пример одного - указать каталог, содержащий исходные файлы (в Eclipse это папка \src) или файлы ресурсов (в Eclipse это папка \res).

Теперь, чтобы автоматизировать все эти задачи, должен быть script; вы можете написать свою собственную систему сборки, используя сценарии оболочки в синтаксисе linux или пакетных файлов в окнах. Получил?

Gradle - это еще одна система сборки, которая использует лучшие функции других систем сборки и объединяет их в одну. Это улучшается исходя из их недостатков. Это система сборки на основе JVM, что означает, что вы можете написать свой собственный script на Java, который использует Android Studio.

Одна крутая вещь о gradle заключается в том, что она является системой с плагинами. Это означает, что если у вас есть собственный язык программирования, и вы хотите автоматизировать задачу создания какого-либо пакета (выходного JAR для Java) из источников, вы можете написать полный плагин на Java или Groovy (или Kotlin, см. здесь) и распространить его на остальной мир.

Почему Google использовал его?

Google увидела одну из самых современных систем сборки на рынке и поняла, что вы можете писать собственные сценарии с минимальной кривой обучения и без обучения Groovy или любого другого нового языка. Поэтому они написали плагин Android для Gradle.

Возможно, вы видели файлы build.gradle в вашем проекте. Именно здесь вы можете писать сценарии для автоматизации своих задач. Код, который вы видели в этих файлах, - это код Groovy. Если вы пишете System.out.println("Hello Gradle!");, тогда он будет печататься на консоли.

Что вы можете сделать в сборке script?

Простым примером является то, что вам нужно скопировать некоторые файлы из одного каталога в другой до того, как произойдет фактический процесс сборки. A gradle build script может это сделать.

  • 0
    Gradle - самая крутая вещь, если мы ее используем, например, я построил систему с использованием gradle, которая на основе запуска задачи выбирает версию кода dev или prod и автоматически фиксирует apk в svn, а затем отправляет по электронной почте этот apk и сообщение на идентификаторы электронной почты, настроенные в самом gradle. Так что мои ручные задания закончились.
  • 11
    Я должен сказать, что Gradle доставлял мне проблемы при переносе проекта AndroidStudio из одного места в другое. Несоответствия версий, отсутствующие модули, еще много чего ... это доставляло мне много времени. Я закончил тем, что заново создал скелет проекта и вырезал / вставил части кода, которые были из старого проекта в новый. И это под Windows для источника и назначения. Я собираюсь перенести его сейчас в лабораторию на базе Linux.
Показать ещё 16 комментариев
139

Это новый инструмент сборки, который Google хочет использовать для Android. Он используется благодаря тому, что он более расширяемый и полезен, чем ant. Он призван расширить возможности разработчиков.

Вы можете поговорить с Xavier Ducrohet из команды разработчиков Android на Google I/O здесь.

В Google I/O здесь также есть еще одна беседа в Android Studio от Xavier и Tor Norbye, а также .

  • 3
    Я думал, что IntelliJ уже знал, как создавать проекты Android без необходимости в другой системе сборки.
  • 1
    Так является ли gradle просто фоновым процессом, который компилирует написанный мной код? Также, после просмотра множества других ответов, они упоминают зависимости. Что это такое? Большое спасибо Дэниел!
Показать ещё 1 комментарий
53

1 - Gradle Фоновая информация.

2 - Gradle.

3 - Фаза инициализации.

4 - Фаза инициализации (Продолжение).

5 - Что такое Gradle?.

6 - Фаза конфигурации.

Изображение 2798

Изображение 2799

Изображение 2800

Изображение 2801

Изображение 2802

Изображение 2803

Смотрите LINK

48

Gradle - это система сборки, работающая на Android Studio.

В других языках, например:

  • 13
    Когда вы сказали, что Gradle похож на make , я только что получил его концепцию
  • 0
    Простой ответ !!!
Показать ещё 2 комментария
36

Вот подробное объяснение, что такое Gradle и как его использовать в Android Studio.

Изучение файлов Gradle

  1. Всякий раз, когда вы создаете проект в Android Studio, система сборки автоматически генерирует все необходимые файлы сборки Gradle.

Файлы сборки Gradle

  1. Файлы сборки Gradle используют Domain Specific Language or DSL для определения пользовательской логики сборки и взаимодействия со специфичными для Android элементами плагина Android для Gradle.

  2. Проекты Android Studio состоят из одного или нескольких модулей, которые вы можете создавать, тестировать и отлаживать независимо. Каждый модуль имеет свой собственный файл сборки, поэтому каждый проект Android Studio содержит 2 вида файлов сборки Gradle.

  3. Файл сборки верхнего уровня: здесь вы найдете параметры конфигурации, общие для всех модулей, составляющих ваш проект.

  4. Файл сборки на уровне модуля. Каждый модуль имеет свой собственный файл сборки 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 Location)

Этот файл сообщает плагину Android Gradle, где он может найти вашу установку Android SDK.

Примечание. local.properties содержит информацию, относящуюся к локальной установке Android SDK. Это означает, что вы не должны держать этот файл под контролем исходного кода.

Предлагаемое чтение - Tutsplus Tutorial

Я получил ясное понимание Gradle от этого.

  • 1
    Обратите внимание, что ответы только на ссылки не приветствуются, поэтому ответы SO должны быть конечной точкой поиска решения (в отличие от еще одной остановки ссылок, которая, как правило, со временем устареет). Пожалуйста, рассмотрите возможность добавления отдельного краткого обзора здесь, сохраняя ссылку в качестве ссылки.
28

Gradle - это один из инструментов сборки, который создает исходный код программы. Таким образом, это важная часть Android Studio, и ее необходимо установить перед началом разработки приложения.

Мы не должны устанавливать его отдельно, потому что Android Studio делает это для нас, когда мы делаем наш первый проект.

  • 2
    Что вы подразумеваете под сборкой исходного кода программы? Разве это не работа разработчика?
  • 0
    Этот ответ совершенно неверен в том смысле, в котором он сформулирован. Gradle - это упаковочный инструмент, который поставляется в комплекте с Android Studio, поэтому он заботится о создании apk. Исходный код всегда создается компилятором и ничем иным.
Показать ещё 3 комментария
21

ОПРЕДЕЛЕНИЕ:: Gradle можно описать структурированный механизм построения, где он предоставляет разработчику инструменты и гибкость для управления ресурсами проекта для создания сборок smaller in size, targeting specific requirements для определенных устройств определенных конфигураций


ОСНОВНЫЕ КОНФИГУРАЦИИ

  • minimumSdk
  • maximumSdk
  • targettedSdk
  • versionCode
  • versionName

БИБЛИОТЕКИ:: Мы можем добавить библиотеки андроидов или любые другие сторонние библиотеки, в дополнение к требованиям, которые были утомительной задачей раньше. Если библиотека не подходит для существующего проекта, разработчику отображается журнал, в котором человек может найти подходящее решение для внесения изменений в проект, чтобы библиотека могла быть добавлена. Его только одна строка зависимости


ГЕНЕРИРУЮЩИЕ СВОЙСТВА СТРОЕНИЙ

Сочетание типов сборки со сборками для получения разновидностей переменных сборки

 ====================                         ====================
|     BuildTypes     |                       |   ProductFlavours  |
 --------------------  ====================== --------------------
|  Debug,Production  |      ||       ||      | Paid,Free,Demo,Mock|
 ====================       ||       ||       ==================== 
                            ||       ||
                            VV       VV
 =================================================================
|           DebugPaid, DebugFree, DebugDemo, DebugMock            |
|  ProductionPaid, ProductionFree, ProductionDemo, ProductionMock |
 =================================================================

СОКРАЩЕННЫЙ РАЗМЕР

Gradle помогает уменьшить размер сгенерированной сборки, удалив неиспользуемые ресурсы и неиспользуемые вещи из интегрированных библиотек


УПРАВЛЕНИЕ РАЗРЕШЕНИЯМИ

Мы можем указать определенные разрешения для определенных сборок путем добавления определенных разрешений в определенных сценариях на основе требований


ПОСТРОЕНИЯ ДЛЯ НЕКОТОРЫХ УСТРОЙСТВ

Мы можем управлять генерацией сборки для определенных устройств, которые включают определенную плотность и определенные уровни api. Это помогает при развертывании продукта в магазине приложений в соответствии с требованиями к различным типам устройств.


ДОПОЛНИТЕЛЬНАЯ СПРАВКА

Vogella Tutorials

19

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

Другим связанным термином является автоматизация сборки, которая является процессом автоматизации создания программного обеспечения и связанных с ним процессов, включая: компиляцию исходного кода компьютера в двоичный код, упаковку двоичного кода и выполнение автоматических тестов.

Несколько подобных систем сборки для других языков (см. полный список здесь):

  • Apache Ant и Apache Maven - Java
  • sbt (Simple Build Tool) - для Scala (среда воспроизведения и т.д.)
  • A-A-P - инструмент построения на основе Python
  • Rake (Apache Builder) - Ruby
  • Leiningen для Clojure
19

Вы можете найти все, что вам нужно знать о Gradle здесь: Gradle Руководство пользователя плагина

Цели новой системы сборки

Цели новой системы сборки:

  • Упростите использование кода и ресурсов
  • Упростите создание нескольких вариантов приложения, будь то для распространения с несколькими apk или для разных вкусов приложения.
  • Упростите настройку, расширение и настройку процесса сборки.
  • Хорошая интеграция с IDE

Почему Gradle?

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

Вот некоторые из его функций, которые заставили нас выбрать Gradle:

  • Специфичный для домена язык (DSL) для описания логики построения и управления им.
  • Файлы сборки основаны на Groovy и позволяют смешивать декларативные элементы через DSL и использовать код для управления элементами DSL для обеспечения пользовательской логики.
  • Встроенное управление зависимостями через Maven и/или Ivy.
  • Очень гибкий. Позволяет использовать передовые методы, но не делает свой собственный способ делать что-то.
  • Плагины могут предоставлять свои собственные DSL и свой собственный API для использования файлов сборки.
  • Хороший инструмент API, позволяющий интегрировать IDE
15

Рискуя быть дискурсивным, я думаю, что за этим стоит вопрос о том, почему опыт Android Studio/ Gradle настолько плох.

Типичный Clojure опыт:

  • загрузить проект с зависимостями, указанными в project.clj.
  • Leiningen получает зависимости благодаря Clojars и Maven.
  • Скомпилирован проект.

Типичный опыт работы с Android Studio/ Gradle:

  • "Импортировать проект Eclipse".
  • OK проект импортирован.
  • Gradle делает это thang... wait... wait... wait... Gradle завершено.
  • Компиляция... не может скомпилироваться, потому что я не знаю, что X есть/не может найти библиотеку Y.

Я не уверен, что это ошибка Gradle. Но "импорт из проекта Eclipse" выглядит довольно flaky. Для всех Gradle предполагаемых изысканностей и достоинств системы сборки Android Studio, похоже, не очень хорошо импортирует зависимости сборки или процесс сборки из Eclipse.

Он не сообщает вам, когда ему не удалось импортировать полный граф зависимостей. Android Studio не дает никакой полезной помощи или советов о том, как решить проблему. Он не говорит вам, где вы можете вручную посмотреть в папках Eclipse. Это не говорит вам, какая библиотека, кажется, отсутствует. Или помогите вам найти Maven и т.д. Для них.

В 2016 году такие вещи, как Leiningen/Clojars, или node npm, или Python pip, или Debian apkg (и я уверен, что многие аналогичные менеджеры пакетов для других языков и систем) работают красиво... отсутствуют зависимости в прошлом.

За исключением Android. Android Studio теперь единственное место, где я все еще, кажется, испытываю недостаток адвентиля.

Я склонен сказать, что это ошибка Google. Они сломали экосистему Android (и тысячи существующих Android-проектов/онлайн-уроков), когда они кавалерически решили перейти от Eclipse к Android Studio/ Gradle без создания надежного процесса преобразования. Люди, чьи проекты работают в Eclipse, не адаптируют их к AS (по-видимому, потому, что это боль для них). И люди, пытающиеся использовать эти проекты в AS, сталкиваются с теми же проблемами.

И вообще, если Gradle - это супермощная система сборки, почему я все еще управляю множеством других зависимостей в sdk-менеджере? Почему проект, который не нуждается, например, ndk, указывает это в своем файле Gradle, чтобы он автоматически устанавливался и включался при необходимости? Почему NDK особенный? Точно так же для целевых платформ? Почему я устанавливаю их явно в среде IDE, а не просто проверяю свой проект на них и все это сортируется для меня за кулисами?

  • 4
    Я полностью согласен, что Gradle - ужасная система сборки. Это компонент, который делает Android Studio намного хуже, чем X-Code или Visual Studio. Я понимаю, что они должны «строить» систему за кулисами, но мне не обязательно знать / заботиться / возиться с их внутренностями. Gradle, с другой стороны, кажется, ломается с каждым обновлением Android Studio и тормозит систему, даже просто добавляя класс. Никакая другая IDE не делает этого.
11

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

Преимущества:

  • Dsl - предметно-ориентированный язык, основанный на groovy
  • DAG - Направленный ациклический граф
  • Инкрементные сборки
  • Расширяемая модель предметной области
  • Gradle всегда в курсе
  • Перед выполнением задачи Gradle делает снимок ввода и вывода своих задач.
  • В случае, если моментальный снимок изменился или его не существует, Gralde выполнит re- эту задачу.

Манифест записей

Через DSL можно настроить следующие записи манифеста:

Вариант сборки

По умолчанию плагин Android автоматически настраивает проект на создание как отладочной, так и выпускной версии приложения.

зависимости

  1. Местные зависимости:

Если в вашей локальной файловой системе есть бинарные архивы, от которых зависит модуль, например, файлы JAR, вы можете объявить эти зависимости в файле сборки для этого модуля.

  1. Удаленные зависимости:

Сначала репозиторий должен быть добавлен в список, а затем зависимость должна быть объявлена таким образом, чтобы Maven или Ivy объявляли свои артефакты.

10

Gradle относится к языку JVM Groovy, что означает ant для Java. В принципе, это инструмент сборки Groovy. В отличие от Ant, он основан на полном Groovy языке. Например, вы можете написать код Groovy script в Gradle script, чтобы сделать что-то, а не полагаться на определенный язык домена.

Я не знаю специфической интеграции IntelliJ, но представьте, что вы можете "расширить" Groovy, чтобы вы могли писать конкретные примитивы языка "build", и они просто стали частью языка Groovy. (Groovy метапрограммирование - это целая дискуссия для себя.) IntelliJ/Google может использовать Gradle для построения высокоуровневого языка компоновки, однако он основан на расширяемом открытом стандарте.

  • 2
    это не "инструмент сборки Groovys" - это многоцелевой инструмент сборки, DSL которого построен на основе Groovy
8

Я ссылаюсь на два урока, чтобы написать ответ один, два

Gradel - это универсальный, декларативный инструмент для сборки. Это общая цель, потому что она может быть использована для создания практически всего, что вы хотите реализовать в сценарии сборки. Это декларативно, так как вы не хотите видеть много кода в файле сборки, который не читается и менее удобен в обслуживании. Таким образом, в то время как Gradle предоставляет идею соглашений и простой и декларативной сборки, он также делает инструмент адаптируемым и расширяет возможности разработчиков. Он также предоставляет простой способ настройки поведения по умолчанию и различных хуков для добавления сторонних функций.

Gradle объединяет в себе все преимущества обоих инструментов, предоставляет дополнительные функции и использует Groovy как язык, специфичный для предметной области (DSL). Он обладает мощью и гибкостью инструмента Ant с такими функциями Maven, как жизненный цикл сборки и простота использования.

Почему Градл? Почему сейчас?

Ответ инструмента сборки - добавить функциональность сценариев с помощью нестандартных механизмов расширения. Вы заканчиваете тем, что смешиваете код сценария с XML или вызываете внешние сценарии из своей логики сборки. Легко представить, что вам нужно будет добавлять все больше и больше пользовательского кода с течением времени. В результате вы неизбежно вносите случайную сложность, и ремонтопригодность выходит за рамки.

Допустим, вы хотите скопировать файл в определенное место при создании продакшен версии вашего проекта. Чтобы определить версию, вы проверяете строку в метаданных, описывающую ваш проект. Если он соответствует определенной схеме нумерации (например, 1.0-RELEASE), вы копируете файл из точки A в точку B. С внешней точки зрения это может показаться тривиальной задачей. Если вам приходится полагаться на XML, язык сборки многих традиционных инструментов, выражающих эту простую логику, становится довольно сложным.

Эволюция инструментов сборки Java

Логика сборки Java должна быть описана в XML. XML отлично подходит для описания иерархических данных, но ему не хватает выражения программного потока и условной логики. По мере усложнения сценария сборки поддержание кода сборки становится кошмаром.

В Ant вы делаете цель JAR зависимой от цели компиляции. Муравей не дает никаких указаний о том, как структурировать ваш проект. Хотя это обеспечивает максимальную гибкость, Ant делает каждый скрипт сборки уникальным и трудным для понимания. Внешние библиотеки, требуемые вашим проектом, обычно проверяются на контроль версий, потому что нет никакого автоматизированного механизма, чтобы вытащить их из центрального расположения.

Maven 1, выпущенный в июле 2004 года, попытался облегчить этот процесс. Он обеспечил стандартизированную структуру проекта и каталога, а также управление зависимостями. К сожалению, пользовательскую логику сложно реализовать

Gradle вписывается в это поколение инструментов сборки и удовлетворяет многим требованиям современных инструментов сборки (рисунок 1). Это обеспечивает выразительный DSL, соглашение по конфигурации подхода и мощное управление зависимостями. Это делает правильный шаг, чтобы отказаться от XML и представить динамический язык Groovy для определения вашей логики сборки. Звучит убедительно, не так ли?

Gradle сочетает в себе лучшие функции других инструментов сборки.

Изображение 2804

Gradle Compelling Набор функций

Изображение 2805

Зачем создавать свои проекты Java с Gradle, а не с Ant или Maven?

Инструмент сборки по умолчанию для Android (и новая звезда инструментов сборки в JVM) предназначен для упрощения создания сценариев сложных многоязычных сборок. Стоит ли переходить на него, если вы используете Ant или Maven?

Ключ к разблокировке возможностей Gradle в вашем скрипте сборки лежит в обнаружении и применении его доменной модели, как показано на рисунке ниже. Изображение 2806

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

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

Другой пример - способ выражения зависимостей во внешних библиотеках, очень распространенная проблема, решаемая инструментами сборки. Готовый Gradle предоставляет вам два блока конфигурации для вашего скрипта сборки, которые позволяют вам определять зависимости и репозитории, из которых вы хотите их получить. Если стандартные элементы DSL не соответствуют вашим потребностям, вы даже можете ввести свой собственный словарь через механизм расширения Gradle.

Интеграция с другими инструментами сборки

Gradle хорошо играет со своими предшественниками Ant, Maven и Ivy, как показано на рисунке ниже.

Изображение 2807

Автоматизация вашего проекта от сборки до развертывания

Изображение 2808

На изображении: этапы конвейера развертывания.

  • Компиляция кода

  • Запуск юнит и интеграционные тесты

  • Выполнение статического анализа кода и генерация тестового покрытия

  • Создание дистрибутива

  • Обеспечение целевой среды

  • Развертывание результата

  • Выполнение дымовых и автоматических функциональных испытаний

Я ссылаюсь на два урока, чтобы написать ответ один, два

  • 1
    Кроме того, вы можете создавать свои приложения Android из командной строки на своем компьютере или на компьютерах, на которых Android Studio не установлена (например, на серверах непрерывной интеграции).
8

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

Вот несколько вещей, которые вы можете сделать с помощью gradle.

  • Минимальная конфигурация, требуемая для новых проектов, поскольку Gradle имеет настройки по умолчанию для ваших проектов студии Android.

  • Декларация о зависимости. Вы можете объявлять файлы jar зависимости или файлы библиотек, размещенные на локальном или удаленном сервере.

  • Gradle автоматически генерирует тестовый каталог и тестовый APK из вашего источника проекта.

  • Если вы добавите всю необходимую информацию, такую ​​как keyPassword и keyAlias, в файл сборки Gradle, вы можете использовать Gradle для создания подписанных APK.

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

8

В Android Studio Gradle - это настраиваемый инструмент сборки, используемый для сборки пакетов андроида (файлы apk) путем управления зависимостями и предоставления пользовательской логики сборки.

Файл APK (пакет приложений для Android) представляет собой специально отформатированный zip файл, содержащий

  • Байт-код
  • Ресурсы (изображения, пользовательский интерфейс, xml и т.д.)
  • Файл манифеста

Файл apk подписывается и помещается на устройство с использованием ADB (Android Debug Bridge), где он выполняется.

8

Одно из преимуществ Gradle, которое я нашел:

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

8

Gradle - это расширенный инструментарий сборки для Android, который управляет зависимостями и позволяет определять собственную логику сборки. функции похожи

  • Настройка, настройка и расширение процесса сборки.

  • Создайте несколько APK для вашего приложения с различными функциями, используя один и тот же проект.

  • Повторное использование кода и ресурсов.

обращаться

6

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

5

Система сборки Gradle предназначена для поддержки сложных сценариев при создании приложений для Android:

Мультираспределение: одно и то же приложение должно быть настроено для нескольких клиентов или компаний.

Multi-apk:, поддерживающий создание нескольких apk для разных типов устройств при повторном использовании частей кода

4

@Brian Gardner:

Gradle - это расширенный инструмент построения и менеджер зависимостей для проектов программирования. Он имеет специфический для домена язык, основанный на Groovy. Gradle также предоставляет поддержку по принципу "по отдельности" для многих типов проектов, включая Java, Android и Scala.

Функция Gradle:

  • Управление зависимостями
  • Использование Ant из Gradle
  • Gradle Плагины
  • Плагин Java
  • Плагин Android
  • Многопроектные сборки
3

Gradle - это то, что позволяет автоматизировать создание сложных Android-проектов, которые включают 10 тысяч строк кода из нескольких источников, проектов, библиотек и т.д. Он может условно генерировать несколько оптимизированных APK на основе множества конфигураций спецификации - если вы заинтересованы, другие ответы содержат более подробную информацию об этом аспекте Gradle.

Однако, если вы новичок в разработке Android, Gradle в 99% случаев - это то, что останавливает ваш проект от строительства. Это непостижимая сложная система, которая эффективно запутывает процесс сборки Android и по существу делает его недоступным для неопытных разработчиков, т.е. Для создания простого Android-приложения начального уровня ничего не подозревающему новичкам, возможно, потребуется изучить и понять многие вещи, которые они не торговали за например:

  • Структура и экосистема Android APK
  • Android Studio
  • Java-классы и зависимости
  • Groovy
  • Gradle скрипты сборки
  • Многие другие сложные и интересные технологии

Все эти вещи интересны и полезны для разработчиков Android, но они далеки от простых и представляют собой серьезный барьер для входа. Я подозреваю, что то, что вдохновило OP на задание на этот вопрос, - это чувство разочарования, которое неизбежно поражает разработчика неофитов, слишком долго, пытаясь получить простое приложение для создания и постоянно пресекаться Gradle. Проблема усугубляется подавляющим количеством высокотехнологичной документации, доступной для всех этих технологий. Также для большого количества потребностей развития Gradle является излишним.

Альтернативой является создание оболочки script, которая создает ваш проект, автоматизируя инструменты, доступные в SDK для Android. Достоинства этого подхода много, для начала он, вероятно, лучший способ изучить и понять процесс сборки и экосистему Android, и это позволяет вам полностью контролировать, как ваше приложение построено. Однако этот подход более подходит для глубоко неоправданных технических руководителей, чем для неопытных noobs, опробовавших андроид.

Что видно из-за его отсутствия (пожалуйста, сообщите мне, если есть такая вещь), это начальный уровень, легкая среда разработки с уменьшенным набором функций, которая одновременно упрощает процесс сборки, а не затушевывает его (так что не netbeans или eclipse) возможно, все еще может использовать Gradle (что было не так с Ant). Это должно облегчить создание APK, которые соответствуют нескольким общим конфигурациям, и использовать структуру проекта, которая может развиваться до полного проекта Android Studio, если вы решите принять его таким образом.

2

Для более фундаментального и полного понимания gradle и build system проверьте этот курс udacity, созданный самими инженерами Gradle.

Gradle для Android и Java

0

Gradle = Groovy + Cradle Hans Dockter комментарий на форуме

Путаница немного ненужна, когда ее можно было бы просто назвать "Сборка" или что-то в Android Studio.

Нам нравится усложнять себе жизнь в сообществе разработчиков.

0

Проще говоря, Gradle - это инструмент, предоставляемый Android Studio для реализации двух важных процессов:

  1. Строить наши проекты
  2. Упакуйте файл AndroidManifest.xml, папку res и двоичный код в специально отформатированный zip файл APK
-2

a gradle - это то, что нужно, чтобы вы не спали по ночам, в отличие от "колыбели", которая должна помочь вам спать

Ещё вопросы

Сообщество Overcoder
Наверх
Меню