admin 管理员组文章数量: 1087139
2024年4月23日发(作者:checkbox change事件)
目录
1. Android Makefile & build system 概述 ................................... 2
2. Build system 配置部分 .................................................. 2
3. build system 目标构建部分 .............................................. 3
后记: .................................................................... 3
主要包含如下几个部分的内容 ......................................... 4
1. SHELL设置: ............................................................ 4
2. 编译环境配置: ......................................................... 4
3. 编译环境检查: ......................................................... 5
4.包含必要的宏: .......................................................... 5
5. 根据make参数设置“编译时”的变量 ...................................... 5
Android build system – – Makefile
1. Android Makefile & build system 概述
在Android中,主要的Makefile文件存在于build/core/目录下,它的表现形式为多个后缀
为mk的文件组成,也称为build system。
Android build system 主要有两大部分构成:配置部分,目标构建部分。Build system的
主流程文件为build/core/文件。
Android build system在设计中考虑了如下方面,具有良好的扩展性。
a) 增添子模块编译
b) 多CPU架构 ARM/PPC(maybe)/X86(maybe)
c) 多语言编译 C/C++/Java
d) 多目标 static lib/share lib/execute/Java/Java library
e) 多发布版本
2. Build system 配置部分
配置部分主要完成以下几个工作:
a) 基于Android 产品的配置(product config):选择构建安装的运行程序 (user package)
b) 设置target 等相关变量TARGET_ARCH, TARGET_OS, TARGET_BUILD_TYPE,
TARGET_PREBUILT_TAG
c) 根据编译环境设置host等相关变量 HOST_OS, HOST_ARCH, HOST_BUILD_TYPE,
HOST_PREBUILT_TAG
d) 编译target上运行程序所需的工具链及编译参数设置,如linux-arm-cc,cflag,
include目录等。
e) 编译host上运行程序所需的工具链及编译参数设置。
下图简要介绍了Android build system的配置部分的主要构成及相互关系。
多发布版本的支持
Android 会被不同的厂商所采用,他们内置的packages(应用程序)相应也会有差别。
文件即为Android build system提供给厂商的接口文件。通过此文件即可
定义所需编译和安装的packages(也即应用程序)。缺省选项是generic。为了更容易的扩
展,Android定义了基本package()和通用package(),通用package包含基
本 package。同时Android还实现了一个继承函数(inherit-product)。通过继承通用package,
可以很容易的配置所需编译和 安装的package。
多CPU架构的扩展
文件中会设置combo_target为不同的变量,然后include 文件。在
文件中,会根据OS和CPU架构选择相应的mk文件,在这些相应的mk文件中,
又定义了编译目标程序所需的 工具链及编译参数。目前从combo目录下看,target上不支持
PPC架构。但如果要想支持PPC架构的话,只需在combo目录下创建PPC的mk 文件,在
其中定义工具链和参数即可。
版权声明:本文标题:Android_build_system_and_mainMK 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/b/1713819970a652998.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论