深入理解深入理解AndroidBuild系统系统
概述
Android Build 系统是用来编译 Android 系统、Android SDK 以及相关文档的一套框架。在Android系统中,Android 的源码中
包含了许许多多的模块。 不同产商的不同设备对于 Android 系统的定制都是不一样的。如何将这些模块统一管理起来,如何
能够在不同的操作系统上进行编译,如何在编译时能够支持面向不同的硬件设备,不同的编译类型,且还要提供面向各个产商
的定制扩展,Android系统如何解决这些问题呢?这就是我们不得不谈的Android Build 系统。
Android源码目录结构:
Linux系统的make命令
在讲解Android编译系统之前,我们首先需要了解Linux系统的make命令。在Linux系统中,我们可以通过make命令来编译代
码。Make命令在执行的时候,默认会在当前目录找到一个Makefile文件,然后根据Makefile文件中的指令来对代码进行编译。
如gcc,Linux系统中的shell命令cp、rm等等。
看到这里,有的小伙伴可能会说,在Linux系统中,shell和make命令有什么区别呢?
make命令事实也是通过shell命令来完成任务的,但是它的神奇之处是可以帮我们处理好文件之间的依赖关系。例如有一个文
件T,它依赖于另外一个文件D,要求只有当文件D的内容发生变化,才重新生成文件T。
Make命令是怎么知道两个文件之间存在依赖关系,以及当被依赖文件发生变化时如何处理目标文件的呢?答案就在前面提到
的Makefile文件。Makefile文件实际上是一个脚本文件,就像普通的shell脚本文件一样,只不过它遵循的是Makefile语法。
Makefile文件最基础的功能就是描述文件之间的依赖关系,以及怎么处理这些依赖关系。
Android Build简介
Android Build 系统是 Android 系统的一部分,主要用来编译 Android 系统,Android SDK 以及相关文档。该系统主要由 Make
文件,Shell 脚本以及 Python 脚本组成。
Android build分类:
build/core 目录下的文件,这是Android Build的系统框架核心;
device目录下的文件,存放的是具体的产品配置文件;