- Android应用开发教程
- 赵明渊
- 1407字
- 2025-02-21 19:39:26
1.2 Android操作系统的体系架构
Android操作系统的体系架构包含4个层次,如图1.1所示。

图1.1 Android操作系统的体系架构
由图1.1可以看出,Android操作系统的体系架构由上到下依次为应用程序、应用程序框架、系统库和Android运行时、Linux内核等4个层次,下面分别进行介绍。
1.应用程序
在应用程序层,提供一系列的核心应用程序,例如电子邮件客户端、浏览器、通讯录、日历、地图、SMS程序、联系人管理程序等,这些应用程序都是使用Java语言编写的。
用户可以用自己编写的应用程序来替换Android提供的应用程序,从而展示开发人员的才华并更具个性化。
2.应用程序框架
应用程序框架层提供Android平台基本的管理功能和组件重用机制,它是从事Android开发的基础。该层提供了大量的API供开发人员使用,使开发人员易于开发功能强大的应用程序。
应用框架包含以下组件:
(1)Activity Manager(活动管理器)。管理应用程序的生命周期,起控制器的作用。
(2)Windows Manager(窗口管理器)。管理所有窗口程序。
(3)Content Provider(内容提供器)。提供一种服务,使应用程序之间可以实现数据共享,即使一个程序可以访问另一个程序的数据。
(4)View System(视图系统)。一组丰富并可扩展的视图组件,用于构建应用程序,例如文本框(TextView)、编辑框(EditText)、图片按钮(ImageButton)、复选按钮(Checkbox)等。
(5)Package Manager(包管理器)。管理安装在Android系统内的应用程序。
(6)Telephony Manager(电话管理器)。管理电话相关功能。
(7)Resource Manager(资源管理器)。对非编码资源进行统一管理。
(8)Location Manager(定位管理器)。管理地图相关服务功能。
(9)Notification Manager(通知管理器)。将应用消息显示在状态栏中,给用户以提示或通知。
3.系统库和Android运行时
该层由系统库和Android运行时组成。
1)系统库
系统库包含一套C/C++库。系统库是应用程序框架的支撑,是连接应用程序框架层和Linux内核层的纽带,包含以下内容:
(1)Surface Manager。管理对显示子系统的访问,可对多个应用程序与2D、3D图形层提供无缝整合。
(2)Media Framework。Android系统多媒体库,支持播放和录制许多流行的音频和视频格式。
(3)SQLite。所有应用程序都可使用的、功能强大的轻量级关系数据库引擎。
(4)OpenGL ES。3D效果的支持。
(5)FreeType。位图和向量字体显示。
(6)WebKit。一个全新的Web浏览器引擎,支持Android浏览器和内嵌的Web视图。
(7)SGL。底层的2D图形引擎。
(8)SSL。为数据加密与安全传输提供支持。
(9)Libc。从BSD系统派生的标准C系统库,调整为适应嵌入式Linux设备。
2)Android运行时
Android Runtime为Android应用提供一个运行环境,包括核心库和Dalvik虚拟机。
(1)核心库
核心库提供了Java编程语言核心类库具有的大部分功能。
(2)Dalvik虚拟机
Dalvik虚拟机是经过优化的多实例虚拟机,基于寄存器实现,采用专用的“.dex”格式文件,该格式适合内存和处理器速度受限的系统。
每个Android应用程序都运行在单独的Dalvik虚拟机内,即每个Android应用程序都对应一个Dalvik进程。
Dalvik虚拟机适合在移动终端上使用,相对于PC或服务器上的虚拟机来说,Dalvik虚拟机能对内存高效使用,在低速CPU上表现出高性能,它有以下两个特点:
- 基于寄存器实现。Dalvik虚拟机是基于寄存器的,而大多数虚拟机(例如JVM)是基于栈的。
- 运行专有的.dex文件。通过DX工具将应用程序所有.class文件编译成.dex文件,专有的.dex文件减少了.class文件的冗余信息,并用DX工具对.dex文件进行优化,从而提高运行性能。
4.Linux内核
Android基于Linux 2.6内核,除了标准的Linux内核提供进程管理、内存管理、网络协议堆栈、驱动程序、安全机制等之外,Android系统还增加了Binder(IPC)驱动、Wi-Fi驱动、蓝牙驱动等驱动程序,为系统运行提供了基础性支持。
Linux内核部分是系统硬件和其他软件叠层之间的抽象层。