安卓bp文件和mk文件转换

本文详细介绍了Android源码编译中的关键参数设置(如Javaflags、Cflags和Cppflags)、文件路径管理(如资源文件和头文件),以及各种模块的编译选项,包括动态库、静态库、可执行程序、Java库等,并讨论了安装分区和库依赖的处理。
摘要由CSDN通过智能技术生成


前言

Tips:在安卓源码 build\soong\androidmk\androidmk 路径下的 android.go 文件中有bp 文件和 mk 文件的转换过程


一、编译相关参数

1.1 Java flags

Android.mk LOCAL_JAVACFLAGS :=
Android.bp javacflags: [“xxx”, “xxx”,]

1.2 C flags

Android.mk LOCAL_CFLAGS :=
Android.bp cflags: [“xxx”, “xxx”,]

1.3 Cpp flags

Android.mk LOCAL_CPPFLAGS :=
Android.bp cppflags : [“xxx”, “xxx”,]

二、文件路径

2.1 资源文件路径

Android.mk LOCAL_RESOURCE_DIR :=
Android.bp resource_dirs: [“xxx”,]

2.2 导出的头文件路径

Android.mk LOCAL_EXPORT_C_INCLUDE_DIRS :=
Android.bp export_include_dirs: [“xxx”,]

2.3 本地头文件路径

Android.mk LOCAL_C_INCLUDES :=
Android.bp local_include_dirs: [“xxx”,]

三、安装分区控制

3.1 安装到 odm 中

Android.mk LOCAL_ODM_MODULE := tru
Android.bp device_specific: true

3.2 安装到 product 中

Android.mk LOCAL_PRODUCT_MODULE := true
Android.bp product_specific: true

3.3 安装到 vendor 中

Android.mk LOCAL_VENDOR_MODULE := true or
LOCAL_PROPRIETARY_MODULE := true
Android.bp proprietary: true or vendor: true

四、库依赖

4.1 依赖的模块的共享链接库

Android.mk LOCAL_STATIC_LIBRARIES :=
Android.bp libs: [“xxx”, “xxx”,]

4.2 依赖的动态库

Android.mk LOCAL_SHARED_LIBRARIES :=
Android.bp shared_libs: [“xxx”, “xxx”,]

4.3 依赖的静态库

Android.mk LOCAL_STATIC_LIBRARIES :=
Android.bp static_libs: [“xxx”, “xxx”,]

五、编译不同类型的模块

5.1 编译成 C/C++ 动态库

Android.mk include $(BUILD_SHARED_LIBRARY)
Android.bp cc_library_shared {}

5.2 编译成 C/C++ 静态库

Android.mk include $(BUILD_STATIC_LIBRARY)
Android.bp cc_library_static {}

5.3 主机端动态 C/C++ 库

Android.mk include $(BUILD_HOST_SHARED_LIBRARY)
Android.bp cc_library_host_shared {}

5.4 主机端静态 C/C++ 库

Android.mk include $(BUILD_HOST_STATIC_LIBRARY)
Android.bp cc_library_host_static {}

5.5 编译成 C/C++头文件库

Android.mk include $(BUILD_HEADER_LIBRARY)
Android.bp cc_library_headers {}

5.6 C/C++ 可执行程序

Android.mk include $(BUILD_EXECUTABLE)
Android.bp cc_binary {}

5.7 主机端 C/C++ 可执行程序

Android.mk include $(BUILD_HOST_EXECUTABLE)
Android.bp cc_binary_host {}

5.8 C/C++ 测试程序

Android.mk include $(BUILD_NATIVE_TEST)
Android.bp cc_test {}

5.9 主机端 C/C++ 测试程序

Android.mk include $(BUILD_HOST_NATIVE_TEST)
Android.bp cc_test_host {}

5.10 C/C++ 基准测试程序

Android.mk include $(BUILD_HOST_NATIVE_TEST)
Android.bp cc_test_host {}

5.11 主机端 C/C++ 基准测试程序

Android.mk include $(BUILD_HOST_NATIVE_BENCHMARK)
Android.bp cc_benchmark_host {}

5.12 可安装的 Java 库

Android.mk include $(BUILD_JAVA_LIBRARY)
Android.bp java_library_installable {}

5.13 Java 库

Android.mk include $(BUILD_STATIC_JAVA_LIBRARY)
Android.bp java_library {}

5.14 Java 静态库

Android.mk include $(BUILD_STATIC_JAVA_LIBRARY)
Android.bp java_library_static {}

5.15 主机端 Java 库

Android.mk include $(BUILD_HOST_JAVA_LIBRARY)
Android.bp java_library_host {}

5.16 主机端 Dalvik Java 库

Android.mk include $(BUILD_HOST_DALVIK_JAVA_LIBRARY)
Android.bp java_library_host_dalvik {}

5.17 Android 应用程序

Android.mk include $(BUILD_PACKAGE)
Android.bp android_app {}

5.18 CTS 支持包

Android.mk include $(BUILD_CTS_SUPPORT_PACKAGE)
Android.bp cts_support_package {}

5.19 CTS 测试包

Android.mk include $(BUILD_CTS_PACKAGE)
Android.bp cts_package {}

5.20 CTS 目标 Java 库

Android.mk include $(BUILD_CTS_TARGET_JAVA_LIBRARY)
Android.bp cts_target_java_library {}

5.21 CTS 主机端 Java 库

Android.mk include $(BUILD_CTS_HOST_JAVA_LIBRARY)
Android.bp cts_host_java_library {}
  • 23
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值