
1.1.3 Android架构体系
Android之所以被称为操作系统,是因为它的一端用于驱动硬件设备,另一端用于呈现功能交互,也可以将其理解为人机交互系统。从驱动硬件设备到运行应用程序(即 App)的过程中还包含很多层次,整体称为Android架构体系。
在Android操作系统中,其架构体系分为应用(Application)层、应用框架(Application Framework)层、系统运行库(Libraries)层以及Linux内核(Linux Kernel)层,共4层,如图1-1所示。

图1-1 Android架构体系
1.Linux内核层
Android操作系统是基于Linux内核开发的操作系统,其安全性、内存管理、进程管理、网络协议栈、设备驱动(如显示驱动、摄像头驱动、闪存驱动、蓝牙驱动、Wi-Fi驱动、键盘驱动、电源管理驱动、USB驱动)等都由Linux内核提供。Linux内核层是Android架构体系的底层,负责提供系统的基本功能。
2.系统运行库层
系统运行库层在 Linux 内核层的上面,是一系列程序库的集合,包括开源的 Web 浏览器引擎WebKit,Linux 下的 ANSIC 函数 libc,嵌入式数据库 SQLite,用于播放、录制音视频的库 Media Framework,用于网络安全的安全套接字层(Secure Socket Layer,SSL),2D图像引擎斯基亚图形库(Skia Graphics Library,SGL),3D支持库OpenGL/ES,以及Android运行时等。
Android 运行时(Android RunTime)由Dalvik虚拟机(Dalvik Virtual Machine)和核心库(Core Libraries)两部分组成。Dalvik虚拟机是针对Android移动设备平台而设计的虚拟机,不仅效率高,而且占用内存少。该虚拟机是基于寄存器的,Android程序中所有的类都先由Java汇编器编译成.class文件,然后通过SDK中的DX工具转化成.dex文件,最后由Dalvik虚拟机执行.dex文件。核心库提供Java编程语言核心库的大部分功能,它允许开发者使用Java语言来编写Android App。
3.应用框架层
应用框架层包含用于开发各种Android App的程序框架,为Android App提供许多高级的服务。它一方面与应用层对接,另一方面与系统运行库层对接。
4.应用层
应用层是顶层,开发人员编写的App也将被安装在这层,包括主界面、浏览器、短信、电话、微信、游戏等App。