目录
- 前言
- 一、编译相关参数
- 二、文件路径
- 三、安装分区控制
- 四、库依赖
- 五、编译不同类型的模块
-
- 5.1 编译成 C/C++ 动态库
- 5.2 编译成 C/C++ 静态库
- 5.3 主机端动态 C/C++ 库
- 5.4 主机端静态 C/C++ 库
- 5.5 编译成 C/C++头文件库
- 5.6 C/C++ 可执行程序
- 5.7 主机端 C/C++ 可执行程序
- 5.8 C/C++ 测试程序
- 5.9 主机端 C/C++ 测试程序
- 5.10 C/C++ 基准测试程序
- 5.11 主机端 C/C++ 基准测试程序
- 5.12 可安装的 Java 库
- 5.13 Java 库
- 5.14 Java 静态库
- 5.15 主机端 Java 库
- 5.16 主机端 Dalvik Java 库
- 5.17 Android 应用程序
- 5.18 CTS 支持包
- 5.19 CTS 测试包
- 5.20 CTS 目标 Java 库
- 5.21 CTS 主机端 Java 库
前言
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 { … }