Android.bp是 Android 构建系统(Android Build System)中的配置文件,用于描述如何编译和打包项目中的模块。它是用Blueprint编写的,其语法类似于 JSON,但专为 Android 编译系统设计,提供了更高效、灵活的模块化管理。 1. 基本语法结构 Android.bp文件的基本结构是由多个模块(module)定义组成的,每个模块使用一个函数来...
Android.bp可以支持多种预编译类型,具体定义在Android源码的build/soong/androidmk/cmd/androidmk/android.go可以查看,如下图所示: var prebuiltTypes = map[string]string{ "SHARED_LIBRARIES": "cc_prebuilt_library_shared", "STATIC_LIBRARIES": "cc_prebuilt_library_static", "EXECUTABLES": "cc_prebuilt_...
Android.bp 文件中的模块以模块类型开头,然后是一组格式属性:name: value,在一点上Android.bp的语法结构与JSON的语法结构相似,都是以键值对的形式编写。下面是一个简单示例: android_app{name:"Provision",srcs:["**/*.java"],platform_apis:true,product_specific:true,certificate:"platform",} 那么接下来逐行...
Soong编译系统的设计思想是消除.mk文件中的if/else等逻辑,使.bp文件只是一个简单的编译逻辑,这些复杂的选择配置逻辑应该放在更高层,比如使用更好调试的Python来编写。 二、Android.bp Android.bp的出现就是为了替换Android.mk文件。bp跟mk文件不同,它是纯粹的配置,没有分支、循环等流程控制,不能做算数逻辑运算。如...
bpfmt-w . 7、Android.mk转为Android.bp androidmk工具可以把mk文件转换为bp文件,但一些复杂的用法和自定义的规则需要手动转换。工具目录为:build/soong/androidmk/ androidmkAndroid.mk>Android.bp 8、支持的模块类型 Android.bp可以支持android_app、cc_binary、cc_binary_host等多种类型,具体如下图: ...
Android.bp java_library_static { ... } 3 编译成 App 应用 Android.mk include $(BUILD_PACKAGE) Android.bp android_app { ... } 4、 编译成 Native动态库 Android.mk include $(BUILD_SHARED_LIBRARY) Android.bp cc_library_shared { ... } ...
7、Android.mk转为Android.bp androidmk工具可以把mk文件转换为bp文件,但一些复杂的用法和自定义的规则需要手动转换。工具目录为:build/soong/androidmk/ androidmkAndroid.mk>Android.bp 回到顶部 8、支持的模块类型 Android.bp可以支持android_app、cc_binary、cc_binary_host等多种类型,具体如下图: ...
android_library_import {name: "lib-lottie",aars: ["lottie-2.8.0.aar"],sdk_version: "current",} 然后在模块目录下 Android.bp 文件中的 android_app {} 中 static_libs 引入 “lib-lottie”, android_app {name: "LiveTv",srcs: ["src/**/*.java"],static_libs: ["lib-lottie","android-su...
Android.bp可以支持android_app、cc_binary、cc_binary_host等多种类型,具体定义在Android源码的build/soong/androidmk/cmd/androidmk/android.go可以查看,具体如下: var moduleTypes = map[string]string{ "BUILD_SHARED_LIBRARY": "cc_library_shared", "BUILD_STATIC_LIBRARY": "cc_library_static", "BUILD_...
subdirs : 是一个文件级的顶层属性,指定后会查找次级目录下的Android.bp。 2. 示例 我们来看一下,android 中一个实际的 bp 文件: android_app { name: "NFC", srcs: [ "src/**/*.java", "nci/**/*.java", ":statslog-Nfc-java-gen", ...