Android.bp快速入门

一、Soong 编译系统

在 Android 7.0 发布之前,Android 仅使用 GNU Make 描述和执行其构建规则。在Android系统级编译中,Make 构建系统得到了广泛的支持和使用,但它有一些缺点:编译缓慢、容易出错、无法扩展且难以测试,而Soong 构建系统正好提供了 Android build 所需的灵活性。

Soong 构建系统是在 Android 7.0 (Nougat) 中引入的,旨在取代 Make。它利用 Kati GNU Make 克隆工具和 Ninja 构建系统组件来加速 Android 的构建,Soong的编译流程图如下。
在这里插入图片描述

Soong编译系统下,原本打算输入是.bp文件,输出是.ninja文件,但是由于系统中的.mk文件还没有被完全消除掉,因此提供kati和ckati工具将.mk/Makefile文件转换为.ninja文件。.ninja成为编译系统的汇编文件,是不需要人为去修改的,相当于配置文件来调用gcc、java、clang等编译器去编译。

Soong编译系统的设计思想是消除.mk文件中的if/else等逻辑,使.bp文件只是一个简单的编译逻辑,这些复杂的选择配置逻辑应该放在更高层,比如使用更好调试的Python来编写。

二、Android.bp

Android.bp的出现就是为了替换Android.mk文件。bp跟mk文件不同,它是纯粹的配置,没有分支、循环等流程控制,不能做算数逻辑运算。如果需要控制逻辑,那么可以使用Android.mk或者Go语言进行

猜你喜欢

转载自blog.csdn.net/xiangzhihong8/article/details/124804586