Разница между Android.bp и Android.mk - PullRequest
0 голосов
/ 18 сентября 2018

В коде платформы Android O мы видим файлы как Android.bp, так и Android.mk. Зачем нужны оба файла? В соответствии с документацией .bp файлы используются для сборки системы Soong. Когда мы сделаем сборку, какой файл будет выполнен? .mk или .bp?

1 Ответ

0 голосов
/ 02 февраля 2019

Soong - это система сборки для Android, предназначенная для замены старой системы сборки на основе * .Сонг читает Android.bp файлы, которые определяют модули в Bazel-подобном синтаксисе.Сам Soong написан на Go поверх платформы Blueprint , которая в свою очередь использует Ninja в качестве серверной части.Ninja разработан для высокой эффективности, особенно для инкрементных сборок.

Поскольку Android - это большой проект, переход на Soong / Android.bp займет некоторое время.В течение переходного периода поддерживаются оба формата: Soong для Android.bp и Kati для Android.mk.Стандартная сборка будет запускать оба.Модули в файлах Android.mk могут зависеть от модулей в файлах Android.bp, но не иначе.

Важным отличием Android.bp является отсутствие явных операторов if для повышения производительности.В то время как Android.mk файлы могут содержать ifeq проверки произвольных переменных среды, формат Android.bp позволяет различать только заранее определенные случаи, такие как архитектура процессора или сборки отладки / выпуска ( ссылка ).Различия в пользовательских случаях должны быть определены отдельно в Go.

Из-за конструктивных различий автоматическое преобразование Android.mk в Android.bp невозможно, хотя существует инструмент под названием androidmk которые могут переводить простые Android.mk файлы (например, без операторов if) в Android.bp.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...