Android系统架构
应用层
- SMS短信客户端程序、电话拨号程序、图片浏览器、Web浏览器等。这些应用程序都是用Java语言编写的,并且都是可以被开发人员开发的其他应用程序所替换
应用程序框架层
- Android开发的基础,简化了组件的重用,开发人员可以直接使用其提供的组件来快速的进行应用程序的开发,也可以通过继承来实现个性化的拓展。包括各种管理器Manager.
系统运行库
- 包括系统库和Android Runtime,系统库是应用程序框架的支撑,是连接应用程序框架层与Linux内核层的重要纽带。程序在Andro id Runtime中执行,其运行时分为核心库和Dalvik虚拟机(ART虚拟机)两部分。
库名称 | 定义 |
C库 | C语言标准库,也是系统中的一个最为底层的课,C库通过Linux的系统调用来实现 |
多媒体框架 | 基于PacketVideo的OpenCORE,从功能上这个库一共分为两大部分,一部分是音频、视频的回放,另一部分是音视频的记录 |
SGL | 2D图像引擎 |
SSL | Secure Socket Layer位于TCP/IP协议与各种应用层协议之间,为数据通信提供安全支持 |
OpenGL ES | 提供对 3D的支持 |
界面管理工具 | 提供了管理显示子系统等功能 |
SQLite | 通用嵌入式数据库 |
WebKit | 网络浏览器核心 |
FreeType | 位图和矢量字体的功能 |
Java虚拟机 | 执行Java标准的字节码,在最新的5.0版本中使用ART默认的运行环境 |
Dalvik | 执行的是Dalvik可执行格式(.dex)中的执行文件。在执行过程中,每一个应用程序即为一个进程 |
Linux内核层
- 基于Linux内核,其核心系统服务如安全性、内存管理、进程管理、网路协议以及驱动模型都依赖于Linux内核。
Android驱动程序:
驱动名称 | 定义 |
显示驱动(Display Driver) | 常用的基于Linux的帧缓冲驱动 |
Flash内存驱动(Flash Memory Driver) | 是基于MTD的Falsh驱动程序 |
照相机驱动(Camera Driver) | 常用基于Linux的VFL(Video For Linux)驱动 |
音频驱动(Audio Driver) | 常用基于ALSA(高级Linux声音体系)驱动 |
WiFi驱动(WiFi Driver) | 基于IEEEE 802.11标准的驱动程序 |
键盘驱动(KeyBoard Driver) | 作为输入设备的键盘驱动 |
蓝牙驱动(BlueTooth Driver) | 基于IEEE 802.15.1标准的无线传输技术 |
Binder IPC 驱动 | Android一个特殊的驱动程序,具有单独的设备节点,提供进程间通信的功能 |
Power Managerment (电源管理) | 用于管理电池电量的信息 |