好文档 - 专业文书写作范文服务资料分享网站

移动终端操作系统架构概览解剖

天下 分享 时间: 加入收藏 我要投稿 点赞

现有的终端操作系统:

Android、Windows Mobile、Symbian、iPhone、BlackBerry、Windows Phone 7、Beda

Android操作系统

Android是Google公司基于Linux平台的开源智能移动终端操作系统。 历代 Android 系统的名称,这真的是一份小吃的盛宴啊:

Android 1.5 Cupcake(纸杯蛋糕) Android 1.6 Donut(甜甜圈)

Android2.0/2.0.1/2.1 Eclair(松饼) Android 2.2/2.2.1 Froyo(冻酸奶) Android 2.3 Gingerbread(姜饼)

Android 3.0/3.1/3.2 Honeycomb(蜂巢)

Android 4.0 Ice Cream Sandwich(冰激凌三明治) Android 5.0 Jelly Bean(果冻豆) Android 6.0 Key Lime Pie(柠檬派)

Android是一个针对移动设备的程序集, 其中包括一个操作系统, 一个中间件和一些关键性应用. 特性

? 程序程序框架可重用及可复写组件组成 ? 针对移动设备优化过的Dalvik虚拟机

? 整合浏览器, 该浏览器基于开源的WebKit引擎开发

? 提供了优化过得图形系统, 该系统由一个自定义的2D图形库; 一个遵循OpenGL ES 1.0标准(硬件加速)的3D图形库组成

? 使用SQLite来实现结构化数据的存储

? 媒体方面对一些通用的audio, video, 和图片格式提供支持(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF) ? GSM技术(依赖硬件)

? 蓝牙, EDGE, 3G和WiFi(依赖硬件)

? Camera, GPS, 指南针, 和加速计 (依赖硬件)

? 非常丰富的开发环境, 包括一个设备模拟器, 调适工具, 内存和效率调优工具和一个Eclipse的插件ADT

Android平台的整体架构分为4层:①Linux内核层、②系统运行库、③应用程序框架层、④应用程序层 Android采用层次化系统架构。其软件层次结构包括操作系统(OS)、中间件(MiddleWare)和应用程序(Application)。

Linux内核层

Android以Linux操作系统内核为基础,借助Linux内核服务实现硬件设备驱动,进程和内存管理,网络协议栈,电源管理,无线通信等核心功能。Android4.0版本之前基于Linux2.6系列内核,4.0及之后的版本使用更新的Linux3.X内核,并且两个开源项目开始有了互通。Linux3.3内核中正式包括一些Android代码,可以直接引导进入Android。Linux3.4将会增添电源管理等更多功能,以增加与Android的硬件兼容性,使Android在更多设备上得到支持。

Android内核 对Linux内核进行了增强,增加了一些面向移动计算的特有功能。例如,低内存管理器LMK(Low Memory Keller),匿名共享内存(Ashmem),以及轻量级的进程间通信Binder机制等。这些内核的增强使Android在继承Linux内核安全机制的同时,进一步提升了内存管理,进程间通信等方面的安全性。下表列举了Android内核的主要驱动模块:

驱动名称 Android电源管理(Power Ma nagement) 低内存管理器(Low Memory Keller) 说明 针对嵌入式设备的,基于标准Linux电源管理系统的,轻量级的电源管理驱动 可以根据需要杀死进程来释放需要的内存。扩展了Linux的OOM机制,形成独特的LMK机制 为进程之间提供共享内存资源,同时为内核提供回收和管理内存的机制 一个轻量级的日志设备 提供了一个定时器用于把设备从睡眠状态唤醒 DSP及其他设备只能工作在连续的物理内存上,PMEM用于向用户空间提供 连续的物理内存区域映射 可以执行对设备的定时控制功能 Android采用大容量的NAND闪存作为存储设备,使用Yaffs2作为文件系统管理大容量MTD NAND Flash;Yaffs2占用内存小,垃圾回收简洁迅速。 对Linux内核的网络代码进行了改动,增加了网络认证机制。匿名共享内存(Ashmem) 日志(Android Logger) 定时器(Anroid Alarm) 物理内存映射管理(Android PMEM) Android定时设备(Android Timed device) Yaffs2文件系统 Android Paranoid网络

可在IPV4,IPV6和蓝牙中设置,由ANDROID_PARANOID_NETWORK宏来启用此特性。 硬件抽象层

内核驱动和用户软件之间还存在所谓的硬件抽象层(Hardware Abstract Layer,HAL),它是对硬件设备的具体实现加以抽象。HAL没有在Android官方系统架构图中标明,下图标出了硬件抽象层在android系统中的位置:

鉴于许多硬件设备厂商不希望公开其设备驱动的源代码,如果能将android的应用框架层与linux系统内核的设备驱动隔离,使应用程序框架的开发尽量独立于具体的驱动程序,则android将减少对Linux内核的依赖。HAL由此而生,它是对Linux内核驱动程序进行的封装,将硬件抽象化,屏蔽掉了底层的实现细节。HAL规定了一套应用层对硬件层读写和配置的统一接口,本质上就是将硬件的驱动分为用户空间和内核空间两个层面;Linux内核驱动程序运行于内核空间,硬件抽象层运行于用户空间。

系统运行库层

官方的系统架构图中,位于Linux内核层之上的系统运行库层是应用程序框架的支撑,为Android系统中的各个组件提供服务。系统运行库层由系统类库和Android运行时构成。 1. 系统类库

系统类库大部分由C/C++编写,所提供的功能通过Android应用程序框架为开发者所使用。主要的系统类库及说明如下表: 系统类库名称 Surface Manager 说明 执行多个应用程序时,管理子系统的显示,另外也对2D和3D图形提供支持 基于PacketVideoOpenCore的多媒体库,支持多种常用的音频和视频格式的录制和回放,所支持的编码格式包括MPEG4,MP3,H264,AAC,ARM 本地小型关系数据库,Android提供了一些新的SQLite数据库API,以替代传统的耗费资源的JDBC API Media Framework SQLite OpenGL|ES 基于OpenGL ES 1.0API标准实现的3D跨平台图形库 FreeType 用于显示位图和矢量字体

0dh4o4ualp99g5n13tny9pg7z7hdvh00tdl
领取福利

微信扫码领取福利

微信扫码分享