Android.bp文件简介

Android.bp

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

语法

根据设计,Android.bp 文件很简单。它们不包含任何条件语句,也不包含控制流语句;所有复杂问题都由用 Go 编写的编译逻辑处理。

Android.bp文件记录着模块信息,每一个模块以模块类型开始,后面跟着一组模块的属性,以名值对(name: value)表示,每个模块都必须有一个 name属性。基本格式,以Android.bp文件为例说明:

cc_library_shared {
    name: "libun7zip",
    srcs: [
        "7z/*.c",
        "7z/src/*.c",
    ],
    local_include_dirs: [
        "7z/src/",
    ],
    vendor: true,
}

同时,Android.mk可以引用Android.bp中的模块,反之Android.bp不能引用Android.mk中的模块。

说明

cc_library_shared :编译成动态库,类似于Android.mk中的BUILD_SHARED_LIBRARY
cc_binary:编译成可执行文件,类似于Android.mk中的BUILD_EXECUTABLE
name :编译出的模块的名称,类似于Android.mk中的LOCAL_MODULE
srcs:源文件,类似于Android.mk中的LOCAL_SRC_FILES
local_include_dirs:指定路径查找头文件,类似于Android.mk中的LOCAL_C_INCLUDES
shared_libs:编译所依赖的动态库,类似于Android.mk中的LOCAL_SHARED_LIBRARIES
static_libs:编译所依赖的静态库,类似于Android.mk中的LOCAL_STATIC_LIBRARIES
cflags:编译flag,类似于Android.mk中的LOCAL_CFLAGS

注释

Android.bp使用单行注释//和多行注释/* */两种方式。

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android.bp 文件Android 操作系统的构建系统使用的蓝图文件,它定义了 Android 操作系统中的模块、库和其他构建单元之间的依赖关系、操作系统的编译选项和其他构建相关的细节。 下面是 Android.bp 文件的一些重要部分: 1. 模块定义 在 Android.bp 文件中,每个模块都必须进行定义。模块可以是 C/C++ 库、Java 库、二进制可执行文件Android 应用程序等等。每个模块都必须有一个唯一的名称,并且指定它所依赖的其他模块。 2. 模块属性 每个模块都有一组属性,这些属性描述了模块的构建细节、依赖关系和其他相关信息。例如,C/C++ 库的属性可能包括编译器选项、链接器选项、头文件路径等等。 3. 模块依赖 在 Android.bp 文件中,模块之间的依赖关系是通过模块属性中的 dependencies 属性来定义的。这个属性包含一个列表,列出了当前模块依赖的其他模块。构建系统将使用这些依赖关系来确定构建该模块所需的所有其他模块。 4. 模块的构建规则 在 Android.bp 文件中,每个模块都必须定义如何构建它本身。这通常涉及到指定编译器、链接器、头文件路径等等。构建系统将使用这些规则来编译和链接该模块。 5. 模块的输出 每个模块都会产生一些输出,例如 C/C++ 库将生成一个静态库和动态库文件。在 Android.bp 文件中,每个模块都必须指定其输出文件的名称和路径。 总的来说,Android.bp 文件Android 操作系统构建系统的核心文件之一。它定义了操作系统中的各种模块、库和其他构建单元之间的依赖关系和构建规则,并指定了它们的输出文件。了解 Android.bp 文件的结构和语法,可以帮助开发人员更好地理解 Android 操作系统的构建流程,并编写出高质量的 Android 应用程序和系统组件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值