码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 安卓bp文件和mk文件转换


    目录

    • 前言
    • 一、编译相关参数
      • 1.1 Java flags
      • 1.2 C flags
      • 1.3 Cpp flags
    • 二、文件路径
      • 2.1 资源文件路径
      • 2.2 导出的头文件路径
      • 2.3 本地头文件路径
    • 三、安装分区控制
      • 3.1 安装到 odm 中
      • 3.2 安装到 product 中
      • 3.3 安装到 vendor 中
    • 四、库依赖
      • 4.1 依赖的模块的共享链接库
      • 4.2 依赖的动态库
      • 4.3 依赖的静态库
    • 五、编译不同类型的模块
      • 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

    1.2 C flags

    Android.mk LOCAL_CFLAGS :=
    Android.bp cflags: [“xxx”, “xxx”, …]
    
    • 1
    • 2

    1.3 Cpp flags

    Android.mk LOCAL_CPPFLAGS :=
    Android.bp cppflags : [“xxx”, “xxx”, …]
    
    • 1
    • 2

    二、文件路径

    2.1 资源文件路径

    Android.mk LOCAL_RESOURCE_DIR :=
    Android.bp resource_dirs: [“xxx”, …]
    
    • 1
    • 2

    2.2 导出的头文件路径

    Android.mk LOCAL_EXPORT_C_INCLUDE_DIRS :=
    Android.bp export_include_dirs: [“xxx”, …]
    
    • 1
    • 2

    2.3 本地头文件路径

    Android.mk LOCAL_C_INCLUDES :=
    Android.bp local_include_dirs: [“xxx”, …]
    
    • 1
    • 2

    三、安装分区控制

    3.1 安装到 odm 中

    Android.mk LOCAL_ODM_MODULE := tru
    Android.bp device_specific: true
    
    • 1
    • 2

    3.2 安装到 product 中

    Android.mk LOCAL_PRODUCT_MODULE := true
    Android.bp product_specific: true
    
    • 1
    • 2

    3.3 安装到 vendor 中

    Android.mk LOCAL_VENDOR_MODULE := true or
    LOCAL_PROPRIETARY_MODULE := true
    Android.bp proprietary: true or vendor: true
    
    • 1
    • 2
    • 3

    四、库依赖

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

    Android.mk LOCAL_STATIC_LIBRARIES :=
    Android.bp libs: [“xxx”, “xxx”, …]
    
    • 1
    • 2

    4.2 依赖的动态库

    Android.mk LOCAL_SHARED_LIBRARIES :=
    Android.bp shared_libs: [“xxx”, “xxx”, …]
    
    • 1
    • 2

    4.3 依赖的静态库

    Android.mk LOCAL_STATIC_LIBRARIES :=
    Android.bp static_libs: [“xxx”, “xxx”, …]
    
    • 1
    • 2

    五、编译不同类型的模块

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

    Android.mk include $(BUILD_SHARED_LIBRARY)
    Android.bp cc_library_shared { … }
    
    • 1
    • 2

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

    Android.mk include $(BUILD_STATIC_LIBRARY)
    Android.bp cc_library_static { … }
    
    • 1
    • 2

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

    Android.mk include $(BUILD_HOST_SHARED_LIBRARY)
    Android.bp cc_library_host_shared { … }
    
    • 1
    • 2

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

    Android.mk include $(BUILD_HOST_STATIC_LIBRARY)
    Android.bp cc_library_host_static { … }
    
    • 1
    • 2

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

    Android.mk include $(BUILD_HEADER_LIBRARY)
    Android.bp cc_library_headers { … }
    
    • 1
    • 2

    5.6 C/C++ 可执行程序

    Android.mk include $(BUILD_EXECUTABLE)
    Android.bp cc_binary { … }
    
    • 1
    • 2

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

    Android.mk include $(BUILD_HOST_EXECUTABLE)
    Android.bp cc_binary_host { … }
    
    • 1
    • 2

    5.8 C/C++ 测试程序

    Android.mk include $(BUILD_NATIVE_TEST)
    Android.bp cc_test { … }
    
    • 1
    • 2

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

    Android.mk include $(BUILD_HOST_NATIVE_TEST)
    Android.bp cc_test_host { … }
    
    • 1
    • 2

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

    Android.mk include $(BUILD_HOST_NATIVE_TEST)
    Android.bp cc_test_host { … }
    
    • 1
    • 2

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

    Android.mk include $(BUILD_HOST_NATIVE_BENCHMARK)
    Android.bp cc_benchmark_host { … }
    
    • 1
    • 2

    5.12 可安装的 Java 库

    Android.mk include $(BUILD_JAVA_LIBRARY)
    Android.bp java_library_installable { … }
    
    • 1
    • 2

    5.13 Java 库

    Android.mk include $(BUILD_STATIC_JAVA_LIBRARY)
    Android.bp java_library { … }
    
    • 1
    • 2

    5.14 Java 静态库

    Android.mk include $(BUILD_STATIC_JAVA_LIBRARY)
    Android.bp java_library_static { … }
    
    • 1
    • 2

    5.15 主机端 Java 库

    Android.mk include $(BUILD_HOST_JAVA_LIBRARY)
    Android.bp java_library_host { … }
    
    • 1
    • 2

    5.16 主机端 Dalvik Java 库

    Android.mk include $(BUILD_HOST_DALVIK_JAVA_LIBRARY)
    Android.bp java_library_host_dalvik { … }
    
    • 1
    • 2

    5.17 Android 应用程序

    Android.mk include $(BUILD_PACKAGE)
    Android.bp android_app { … }
    
    • 1
    • 2

    5.18 CTS 支持包

    Android.mk include $(BUILD_CTS_SUPPORT_PACKAGE)
    Android.bp cts_support_package { … }
    
    • 1
    • 2

    5.19 CTS 测试包

    Android.mk include $(BUILD_CTS_PACKAGE)
    Android.bp cts_package { … }
    
    • 1
    • 2

    5.20 CTS 目标 Java 库

    Android.mk include $(BUILD_CTS_TARGET_JAVA_LIBRARY)
    Android.bp cts_target_java_library { … }
    
    • 1
    • 2

    5.21 CTS 主机端 Java 库

    Android.mk include $(BUILD_CTS_HOST_JAVA_LIBRARY)
    Android.bp cts_host_java_library { … }
    
    • 1
    • 2
  • 相关阅读:
    在gazebo仿真环境中加载多个机器人
    csv文件导入mysql指定表中
    【机器学习】聚类算法中的 K-means 算法及其原理
    向日葵远程控制中的键盘异常问题
    JAVA最全面试题汇总基础篇(二)
    网络-UDP通信
    论文解读(AGE)《Adaptive Graph Encoder for Attributed Graph Embedding》
    一次完整的支付链路
    Python--练习:报数字(数7)
    常说的I2C协议是干啥的(电子硬件)
  • 原文地址:https://blog.csdn.net/qq_45649553/article/details/138157726
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号