来源
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)