前言之前言:之前此文发表在eoeandroid,但没有贴图。然后被一些网站转载,也没有贴图,给阅读本文带来一些不便。在此附上贴图,转载请注明来自csdn 博客。作者邮箱:hongjie.career@gmail.com
前言:预计未来一致两年内移动互联网将会有很大的发展,必将孕育很多的机会,而Google 推出的Android 手机操作系统无疑将是移动互联网中的明星。由于其是开源系统,很有必要对此进行深入研究。
工欲善其事,必先利其器。Makefile无疑是打开系统架构的一扇窗户。但因Android的Makefile (build system)文件众多,架构复杂,分析起来较为困难。本文梳理了build system的大致脉络,希望对build system感兴趣的同学们有所帮助。
1. Android Makefile & build system 概述
Makefile文件用来告诉make命令需要怎么样的去编译和链接程序。在编译时,需要根据编译环境和编译目标选择编译工具,编译参数,以及选择编译安装哪些模块。同时Makefile 指定了构建目标所需的依赖性以及生成规则。 在Android中,主要的Makefile文件存在于build/core/目录下,它的表现形式为多个后缀为mk的文件组成,也称为build system。Android build system 主要有两大部分构成:配置部分,目标构建部分。Build system的主流程文件为build/core/main.mk文件。
Android build system在设计中考虑了如下方面,具有良好的扩展性。
a) 增添子模块编译
b) 多CPU架构 – ARM/PPC(maybe)/X86(maybe)