Android编译系统中的Android.bp【转】

本文介绍了Android Nougat引入的Android.bp和相关工具链,包括Blueprint和Soong。Android.bp作为新的配置文件替代Android.mk,通过Blueprint解析并转换成Ninja文件。Soong用于解析Android.bp的含义并生成Ninja文件。文章还提到,Android.mk可通过Soong转换为Android.bp,但仅限于简单的配置。Android.bp、Blueprint、Soong和Ninja之间的关系以及转换流程也在文中阐述。
摘要由CSDN通过智能技术生成

本文转载自:

转自:http://note.qidong.name/2017/08/android-blueprint/

Android编译系统中的Android.bp、Blueprint与Soong

本文简单介绍Android Nougat(7.0)中引入的Android.bp,及其相关工具链。

简介

Android.bp,是用来替换Android.mk的配置文件。 它使用Blueprint框架来解析,最终转换成Ninja文件。

与Android.mk不同的是,Android.bp是纯粹的配置文件,不包含分支、循环等流程控制,也不能做算数、逻辑运算。 与此同时,Ninja文件也是如此。 这就产生了一些新的问题与需求——在Android项目上进行选择编译、解析配置、转换成Ninja等——Soong应运而生。 Soong其实就相当于Makefile编译系统的核心,即build/make/core/下面的内容。 它负责提供Android.bp的含义定义与解析,并将之转换为Ninja文件。。

此外,Soong还会编译产生一个androidmk命令,可以手动把Android.mk转换成Android.bp。 这只对无选择、循环等复杂流程控制的Android.mk生效。

BlueprintSoong都是由Golang写的项目。 从Android Nougat开始,prebuilts/go/目录下新增了Golang所需的运行环境,在编译时使用。

Android.bp以及相关支持,从Android Nougat开始加入,从Android Oreo(8.0)开始默认开启。 如果需要在Android Nougat的版本使用,需要在执行编译时添加变量。

make'USE_SOONG=true'

单独编译blueprint

启用Soong以后,在Android编译最开始的准备阶段,会执行build/soong/soong.bash进行环境准备。 其中会先编译、安装Blueprintout目录下。 也就是说,在编译Android项目时,Android.bp相关工具链会自动编译,无需费神。

Soong是与Android强关联的一个项目,而Blueprint则相对比较独立,可以单独编译、使用。

编译Blueprint,首先要具备Golang环境。 然后,按照以下步骤执行命令。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式小庄老师

要是觉得不错,就给我点支持吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值