Android编译系统的架构:

分析Android编译系统,你会发现,Android编译系统完成的并不仅仅是对目标(主机)系统二进制文件、java应用程序的编译、链接、打包等,而且还有包括生成各种依赖关系、确保某个模块的修改引起相依赖的文件的重新编译链接,甚至还包括目标文件系统的生成,配置文件的生成等,因此Android编译系统具有支持多架构(linux-x86windowsarm等)、多语言(汇编、CC++Java等)、多目标、多编译方式。这些目标和结构决定其架构也很重要。

Android编译系统集中于build/core下,几个很重要的*.mk文件如下:

main.mk(主控Makefile)

base_rules.mk(对一些Makefile的变量规则化)

config.mk(关于编译参数、编译命令的一些配置)

definations.mk(定义了很多编译系统中用到的宏,相当于函数库)

Makefile(这个Makefile特指build/core下的Makefile,此文件主要控制生成system.img,ramdisk.img,userdata.img,以及recorvery imagesdk等)

Binary.mk(控制如何生成目标文件)

Clear_vars.mk(清除编译系统中用到的临时变量)

Combo/linux-arm.mk(控制如何生成linux-arm二进制文件,包括ARM相关的编译器,编译参数等的设置)

Copy_headers.mk(将头文件拷贝到指定目录)

分散于各个目录下的Android.mk(控制生成局部模块的源码,名称所需头文件路径,依赖库等特殊选项)

Build/envsetup.mk(编译环境初始化,定义一些实用的shell函数,方便编译使用)

以上几个主要的文件,可以按照社会分工打一个比方:

Main.mk是总统,是老大,承担了很多工作。

Makefile是副总统,辅佐老大Main.mk

Base_rules.mk是交警,让不规则的东西,变得规则。

Config.mk是省长,规定了各个人民群众该如何行事

Definations.mk是图书馆管理员

Binary.mk应该属于村长了,规定每个人该如何行事

Clear_vars.mk应该属于保洁公司的工人吧

Combo/linux-arm.mk应该属于社会公民了,他决定自己该如何去做

更多相关文章

  1. Android 文件的保存与读取之SDCard(SD卡)存储
  2. Android Studio共用Eclipse的Android项目文件
  3. [置顶] Android应用开发 第二讲:Android系统构架分析和应用程序目
  4. Android布局文件中命名空间的解析
  5. Android电池管理系统系统分析
  6. android默认系统日期、时间、时区更改
  7. Android Sensor传感器系统架构初探
  8. Android入门学习四:Android系统框架

随机推荐

  1. android自动更新升级APP
  2. Android中的Dialog用法讲解大全
  3. Android 定制万能Adapter
  4. android 获取设备真实ip地址
  5. Android Studio版本控制指南
  6. android之Buffer类及子类学习
  7. Android 来电翻转静音实现源码
  8. Android(安卓)HAL 层原理分析
  9. Android调试工具 —— TraceView [整理]
  10. Android中使用HttpURLConnection和HttpCl