当前位置:   article > 正文

Makefile、.mk、.bp、Blueprint、Soong、kati工具链的关系_.mk .bp

.mk .bp
  1. 一、Android版本相应的发展演变过程:
  2. Android 7.0引入ninja和kati
  3. Android 8.0使用Android.bp来替换Android.mk,引入Soong
  4. Android 9.0强制使用Android.bp
  5. 二、生成.ninja工具链关系:Android.bp、Blueprint、Soong、kati:总之都是用来把Makefile、.bp、.mk生成.ninja的,只是用了不同的工具生成而已.
  6. 1.Android.bp --> Blueprint --> Soong --> Ninja
  7. 2.Makefile or Android.mk --> kati --> Ninja
  8. 3.Android.mk --> Soong --> Blueprint --> Android.bp
  9. 注意:androidmk工具可以使Android.mk生成Android.bp
  10. 三、Blueprint是生成、解析Android.bp 的工具,是Soong的一部分。
  11. Soong是专门为Android的编译而设计的工具,blueprint只是解析文件的形式,而soong则解释内容的含义。
  12. Blueprint和Soong都是有Go语言写的项目,从7.0开始在prebuilts/go/目录下新增了go语言的运行环境,在编译是使用。

  1. 1. Ninja
  2. ninja是一个编译框架,会根据相应的ninja格式的配置文件进行编译,但是ninja文件一般不会手动修改,而是通
  3. 过将Android.bp文件转换成ninja格文件来编译。
  4. 2. Android.bp
  5. Android.bp的出现就是为了替换Android.mk文件。bp跟mk文件不同,它是纯粹的配置,没有分支、循环等流程控
  6. 制,不能做算数逻辑运算。如果需要控制逻辑,那么只能通过Go语言编写。
  7. 3. Soong
  8. Soong类似于之前的Makefile编译系统的核心,负责提供Android.bp语义解析,并将之转换成Ninja文件。Soong
  9. 还会编译生成一个androidmk命令,用于将Android.mk文件转换为Android.bp文件,不过这个转换功能仅限于没
  10. 有分支、循环等流程控制的Android.mk才有效。
  11. 4. Blueprint
  12. Blueprint是生成、解析Android.bp的工具,是Soong的一部分。Soong负责Android编译而设计的工具,而
  13. Blueprint只是解析文件格式,Soong解析内容的具体含义。Blueprint和Soong都是由Golang写的项目,从
  14. Android 7.0,prebuilts/go/目录下新增Golang所需的运行环境,在编译时使用。
  15. 5. Kati
  16. kati是专为Android开发的一个基于Golang和C++的工具,主要功能是把Android中的Android.mk文件转换成
  17. Ninja文件。代码路径是build/kati/,编译后的产物是ckati。

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/526371
推荐阅读
  

闽ICP备14008679号