|
|
51CTO旗下网站
|
|
移动端

2.2.1 Android 体系结构介绍

《Android游戏开发从入门到精通》第2章Android 核心框架分析,本章将简要讲解Android 体系的具体组成,为读者进行本书后面知识的学习打下基础。本节为大家介绍Android 体系结构。

作者:王玉芹来源:机械工业出版社|2017-11-14 10:08

2.2 剖析Android 系统架构

为了更加深入地理解Android 系统的精髓,初学者很有必要了解Android 系统的整体架构,了解它的具体组成。只有这样才能知道Android 究竟能干什么,以及要学的是什么。

2.2.1 Android 体系结构介绍

Android 系统是一个移动设备的开发平台,其软件层次结构包括操作系统(OS)、中间件(Middleware)和应用程序(Application)。根据Android 的软件框图,其软件层次结构自下而上分为以下4 层。

(1)操作系统层(OS)。

(2)各种库(Libraries)和Android 运行环境(RunTime)。

(3)应用程序框架(Application Framework)。

(4)应用程序(Application)。

上述各个层的具体结构如图2-8 所示。

1. 操作系统层(OS)——最底层

因为Android 系统基于Linux 内核,所以Android 使用Linux 内核作为底层操作系统。

Android 对操作系统的使用包括核心和驱动程序两部分,Android 的Linux 核心为标准的Linux内核,Android 更多的是需要一些与移动设备相关的驱动程序。主要的驱动如下。

显示驱动(Display Driver):基于Linux 的帧缓冲(Frame Buffer)驱动。

Flash 内存驱动(Flash Memory Driver):基于MTD 的Flash 驱动程序。

照相机驱动(Camera Driver):基于Linux 的v4l 驱动。

音频驱动(Audio Driver):基于ALSA(Advanced Linux Sound Architecture,高级Linux声音体系)驱动。

WiFi 驱动(WiFi Driver):基于IEEE 802.11 标准的驱动程序。

键盘驱动(KeyBoard Driver):作为输入设备的键盘驱动。

蓝牙驱动(Bluetooth Driver):基于IEEE 802.15.1 标准的无线传输技术。

Binder IPC 驱动:Android 的一个特殊的驱动程序,具有单独的设备节点,提供进程间通信功能。

Power Management(能源管理):管理电池电量等信息。

2. 各种库(Libraries)和Android 运行环境(RunTime)——中间层本层次对应一般的嵌入式系统,相当于中间件层次。Android 的本层次分成两个部分,一个是各种库,另一个是Android 运行环境。本层的内容大部分是使用C 语言来实现的。其中包含的各种库的具体说明如下。

C 库:C 语言的标准库,也是系统中一个最为底层的库,C 库通过Linux 的系统调用来实现。

多媒体框架(Media Framework):这部分内容是Android 多媒体的核心部分,基于PacketVideo(即PV)的OpenCORE,从功能上本库一共分为两大部分,一部分是音频、视频的回放(PlayBack),另一部分则是音视频的记录(Recorder)。

SGL:2D 图像引擎。

SSL:即Secure Socket Layer,位于TCP/IP 与各种应用层协议之间,为数据通信提供安全支持。

OpenGL ES:提供了对3D 的支持。

界面管理工具(Surface Management):提供了对子系统的显示管理等功能。

SQLite:一个通用的嵌入式数据库。

WebKit:网络浏览器的核心。

FreeType:实现位图和矢量字体的功能。

Android 系统中的各种库一般以系统中间件的形式提供,它们均有一个显著特点:与移动设备平台的应用密切相关。

Android 运行环境主要是指虚拟机技术——Dalvik。Dalvik 虚拟机和一般的Java 虚拟机(Java VM)不同,它执行的不是Java 标准的字节码(Bytecode),而是Dalvik 可执行格式(.dex)。在执行的过程中,每一个应用程序即为一个进程(Linux 的一个Process)。二者的最大区别在于Java VM 是基于栈的(Stack-based)虚拟机,而Dalvik 是基于寄存器的(Register-based)虚拟机。显然,后者最大的好处在于可以根据硬件来实现更大的优化,这更适合移动设备的特点。

3. 应用程序(Application)

Android 的应用程序主要体现在用户界面(User Interface)方面,通常用Java 语言编写,其中还可以包含各种资源文件(放置在res 目录中)。Java 程序和相关资源在经过编译后,会生成一个APK 包。Android 本身提供了主屏幕(Home)、联系人(Contact)、电话(Phone)、浏览器(Browser)等众多的核心应用。同时应用程序的开发者还可以使用应用程序框架层的API 实现自己的程序。这也是Android 开源的巨大潜力的体现。

4. 应用程序框架(Application Framework)

Android 的应用程序框架为应用程序层的开发者提供了API,它实际上是一个应用程序的框架。由于上层的应用程序是以Java 构建的,因此本层次提供了UI 程序中所需要的各种控件,例如Views(视图组件),组件中又包括了List(列表),Grid(栅格),Text Box(文本框),Button(按钮)等。甚至还有一个Web 浏览器。

一个基本的Andoid 应用程序,可以利用应用程序框架中的以下五个部分来构建。

Activity(活动)。

Broadcast Intent Receiver(广播意图接收者)。

Service(服务)。

Content Provider(内容提供者)。

Intent and Intent Filter(意图和意图过滤器)。

本书的目的是讲解Android 游戏开发的知识,这方面的内容在结构图中和应用程序(Application)相对应,所以读者们需要重点关注应用程序框架(Application Framework)的知识。这些知识都是用Java 开发的,当然也还需要掌握一些其他层的相关知识,例如底层的内核和驱动等知识。


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

超级网管员——网络安全

本书全面深入地介绍网络安全的配置与实现技术,包括系统管理、用户账户、病毒防御、灾难恢复、文件备份、安全策略、注册表等服务器安全,用...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊