![安卓体系结构](https://i-blog.csdnimg.cn/blog_migrate/a4c26d1e5885305701be709a3d33442f.gif)
安卓结构自上而下分为4个层次:
- 应用程序(Applications)
- 应用程序框架(Application Framework)
- 各种库(Libraries)和Android运行环境(Android Runtime)
- Linux内核层(Linux Kernel)
(1)应用层
应用层包含多种应用,而且Google在开发Android时,也已经在应用层绑定了一些核心应用,比如:
Home:主屏幕
Contacts:联系人
Phone:电话
Brower:浏览器
(2)应用框架层
该层是Android为应用程序开发者提供APIs,这是一个应用程序框架。应用框架层所提供的组件很多,包括:
Avtivity Manager:活动管理器
Window Manager:窗口管理器
Content Providers:内容提供器
View System:视图系统
Notification Manager:通知管理器
Package Manager:包管理器
Telephony Manager:手机通讯管理器
Resource Manager:资源管理器
Location Manager:位置管理器
XMPP Service:XMPP服务(XMPP是一种以XML为基础的开放式实时通信协定)
(3)系统运行库层
本层内容大多数是用c++实现的,用来提供底层的支持。其中包含的各种库如下:
Surface Management:界面管理工具
MediaFramework:多媒体框架
SQLite:是一个通用的嵌入式数据库
OpenGL ES:提供了对3D的支持
FreeType:位图和矢量字体的功能
Webkit:是常用的网络浏览器
SGL:2D图像引擎
SSL(Secure Socket Layer):位于TCP/IP协议与各种应用层协议之间,能为数据通信提供安全支持
libc:Linux下的ANSI C的函数库。ANSI C是基本的C语言函数库,包含了C语言最基本的库函数。
Core Libraries:核心库,提供了 Java 编程语言的核心库中大多数可用功能。
Dalvik Virtual Machine:Dalvik虚拟机
(4)Linux内核层
Android的Linux内核层是基于LInux Kernel 2.6版本。Linux内核层,主要是作为硬件和软件栈之间的抽象层。在软件栈视角看,Linux内核就是“硬件”。内核层提供如下一些驱动:
Display Driver:显示驱动
Camera Driver:照相机驱动
Bluetooth Driver:蓝牙驱动
Flash Memory Driver:Flash内存驱动
Binder(IPC) Driver:Android的一个特殊驱动程序,具有单独的设备节点,提供进程间通信
USB Driver:USB驱动
Keyboard Driver:键盘驱动
WiFi Driver:WiFi驱动
Audio Drivers:音频驱动
Power Management:能源管理