Android переходит на систему сборки Bazel

Разработчики Google кто стоит за разработкой Android, дал узнать через объявление, что Проект движется Android с открытым исходным кодом (AOSP) для использования системы сборки Bazel вместо нынешней системы компиляции Soong, Ninja и Make.

В репозиторий Android уже добавлена ​​поддержка Bazel, Но переход в новую систему сборки по умолчанию se будет распространяться на несколько версий платформа, чтобы сделать миграцию максимально простой и прозрачной.

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

Чтобы разрешить постепенную миграцию, некоторые изменения для упрощения сборки Android уже включены в Базель, например, возможность анализировать и запускать файлы сборки в формате Ninja.

Утверждается, что для платформы Android, переход на Bazel повысит гибкость настройки процесса сборки, Это улучшит самоанализ / мониторинг прогресса сборки и подключения зависимостей, реализует повторяемые сборки, упростит сложные сценарии сборки, улучшит интеграцию с различными обработчиками сборки и тестирования и сократит время сборки.

Переход на Bazel позволит AOSP:

Обеспечение большей гибкости для настройки компиляции AOSP (лучшая поддержка условных выражений)
Разрешить более глубокий анализ прогресса сборки и зависимостей AOSP
Включить правильные и воспроизводимые (водонепроницаемые) сборки AOSP
Внедрить механизм конфигурации, который упростит сборку AOSP.
Обеспечить дальнейшую интеграцию строительных и испытательных работ
Объедините все это, чтобы сократить время сборки и улучшить впечатления
Преимущества этой миграции для сообщества Bazel:

В Bazel ведутся значительные инвестиции для поддержки сборок платформы Android.
Экосистема Bazel и расширение сообщества на начальном этапе включают десятки тысяч разработчиков платформы Android, производителей оригинального оборудования (OEM) для телефонов Android и поставщиков микросхем.
Правила Google Bazel для создания приложений Android будут иметь открытый исходный код, использоваться в AOSP и поддерживаться Google в партнерстве с сообществом Android / Bazel.
Лучшая совместимость с Bazel для создания приложений для Android
Лучшая поддержка правил для других языков, используемых для создания платформы Android (Rust, Java, Python, Go и т. Д.)
Сильная поддержка версий Bazel Long Term Support (LTS), приносящая пользу расширенному сообществу Bazel
Улучшенная документация (учебные пособия и справочная информация)

Экосистема Базел на Android расширит количество вовлеченных участников в разработке, упростит приложение для создания приложений для Android (в том числе Google намеревается открыть код для создания сценариев для своих приложений Android), он улучшит поддержку различных языков программирования, используемых в Android (Rust, Java, Python, Go), он предоставит ресурсы для создания длительных версий длинных версий и будет привести к более качественной и обширной документации.

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

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

В отличие от Make и Ninja, Bazel использует подход более высокого уровня. для создания правил компиляции, которые вместо определения командных привязок для компилируемых файлов используют более абстрактные предварительно созданные блоки и определяют целевые платформы / платформы сборки.

Компоненты проекта описаны в текстовом файле BUILD в виде пакета библиотек, исполняемых файлов и тестов, без детализации на уровне отдельных файлов и команд для вызова компилятора.

В файлах BUILD все зависимости должны быть полностью определены, на основе которых принимаются решения о перекомпоновке компонентов после внесения изменений (перестраиваются только измененные файлы) и распараллеливании процесса сборки.

источник: https://developers.googleblog.com


Будьте первым, чтобы комментировать

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: AB Internet Networks 2008 SL
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.