如何编写Android.bp

在Android sdk下,之前都是使用Android.mk,想着换Android.bp 试试,结果遇到一些错误和误解。是一样整理一下自己的学习过程。

在 Android 的构建系统中,Android.bp 文件使用 Soong 构建系统来管理,其中每个模块类型(如 cc_binarycc_library 等)都有一组支持的属性。要查看特定模块类型支持哪些属性或在 SDK 中编写 Android.bp 文件的规则,可以参考以下几种方法:

1. 官方文档

Google 的官方 Soong 文档是最权威的参考资料,包含 Android.bp 文件的基本格式、模块类型、常用属性等信息。常用文档包括:

  • Soong Build System Documentation
  • Blueprint Reference (Soong uses Blueprint as its build configuration language)

在文档中,你可以找到 cc_binary 及其他模块类型的属性说明。

2. 查看 SDK 的源代码(.bp 文件)

在 Android SDK 中的 build/soong/cc/cc_binary.go 文件中定义了 cc_binary 模块。查看源码可以帮助你深入了解 cc_binary 支持的属性和它们的作用。你可以使用以下命令来查找模块文件:

grep -r "cc_binary" build/soong/ 

通常会找到类似 cc_binary.go 文件的实现,其中包含模块的所有配置项。

3. 使用 soong_docs 生成属性文档

在 Android 构建系统中,有一个 soong_docs 工具,用于生成所有模块类型的支持属性文档。可以执行以下命令来生成 Soong 文档:

m soong_docs 

这会在 out/soong/docs/ 目录下生成 HTML 格式的文档,例如 modules.html,其中列出了各模块的支持属性及其详细说明。

4. 查看已有的 Android.bp 示例文件

在 SDK 中查找 Android.bp 文件,可以参考其他已定义的模块。例如在 externalframeworkssystem 等目录下,有许多示例文件,涵盖了常用模块配置和规范。

find . -name "Android.bp" 

5. 使用 m help 查看 Android.bp 帮助

在 SDK 环境中运行以下命令,可以查看有关 SoongBlueprint 的一些帮助信息:

m help 

这会显示可用的构建系统命令,有助于理解 Soong 的构建规则和模块设置。

6. 常用 cc_binary 属性简介

  • name: 模块名称,生成的二进制名称。
  • srcs: 源文件列表。
  • include_dirs: 包含的头文件目录。
  • shared_libs: 共享库链接。
  • static_libs: 静态库链接。
  • cflags: 添加到编译命令中的编译标志。
  • ldflags: 添加到链接命令中的链接标志。
  • stl: 指定 STL 使用方式。
  • arch: 架构特定的编译配置。

通过这些步骤方法,基本可以全面了解并掌握Android.bp的编写了。^_^

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值