Android系统是有众多的子项目组成的。从编程语言角度来看,这些项目主要是使用Java和C/C++来实现的;从整体系统框架而言,分成内核层、硬件抽象层、系统运行库层、应用程序框架层以及应用程序层。
一、内核层
Android的底层是基于Linux操作系统的。
首先,避开了与硬件直接打交道。
其次,基于Linux系统的驱动开发可扩展性很强
二、硬件抽象层
硬件抽象层通过定义硬件“驱动”的接口来进一步降低Android系统与硬件的耦合度。另外,由于Linux遵循的是GPL协议(注意,Android开源项目基于Apache协议),意味着其下的所有驱动都应该是开源的——这点对于部分厂商来说是无法接受的。
三、系统运行库
这一层包含了支撑整个系统正常运行的基础库。
四、应用程序框架层
五、应用程序层