Android.bp是用来替换Android.mk的配置文件,它使用Blueprint框架来解析。Blueprint是生成、解析Android.bp的工具,是Soong的一部分。Soong则是专为Android编译而设计的工具,Blueprint只是解析文件的形式,而Soong则解释内容的含义,最终转换成Ninja文件。 1、模块定义一个模块从模块的类型开始,模块有不同的类型,如下例子中的“cc_binary”,模块包含一些属性格式为“property-name: property-value”,其中name属性必须指定,其属性值必须是全局唯一的。
默认模块“cc_defaults”的用法如下。
2、变量变量赋值可以通过“=”号赋值。
3、注释
4、类型具体支持以下几种类型:
5、操作符String类型、字符串列表类型和Map类型支持操作符“+”。 6、格式控制工具bpfmt是一个bp文件的格式控制工具,包括4个空格的缩进、列表有多个元素时每个元素一行、列表和map的最后一个元素多一个冗余的逗号等等。工具目录为:build/blueprint/bpfmt/ 在当前目录下执行以下命令: 7、Android.mk转为Android.bpandroidmk工具可以把mk文件转换为bp文件,但一些复杂的用法和自定义的规则需要手动转换。工具目录为:build/soong/androidmk/
8、支持的模块类型Android.bp可以支持android_app、cc_binary、cc_binary_host等多种类型,具体如下图: 9、支持预编译类型Android.bp可以支持5种预编译类型,如下图所示: 10、模块名称解析soong提供了可以在不同目录中配置相同的模块名称,只要每个模块的名称在不同的命令空间中声明。
11、条件式编译
|
|