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图形显示系统——下层显示4:图层合成上(合成原理与3D合成)
  2. 谈谈新窜起的新操作系统平台 - Android平板电脑
  3. android使用webview上传文件(支持相册和拍照)
  4. Android ImageView使用网络资源文件
  5. Android的文件存储(写入和读取)
  6. android防止系统截屏
  7. Android编译系统模块中的LOCAL_XXX变量
  8. Android实现拖拽GridView到目标View
  9. 文件对应

随机推荐

  1. Android Cache Partition
  2. android的数据库API操作
  3. WebView.onDraw (Android 4.1)
  4. Android 初学入门代码注释 学习笔记001 1
  5. android studio adb连接不上手机 ADB ser
  6. android代码实现自动关机
  7. java android MD5加密
  8. Android listview怎么实现滚动分页
  9. Android Development Notes-2
  10. 自定义垂直文字view