安卓bp文件和mk文件转换

目录

  • 前言
  • 一、编译相关参数
    • [1.1 Java flags](#1.1 Java flags)
    • [1.2 C flags](#1.2 C flags)
    • [1.3 Cpp flags](#1.3 Cpp flags)
  • 二、文件路径
    • [2.1 资源文件路径](#2.1 资源文件路径)
    • [2.2 导出的头文件路径](#2.2 导出的头文件路径)
    • [2.3 本地头文件路径](#2.3 本地头文件路径)
  • 三、安装分区控制
    • [3.1 安装到 odm 中](#3.1 安装到 odm 中)
    • [3.2 安装到 product 中](#3.2 安装到 product 中)
    • [3.3 安装到 vendor 中](#3.3 安装到 vendor 中)
  • 四、库依赖
    • [4.1 依赖的模块的共享链接库](#4.1 依赖的模块的共享链接库)
    • [4.2 依赖的动态库](#4.2 依赖的动态库)
    • [4.3 依赖的静态库](#4.3 依赖的静态库)
  • 五、编译不同类型的模块
    • [5.1 编译成 C/C++ 动态库](#5.1 编译成 C/C++ 动态库)
    • [5.2 编译成 C/C++ 静态库](#5.2 编译成 C/C++ 静态库)
    • [5.3 主机端动态 C/C++ 库](#5.3 主机端动态 C/C++ 库)
    • [5.4 主机端静态 C/C++ 库](#5.4 主机端静态 C/C++ 库)
    • [5.5 编译成 C/C++头文件库](#5.5 编译成 C/C++头文件库)
    • [5.6 C/C++ 可执行程序](#5.6 C/C++ 可执行程序)
    • [5.7 主机端 C/C++ 可执行程序](#5.7 主机端 C/C++ 可执行程序)
    • [5.8 C/C++ 测试程序](#5.8 C/C++ 测试程序)
    • [5.9 主机端 C/C++ 测试程序](#5.9 主机端 C/C++ 测试程序)
    • [5.10 C/C++ 基准测试程序](#5.10 C/C++ 基准测试程序)
    • [5.11 主机端 C/C++ 基准测试程序](#5.11 主机端 C/C++ 基准测试程序)
    • [5.12 可安装的 Java 库](#5.12 可安装的 Java 库)
    • [5.13 Java 库](#5.13 Java 库)
    • [5.14 Java 静态库](#5.14 Java 静态库)
    • [5.15 主机端 Java 库](#5.15 主机端 Java 库)
    • [5.16 主机端 Dalvik Java 库](#5.16 主机端 Dalvik Java 库)
    • [5.17 Android 应用程序](#5.17 Android 应用程序)
    • [5.18 CTS 支持包](#5.18 CTS 支持包)
    • [5.19 CTS 测试包](#5.19 CTS 测试包)
    • [5.20 CTS 目标 Java 库](#5.20 CTS 目标 Java 库)
    • [5.21 CTS 主机端 Java 库](#5.21 CTS 主机端 Java 库)

前言

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


一、编译相关参数

1.1 Java flags

c 复制代码
Android.mk LOCAL_JAVACFLAGS :=
Android.bp javacflags: ["xxx", "xxx", ...]

1.2 C flags

c 复制代码
Android.mk LOCAL_CFLAGS :=
Android.bp cflags: ["xxx", "xxx", ...]

1.3 Cpp flags

c 复制代码
Android.mk LOCAL_CPPFLAGS :=
Android.bp cppflags : ["xxx", "xxx", ...]

二、文件路径

2.1 资源文件路径

c 复制代码
Android.mk LOCAL_RESOURCE_DIR :=
Android.bp resource_dirs: ["xxx", ...]

2.2 导出的头文件路径

c 复制代码
Android.mk LOCAL_EXPORT_C_INCLUDE_DIRS :=
Android.bp export_include_dirs: ["xxx", ...]

2.3 本地头文件路径

c 复制代码
Android.mk LOCAL_C_INCLUDES :=
Android.bp local_include_dirs: ["xxx", ...]

三、安装分区控制

3.1 安装到 odm 中

c 复制代码
Android.mk LOCAL_ODM_MODULE := tru
Android.bp device_specific: true

3.2 安装到 product 中

c 复制代码
Android.mk LOCAL_PRODUCT_MODULE := true
Android.bp product_specific: true

3.3 安装到 vendor 中

c 复制代码
Android.mk LOCAL_VENDOR_MODULE := true or
LOCAL_PROPRIETARY_MODULE := true
Android.bp proprietary: true or vendor: true

四、库依赖

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

c 复制代码
Android.mk LOCAL_STATIC_LIBRARIES :=
Android.bp libs: ["xxx", "xxx", ...]

4.2 依赖的动态库

c 复制代码
Android.mk LOCAL_SHARED_LIBRARIES :=
Android.bp shared_libs: ["xxx", "xxx", ...]

4.3 依赖的静态库

c 复制代码
Android.mk LOCAL_STATIC_LIBRARIES :=
Android.bp static_libs: ["xxx", "xxx", ...]

五、编译不同类型的模块

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

c 复制代码
Android.mk include $(BUILD_SHARED_LIBRARY)
Android.bp cc_library_shared { ... }

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

c 复制代码
Android.mk include $(BUILD_STATIC_LIBRARY)
Android.bp cc_library_static { ... }

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

c 复制代码
Android.mk include $(BUILD_HOST_SHARED_LIBRARY)
Android.bp cc_library_host_shared { ... }

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

c 复制代码
Android.mk include $(BUILD_HOST_STATIC_LIBRARY)
Android.bp cc_library_host_static { ... }

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

c 复制代码
Android.mk include $(BUILD_HEADER_LIBRARY)
Android.bp cc_library_headers { ... }

5.6 C/C++ 可执行程序

c 复制代码
Android.mk include $(BUILD_EXECUTABLE)
Android.bp cc_binary { ... }

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

c 复制代码
Android.mk include $(BUILD_HOST_EXECUTABLE)
Android.bp cc_binary_host { ... }

5.8 C/C++ 测试程序

c 复制代码
Android.mk include $(BUILD_NATIVE_TEST)
Android.bp cc_test { ... }

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

c 复制代码
Android.mk include $(BUILD_HOST_NATIVE_TEST)
Android.bp cc_test_host { ... }

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

c 复制代码
Android.mk include $(BUILD_HOST_NATIVE_TEST)
Android.bp cc_test_host { ... }

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

c 复制代码
Android.mk include $(BUILD_HOST_NATIVE_BENCHMARK)
Android.bp cc_benchmark_host { ... }

5.12 可安装的 Java 库

c 复制代码
Android.mk include $(BUILD_JAVA_LIBRARY)
Android.bp java_library_installable { ... }

5.13 Java 库

c 复制代码
Android.mk include $(BUILD_STATIC_JAVA_LIBRARY)
Android.bp java_library { ... }

5.14 Java 静态库

c 复制代码
Android.mk include $(BUILD_STATIC_JAVA_LIBRARY)
Android.bp java_library_static { ... }

5.15 主机端 Java 库

c 复制代码
Android.mk include $(BUILD_HOST_JAVA_LIBRARY)
Android.bp java_library_host { ... }

5.16 主机端 Dalvik Java 库

c 复制代码
Android.mk include $(BUILD_HOST_DALVIK_JAVA_LIBRARY)
Android.bp java_library_host_dalvik { ... }

5.17 Android 应用程序

c 复制代码
Android.mk include $(BUILD_PACKAGE)
Android.bp android_app { ... }

5.18 CTS 支持包

c 复制代码
Android.mk include $(BUILD_CTS_SUPPORT_PACKAGE)
Android.bp cts_support_package { ... }

5.19 CTS 测试包

c 复制代码
Android.mk include $(BUILD_CTS_PACKAGE)
Android.bp cts_package { ... }

5.20 CTS 目标 Java 库

c 复制代码
Android.mk include $(BUILD_CTS_TARGET_JAVA_LIBRARY)
Android.bp cts_target_java_library { ... }

5.21 CTS 主机端 Java 库

c 复制代码
Android.mk include $(BUILD_CTS_HOST_JAVA_LIBRARY)
Android.bp cts_host_java_library { ... }
相关推荐
Kapaseker2 小时前
一杯美式搞懂 Any、Unit、Nothing
android·kotlin
黄林晴2 小时前
你的 Android App 还没接 AI?Gemini API 接入全攻略
android
恋猫de小郭12 小时前
2026 Flutter VS React Native ,同时在 AI 时代 VS Native 开发,你没见过的版本
android·前端·flutter
冬奇Lab13 小时前
PowerManagerService(上):电源状态与WakeLock管理
android·源码阅读
BoomHe18 小时前
Now in Android 架构模式全面分析
android·android jetpack
二流小码农1 天前
鸿蒙开发:上传一张参考图片便可实现页面功能
android·ios·harmonyos
鹏程十八少1 天前
4.Android 30分钟手写一个简单版shadow, 从零理解shadow插件化零反射插件化原理
android·前端·面试
Kapaseker1 天前
一杯美式搞定 Kotlin 空安全
android·kotlin
三少爷的鞋1 天前
Android 协程时代,Handler 应该退休了吗?
android
火柴就是我2 天前
让我们实现一个更好看的内部阴影按钮
android·flutter