(1 Android) Android系统架构

409 阅读3分钟

Android 是基于Linux内核的软件平台和操作系统,采用了软件堆栈架构。该架构分为四层,自上而下分别为应用程序层、应用程序框架层、Android 运行时环境层和Linux 内核层,如下图所示。

1 Linux 内核层

Linux 内核是硬件和其他软件堆层之间的一个抽象隔离层,提供由操作系统内核管理的底层基础功能,主要有安全机制、内存管理、进程管理、网络协议校和驱动程序等。

Android 内核挂载/nfsroot/Androidfs 之后,根据init. rc 和init. goldfish.rc 进行初始化并装载系统库、程序等操作直到开机完成。init. rc 包括了文件系统初始化、装载的许多过程。init. rc 的主要工作如下:

• 设置环境变量:

• 创建system 、sdcard 、data 、cache 等目录:

• 把文件系统mount 到目录,如mount tmpfs tmpfs /sqlite_stmt_journaIs;

• 设置文件的用户群组、权限;

• 设置线程参数;

• 设置TCP 缓存大小。

Android 源码编译后可得到system.img 、ramdisk. img 和userdata.img 映像文件。其中,ramdisk. img 是emulator 的文件系统, system .img 包括主要的包、库等文件, userdata.img包括一些用户数据。emulator 加载这3 个映像文件后,会把system 和userdata 分别加载到ramdisk 文件系统中的system 和userdata 目录中。

2 函数库和Android 运行时环境层

函数库和Android 运行时环境是第二层,位于Linux 内核之上,也称中间层,由函数库和Android 运行时环境构成。

由于Linux 操作系统的内核使用及其组件使用C语言编写(少部分使用汇编语言),因此,开发人员可以通过应用程序框架调用一组基于C/C++的函数库,主要包括以下几个。

• Surface Manager: 支持显示子系统的访问,为多个应用程序提供2D 、3D图像层的平滑连接。

• Media Framework: 基于OpenCORE 的多媒体框架,实现音频、视频的播放与录制功能。

• SQLite: 关系型数据库引擎。

• OpenGL | ES: 基于硬件的3D 图像加速。

• FreeType: 位图与矢量字体渲染。

• WebKit: Web 浏览器引擎。

• SSL: 数据加密与安全传输的函数库。

• libc: 标准C运行库。它是Linux系统中底层的应用程序开发接口。

Android 运行时环境由核心库和Dalvik虚拟机构成。核心库为开发人员提供了Android 系统的特有函数功能和Java语言的基本函数功能; Dalvik虚拟机采用适合内存和处理器受限的专用格式。

3 应用程序框架层

应用程序框架层提供了Android 平台的管理功能和组件重用机制,包括活动管理器(Activity Manager) 、窗口管理器( Window Manager) 、内容提供者( Content Provider) 、视图系统(View System) 、包管理器(Package Manager) 、通信管理器(Telephony Manager) 、资源管理器(Resource Manager) 、位置管理器(Location Manager) 和通知管理器(Notification Manager) 。Android 的三大核心功能如下。

(1) View System: 提供绘制图形,处理触摸、按键事件等功能。

(2) Activity Manager: 提供管理所有应用程序的Activity 功能。

(3) Window Manager: 提供为所有应用程序分配窗口,并管理这些窗口的功能。

4 应用程序层

应用程序层提供了一系列核心应用程序,如浏览器、通讯录、相册、地图和电子市场等。