Android系统build/core下.mk文件分析
来源:互联网 发布:元数据和数据的区别 编辑:程序博客网 时间:2024/05/29 16:46
Android编译系统的架构:
分析Android编译系统,你会发现,Android编译系统完成的并不仅仅是对目标(主机)系统二进制文件、java应用程序的编译、链接、打包等,而且还有包括生成各种依赖关系、确保某个模块的修改引起相依赖的文件的重新编译链接,甚至还包括目标文件系统的生成,配置文件的生成等,因此Android编译系统具有支持多架构(linux-x86、windows、arm等)、多语言(汇编、C、C++、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 image,sdk等)
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应该属于社会公民了,他决定自己该如何去做
- Android系统build/core下.mk文件分析
- Android系统build/core下.mk文件分析
- Android系统build/core下.mk文件分析
- 深入分析Android (build/core/*.mk脚本)
- 深入分析Android (build/core/*.mk脚本)
- 深入分析Android (build/core/*.mk脚本)
- 深入分析Android (build/core/*.mk脚本)
- 深入分析Android (build/core/*.mk脚本)
- 深入分析Android (build/core/*.mk脚本)
- 深入分析Android (build/core/*.mk脚本)
- 深入分析Android (build/core/*.mk脚本)
- Android.mk各项参数以及默认值文件(build/core/config.mk 及base_rules.mk)
- Android系统MK文件分析
- Android build(2) -- 走读build/core/main.mk
- Android.mk文件分析
- android.mk文件分析
- Android.mk文件分析
- Android.mk文件分析
- silverlight 中绘制扇形(前台+后台)
- 初学Java JNI(javac , javah)
- RS-232
- 【转载】Table锁定行列
- UIPageControl + UIScrollView 创建一个页面指示器控件
- Android系统build/core下.mk文件分析
- Exercises 4-14
- iis7.5+win2008 出现 HTTP Error 503. The service is unavailable.
- Oracle中recyclebin的保留策略
- 博客搬家
- Android 常用代码工具
- 微软数据库提供程序类
- Android 根文件系统启动分析
- 用CSS画三角形