理论——剖析Android系统架构

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

(1) 操作系统层OS

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

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

(4)应用程序(application)。

上述各个层的具体结构如图 1-1所示

在本节的内容中,将详细介绍Android操作系统的组件结构方面的知识。

xxx.APK

用户 root


硬件

一。顶层应用程序

主屏幕联系人电话浏览器。。。。。。应用程序

二。应用程序框架层

活动管理器窗口管理器内容提供者视图系统通知管理器

包管理器电话管理器资源管理器本地管理器XMPP服务应用程序框架

三。各种库(libraries)和Android运行环境

接口管理器界面管理器OpenGL ES持久层库Android运行环境 

包管理器位图及矢量浏览器引擎各种库ART+Dalvik虚拟机器 

2D图形引擎 中间协议libc函数库

四。底层操作系统(OS)

显示驱动相机驱动蓝牙驱动Flash内存驱动Binder IPC驱动Linux内核层

usb驱动键盘驱动WIFI驱动音频驱动能源驱动

一 。。底层操作系统层(os)

因为Android源于Linux,使用了Linux内核,所以,Android使用Linux2.6作为操作系统的基础。Android对操作系统的使用包括核心和驱动程序两部分。

Android内核对应于Linux内核,Android更多的是需要一些与移动设备相关的驱动程序。

主要驱动如下所示:

显示驱动:(display Driver):是常用的基于Linux的帧缓冲(Frame Buffer)驱动。

Flash内存驱动(flash memory Driver):是基于MTD的Flash驱动程序

照相机驱动(Camera Driver):用于基于Linux的V4L(video for linux)驱动

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

WIFI驱动(Camera Driver):基于IEEE802.11标准的驱动程序。

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

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

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

Power Manager(能源管理):用于管理电池电量等信息。

二。各种库(libraries)和Android运行环境(Runtime)

    本层次对应一般嵌入式系统,相当于中间件层次。Android的本层次分成两个部分,一个是各种库,另一个是Android运行环境。本层的内容大多是使用C实现的,其中包含了如下所示的各种库。

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

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

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

界面管理工具(sufece manager):提供了管理显示子系统等功能。

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

webkit:网络浏览器的核心。

FreeType:位图与矢量字体的功能。

在一般情况下,Android的各种库是以系统中间件的形式提供的,它们的显著特点是与移动设备平台的应用密切相关。另外,Android 的运行环境主要是指Dalvik

(虚拟机)技术。Dalvik和一般的Java虚拟机(Java vm)是有区别的 。

Java虚拟机:执行的是Java标准字节码(Bytecode).

ART+Dalvik:执行的是Dalvik可执行格式(.dex)中方的执行文件。在执行的过程中,每一个应用程序即一个进程(Linux的一个process)。二者最大的区别在于Java VM是以基于栈的虚拟机(stack-based),而Dalvik是基于寄存器的虚拟机(Register-based)。显然,后者最大的好处在于可以根据硬件实现更大的优化,

这更适合移动设备的特点。从Android 5.0版本开始,Android的默认运行环境为ART。ART的机制与Dalvik不同。在Dalvik下,应用每次运行的时候,字节码都需要通过即时编译器转换为机器码,这会拖慢应用的运行效率,而在ART环境中,应用在第一次安装的时候,字节码就会预先编译成机器码,使其成为真正的本地应用。这个过程叫做预编译(AOT, Ahead-Of-Time)。这样改进后,应用的启动(首次)和执行都会变得更加的快速。

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

在整个Android系统中,和应用开发最相关的是Application Framework,在这一层,Android为应用程序层的开发者提供了各种功能强大的APIs,这实际上是一个应用程序的框架。由于上层的应用程序是以Java构建的。在本层提供了程序中所需要的各种控件,例如,视图组件(Views),列表(List),栅格(Grid),文本框(Text Box),按钮(Button),甚至还有一个嵌入式的Web浏览器。一个基于的Android应用程序可以利用应用程序框架中的以下5个部分。

Activity:活动

Broadcast Intent Receiver:广播意图接受者。

Service:服务

Content Provider:内容提供者。

Intent and Intent Filter:意图和意图过滤器。

四。。 顶层应用程序(Application)

Android的应用程序主要是用户界面(User Interface)方面的,本层通常使用Java语言编写,其中还包括各种被放置在“res”目录中的资源文件构成。Java程序和相关资源在经过编译后,会生成一个APK包。Android本身提供了主屏幕(Home),联系人(Contact),电话(Phone),浏览器(Browers)等众多的核心应用。

同时应用程序的开发者还可以使用应用程序框架层的API实现自己的程序。这也是Android开源的巨大潜力的体现。

你可能感兴趣的:(理论——剖析Android系统架构)