android_build_system_and_mainmk

android_build_system_and_mainmk

ID:37178309

大小:28.01 KB

页数:6页

时间:2019-05-21

android_build_system_and_mainmk_第1页
android_build_system_and_mainmk_第2页
android_build_system_and_mainmk_第3页
android_build_system_and_mainmk_第4页
android_build_system_and_mainmk_第5页
资源描述:

《android_build_system_and_mainmk》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、目录1.AndroidMakefile&buildsystem概述22.Buildsystem配置部分23.buildsystem目标构建部分3后记:3Main.mk主要包含如下几个部分的内容41.SHELL设置:42.编译环境配置:43.编译环境检查:54.包含必要的宏:55.根据make参数设置“编译时”的变量5Androidbuildsystem––Makefile1.AndroidMakefile&buildsystem概述在Android中,主要的Makefile文件存在于build/core/目录下,它的表现形式为多个后缀为mk的文件组成,也称为

2、buildsystem。Androidbuildsystem主要有两大部分构成:配置部分,目标构建部分。Buildsystem的主流程文件为build/core/main.mk文件。Androidbuildsystem在设计中考虑了如下方面,具有良好的扩展性。  a)增添子模块编译  b)多CPU架构ARM/PPC(maybe)/X86(maybe)  c)多语言编译C/C++/Java  d)多目标staticlib/sharelib/execute/Java/Javalibrary  e)多发布版本2.Buildsystem配置部分  配置部分主要完成以

3、下几个工作:  a)基于Android产品的配置(productconfig):选择构建安装的运行程序(userpackage)  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)编译ho

4、st上运行程序所需的工具链及编译参数设置。  下图简要介绍了Androidbuildsystem的配置部分的主要构成及相互关系。  多发布版本的支持  Android会被不同的厂商所采用,他们内置的packages(应用程序)相应也会有差别。AndroidProducts.mk文件即为Androidbuildsystem提供给厂商的接口文件。通过此文件即可定义所需编译和安装的packages(也即应用程序)。缺省选项是generic。为了更容易的扩展,Android定义了基本package(core.mk)和通用package(generic.mk),通用p

5、ackage包含基本package。同时Android还实现了一个继承函数(inherit-product)。通过继承通用package,可以很容易的配置所需编译和安装的package。  多CPU架构的扩展  Config.mk文件中会设置combo_target为不同的变量,然后includeselect.mk文件。在select.mk文件中,会根据OS和CPU架构选择相应的mk文件,在这些相应的mk文件中,又定义了编译目标程序所需的工具链及编译参数。目前从combo目录下看,target上不支持PPC架构。但如果要想支持PPC架构的话,只需在combo

6、目录下创建PPC的mk文件,在其中定义工具链和参数即可。3.buildsystem目标构建部分  目标构建部分的主要工作就是选择所需构建的目标,确定它们所需依赖的目标,然后根据规则来构建最终的目标。说起来简单,可是在实际中就需要考虑很多问题了。  a)作为一个设计优秀的Framework,如何方便的添加子模块?  b)在Android系统中,有多种编程语言的存在,它们的编译工具各不相同。即使同一种语言,如C语言,也存在host和target的差别,编译器也不同。如何选择不同的工具进行模块的构建?  c)在Android系统中,存在不同种类的构建目标:有可执行

7、文件,staticlibrary,dynamiclibrary,javalibrary,java。如何构建这些不同的目标?  下图简要介绍了Androidbuildsystem的构建部分的主要构成及相互关系  在main.mk中,非常关键的一个步骤就是找到TOP目录下所有Android.mk文件,并include它们。在Include的过程中,就会确定子模块的构建目标,类型,和规则。  Android.mk就是buildsystem提供给子模块的借口文件。Android.mk有下面几个关键词:  LOCAL_SRC_FILES?指定模块的源文件  LOCAL

8、_MODULE?指定所需构建的目标名  includ

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
相关文章
更多
相关标签