soong/android.bp 构建如何工作?

问题描述 投票:0回答:3

Google 推出了 Soong 构建系统来替代旧的 makefile 系统。

知道它是如何工作的吗?源代码中的 Android.bp 是什么?

android android-source android-build android-soong
3个回答
22
投票
  1. ninja 是 aosp 的新构建工具,它使用 *.ninja 来工作;
  2. 对于旧版Android.mk,应用kati将Android.mk转换为*.ninja;
  3. google 现在使用 Android.bp 文件来描述模块编译细节,该文件也通过 blueprint/soong 转换为 *.ninja;
  4. Android.mk重写为Android.bp后,kati将被删除,我们将只剩下blueprint/soong/ninja;

正如这个链接所解释的。


14
投票

只有 Google 员工才能解释,一些基本文档在这里:

https://android.googlesource.com/platform/build/soong/

也尝试搜索 Google 群组:

https://groups.google.com/forum/#!topic/android-building/0Hy7kLwlBBk

请注意,在 Oreo 中,Android.mk 文件继续工作并且可以依赖于 Android.bp 文件,但是 Android.bp 文件不能依赖于 Android.mk 文件。显然,随着时间的推移,越来越多的构建系统将转换为 Android.bp,希望 Google 在文档方面做得更好。

2020 年 1 月更新

Google 在此处添加了更多信息:https://source.android.com/setup/build/index


7
投票

Soong 构建系统相当于传统的“Android make 构建系统”。因此,Soong 是程序的集合,这些程序是“如何构建数百个 Android 模块”以及许多小工具的食谱。

Ninja 是一个真正处理由 Blueprint 或 Kati 制作的最终构建清单(Build.ninja)的过程(将 Android.mk 翻译为 Android.bp)。

Blueprint 类似于 GNU Make 语法,因此被称为“构建系统的框架”。它是由Go语言编写的,因此它更好地提供了多重处理。蓝图将“手写构建清单”(*.bp) 翻译为最终清单(build.ninja),这是 ninja 格式。

© www.soinside.com 2019 - 2024. All rights reserved.