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
.