Сборка мобильных приложений для операционной системы android с помощью docker и gradle

Сборка мобильных приложений для операционной системы android с помощью docker и gradle

В данной демонстрируются возможности использования Docker для сборки мобильных приложений для операционной системы Android.

Авторы публикации

Рубрика

IT-Технологии

Журнал

Журнал «Научный лидер» выпуск # 23 (68), Июнь ‘22

Дата публицакии 05.06.2022

Поделиться

Docker – это программная платформа для быстрой разработки, тестирования и развертывания приложений. Docker упаковывает ПО в стандартизованные блоки, которые называются контейнерами. Каждый контейнер включает все необходимое для работы приложения: библиотеки, системные инструменты, код и среду исполнения.

Для сборки приложений под ОС Android наиболее популярным инструментом в настоящее время является Gradle. Gradle — это система автоматизации сборки, которая является полностью открытым исходным кодом и использует концепции Apache Maven и Apache Ant. В отличии от Maven, который использует XML для конфигурации проекта, Gradle предоставляет DSL на языках Groovy и Kotlin.

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

Для создания образа создается файл, называемый Dockerfile и содержащий все инструкции, необходимые для подготовки системы к работе. В листинге 1 представлен Dockerfile, используемый для создания образа контейнера, в котором будет производиться сборка Android-приложения.

 

Листинг 1 – Пример Dockerfile

  1. FROM gradle:6.5.0
  2. ENV SDK_URL="https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip" \
  3. ANDROID_HOME="/usr/local/android-sdk" \
  4. ANDROID_VERSION=30 \
  5. ANDROID_BUILD_TOOLS_VERSION=30.0.3
  6. RUN mkdir "$ANDROID_HOME" .android \
  7. && cd "$ANDROID_HOME" \
  8. && curl -o sdk.zip $SDK_URL \
  9. && unzip sdk.zip \
  10. 10.&& rm sdk.zip \
  11. 11.&& mkdir "$ANDROID_HOME/licenses" || true \
  12. 12.&& echo "android-sdk-license" > "$ANDROID_HCME/licenses/android-sdk-license" \
  13. 13.&& echo "android-sdk-preview-license" > "$ANDROID_HOME/licenses/android-sdk-preview-license"
  14. 14.RUN $ANDROIO_HOME/tools/bin/sdkmanager --update
  15. 15.RUN $ANDROID_HOME/tools/bin/sdkmanager"build-tools;${ANDROID_BUILD_TOOLS_VERSION}" \
  16. 16."platforms;android-${ANDROID_VERSION}" \

17.  "platform-tools"

 

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

В строках 2-5 задаются переменные с папкой для Android SDK и версиями SDK и SDK Build tools.

В строках 6-10 создается директория для установки SDK, скачивается архив с SDK необходимой версии, распаковывается и затем удаляется.

В строках 11-13 создается папка и файлы с лицензиями. Исходя из официальной документации Android, данные файлы нельзя сгенерировать автоматически, поэтому необходимо скопировать их с устройства, на котором данные лицензии уже подтверждены.

В последующих строках запускается обновление SDK, установка SDK build tools и platform tools.

Сборка образа контейнера осуществляется при помощи команды: “docker build -t <название образа> .”. Результат сборки данного образа показан на рис. 1.

Для запуска контейнера используется следующая команда: “docker run --rm -v <директория проекта>:/home/gradle/ -w /home/gradle <название образа> <команда, которая будет выполнятся в контейнере>”. Для сборки проекта используется команда gradle assembleDebug (пример выполнения команды показан на рис. 2), но аналогичным образом можно выполнять другие задачи Gradle.

В данной статье был рассмотрен один из способов сборки приложений для ОС Android с использованием Docker и Gradle.  Данный способ будет полезен, например, для организации CI/CD. Помимо функционала рассмотренного выше, Docker предоставляет разработчику большое количество возможностей, упрощающих разработку, тестирование и развертывание приложений, в том числе и для ОС Android.

 

Рис.1 Сборка Docker образа

 

Рис. 2. Пример сборки Android-приложения в контейнере

Список литературы

  1. Сборка Android-проекта в Docker-контейнере [Электронный ресурс]// URL https://habr.com/ru/post/465193/
  2. Эдриен, Моуэт Использование Docker. Разработка и внедрение программного обеспечения при помощи технологии контейнеров. Руководство / Моуэт Эдриен. - М.: ДМК Пресс, 2017. - 427 c.
  3. Turnbull J. The Docker Book. James Turnbull, 2014, p. 338.

Предоставляем бесплатную справку о публикации,  препринт статьи — сразу после оплаты.

Прием материалов
c по
Осталось 4 дня до окончания
Размещение электронной версии
Загрузка материалов в elibrary