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

Dea*_*ool 11 android android-build android-source android-soong

谷歌推出了Soong构建系统,取代了旧的makefile系统.知道它是如何工作的吗?请告诉我有关Android.bp的信息

osc*_*cat 11

  1. 忍者是aosp的新构建工具,使用*.ninja工作;
  2. 对于遗留的Android.mk,kati应用于将Androd.mk转换为*.ninja;
  3. 谷歌现在使用Android.bp文件来描述模块编译细节,这也被blueprint/soong转换为*.ninja;
  4. 毕竟Android.mk重写为Android.bp后,kati将被删除,我们将只有blueprint/soong/ninja;

正如此链接所述.


sat*_*ine 7

只有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在文档方面做得更好。


Ofu*_*sJK 6

Soong 构建系统相当于传统的“Android make 构建系统”。所以Soong是程序的集合,里面有很多小工具的“如何构建数百个android模块”的食谱。

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

Blueprint 就像 GNU Make 语法,因此被称为“构建系统的框架”。它是由 Go 语言制作的,因此它更好地提供了多处理。蓝图将“手写构建清单”(*.bp) 转换为忍者格式的最终​​清单(build.ninja)。

  • 即使是这个描述,我也不同意介绍宋/蓝图/忍者。这是一大堆知识碎片破坏了传统的构建系统(make & shell ..)。谷歌仍在改进中,仍然烦人的开发人员。为什么谷歌不接管和改进传统的运作良好的系统。 (3认同)