1.1 Android系统架构详解
1.1 Android系统架构
Android是一种基于Linux的自由及开放源代码的操作系统,主要适用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。
Android的系统架构和其操作系统一样,采用了分层的架构。大致分为四层架构,从低层高层分别是Linux内核层、系统运行库层、应用程序框架层和应用程序层。(如图1-1所示)
图1-1 Android系统架构
如上图所示:蓝色部分代表Java程序,黄色部分代表运行Java程序而实现的虚拟机,绿色部分代表C/C++语言编写的程序库,红色部分代表内核(Linux内核和Driver)
1. Linux内核(Linux Kernel)
Android系统是基于Linux内核,这一层为Android设备的各种硬件提供了底层的驱动,如显示驱动、音频驱动、照相机驱动、蓝牙驱动、Wi-Fi驱动、电源管理等。(主要内容如下表所示)
名称 |
功能描述 |
Display Driver |
显示驱动 |
Camera Driver |
照相机驱动 |
Bluetooth Driver |
蓝牙驱动 |
Flash Memory Driver |
闪存驱动器 |
Binder(IPC) Driver |
粘合剂(IPC)驱动器 |
USB Driver |
USB驱动程序 |
Keypad Driver |
键盘驱动 |
Wi-Fi Driver |
Wi-Fi驱动 |
Audio Drivers |
音频驱动程序 |
Power Management |
电源管理 |
2. 系统运行库(Libraries/Android Runtime)
系统运行库层可分为两部分,分别是C/C++程序库和Android运行时库。
(1)C/C++程序库
C/C++库来为Android系统提供了重要的特性支持,能被Android系统中的不同组件所使用,并通过应用程序为开发者提供服务。(主要内容如下表所示)
名称 |
功能描述 |
Surface Manager (显示管理器) |
Android框架类之一,管理访问显示子系统和多模块应用中无缝整合2D和3D的图形 |
Media Framework (多媒体库) |
支持多种常用的音频、视频格式录制和回放 |
SQLite(轻量级关系型数据库) |
轻型的关系型数据库引擎 |
OpenGL|ES (3D绘图函数库) |
为便携式或嵌入式设备例如:移动电话、监视器等发展的3D绘图API |
FreeType(可移植的字体引擎) |
一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,包括TrueType, OpenType, Type1, CID, CFF, Windows FON/FNT, X11 PCF等 |
WebKit (浏览器引擎) |
一个开源的浏览器引擎,与之相对应的引擎有Gecko(Mozilla Firefox 等使用)和Trident(也称MSHTML,IE 使用) |
SGL |
底层的2D图形渲染引擎 |
SSL(安全套阶层) |
(Secure Sockets Layer)用以保障internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上传输过程中不会被截取及窃听。 |
Libc (Linux下的ANSI C的函数库) |
从BSD继承来的标准C系统函数库,专门为基于嵌入式Linux的设备定制 |
(2)Android运行时库
运行时库又分为核心库(Core Libraries),能够允许开发者使用Java语言来编写Android应用。和Dalvik虚拟机(Dalvik Virtual Machine)(5.0系统之后改为ART运行环境),它使得每一个Android应用都能运行在独立的进程当中,并且拥有一个自己的Dalvik虚拟机实例。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭。
3. 应用框架层(Application Framework)
应用框架层主要提供了构建应用程序时可能用到的各种API,平时开发应用程序都是调用这一层所提供的API,包括系统的应用。这一层由Java代码编写。(主要内容如下表所示)
名称 |
功能描述 |
Activity Manager(活动管理器) |
管理各个应用程序生命周期的导航回退功能 |
Window Manager(窗口管理器) |
管理所有开启的窗口程序 |
Content Providers(内容提供器) |
使得不同程序之间可以共享数据 |
View System(视图系统) |
构建应用程序的基本组件 |
Notification Manager(通知管理器) |
使应用程序可以在状态栏中显示自定义的提示信息 |
Package Manager(包管理器) |
管理所有安装在Android系统中的应用程序 |
Telephony Manager(电话管理器) |
管理所有的移动设备功能 |
Resource Manager(资源管理器) |
提供应用程序使用的各种非代码资源,如本地化字符串、图片、布局文件、颜色文件等 |
Location Manager(位置管理器) |
提供地理位置及定位服务功能 |
XMPP Service(XMPP服务) |
在线即时交流一个通用的进程,即后台推送服务 |
4. 应用层(Applications)
所有安装在手机上的应用程序都属于这一层的,比如系统自带的联系人、短信等程序,或者从你的应用商店上下载的小游戏,当然还包括自己开发的程序。
/*代码注释:这是本人第一次写的学习记录,略有生涩,保证纯真手敲在Word中在上传****中,如果文章含有错别字、知识点错误或者语句不通顺的地方,劳烦各位走过路过的客官指出!小本买卖,您看不了吃亏看不了上当。本人都虚心接受,抓紧更改!
纤蕾*/