怎么看Android.bp文件

来源

Android.bp 是 Android 编译系统从 make 系统切换到 ninja 系统过程中的产物,Android 7.0 和 8.0 是该编译系统切换的过渡期,所以在 Android 7.0 和 8.0 时既可以看到 Android.mk,也可以看到 Android.bp,但是从 Android 9.0 开始,在Android 源码里面 Android.mk 已经看不到了,只有少数 Vendor 厂家的代码里面还可以看到。
切换的原因是,Android 要提升编译效率,显著提升的是第一次编译后增量编译的速度。

文件内容

以 hardware/libhardware/Android.bp 为例,其内容与 json 文件非常类似,实际上也是一种更加简洁的编译配置文件。

cc_library_shared {
     name: “libxmlrpc++,

     rtti: true,
     cppflags: [-Wall”,-Werror”,-fexceptions”,
     ],
     export_include_dirs: [“src”],
     srcs: [“src/**/*.cpp”],

     target: {
           darwin: {
                enabled: false,
           },
     },
}

同样的.mk文件,如下:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE := libxmlrpc++
LOCAL_MODULE_HOST_OS := linux

LOCAL_RTTI_FLAG := -frtti
LOCAL_CPPFLAGS := -Wall -Werror -fexceptions
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/src

LOCAL_SRC_FILES := $(call \
     all-cpp-files-under,src)
include $(BUILD_SHARED_LIBRARY)

可以看出bp文件更为简介直观。
具体字段含义可以到官网查询安卓构建和对应的模块含义

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、付费专栏及课程。

余额充值