首页 理论教育 Android平台的体系结构简介

Android平台的体系结构简介

时间:2023-06-27 理论教育 版权反馈
【摘要】:下面介绍Android平台体系结构,如图1-2所示。图1-2Android平台体系结构从图1-2可以看出Android平台分为4层,从高到低分别是应用层、应用框架层、系统运行库层和Linux内核层。Android平台更多地需要一些与移动设备有关的驱动程序,主要的驱动如下:显示驱动:基于Linux的帧缓冲驱动。

Android平台的体系结构简介

下面介绍Android平台体系结构,如图1-2所示。

图1-2 Android平台体系结构

从图1-2可以看出Android平台分为4层,从高到低分别是应用层、应用框架层、系统运行库层和Linux内核层。下面对这4层进行简要的分析和介绍。

1.应用层

应用是用Java语言编写的运行在虚拟机上的程序,如图1-2中最上层部分所示。其实Google公司最开始时就在Android操作系统中捆绑了一些核心应用,比如E-mail客户端、SMS短消息程序、日历、地图、浏览器、联系人等。

2.应用框架层

这一层是编写Google公司发布的核心应用时所使用的API框架,开发人员同样可以使用这些框架来开发自己的应用,这样便简化了程序开发的架构设计,但是必须遵守其框架的开发原则。

从图1-2中可以看出,Android平台提供了如下组件。

(1)丰富而又可扩展的视图(View):可以用来构建应用程序,它包括列表(List)、网络(Grid)、文本框(EditText)、按钮(Button),以及可嵌入的Web浏览器。

(2)内容提供器(Content Provider):它可以让一个应用访问另一个应用的数据(如联系人数据库),或共享它们自己的数据。

(3)资源管理器(Resource Manager):提供非代码资源的访问,如本地字符串、图形和布局文件(Layout File)。

(4)通知管理器(Notification Manager):应用可以在状态栏中显示自定义的提示信息。

(5)活动管理器(Activity Manager):用来管理应用程序生命周期并提供常用的导航退回功能。

(6)窗口管理器(Window Manager):管理所有窗口程序。

(7)包管理器(Package Manager):管理Android操作系统内的程序。

(8)电话管理器(Telephony Manager):管理所有移动设备功能。

(9)位置管理器(Location Manager):提供位置服务

(10)XMPP服务(XMPP Service):提供Google Talk服务。

3.系统运行库(C/C++库以及Android运行库)层

当使用Android应用框架时,Android操作系统会通过一些C/C++库来支持用户所使用的各个组件,使其能更好地为用户服务。

(1)libc:C语言标准库,系统最底层的库,通过Linux系统调用。(www.xing528.com)

(2)多媒体库(MediaFramework):Android操作系统多媒体库,基于PackVideo OpenCORE,该库支持多种常见格式的音、视频的回放和录制,以及图片的浏览,比如MPEG4、MP3、AAC、AMR、JPG、PNG等。

(3)SGL:2D图形引擎库。

(4)SSL:位于TCP/IP与各种应用层协议之间,为数据通信提供支持。

(5)OpenGL ES 1.0:提供对3D效果的支持。

(6)SQLite:关系数据库。

(7)WebKit:Web浏览器引擎。

(8)FreeType:位图(bitmap)及矢量(vector)。

每个Java程序都运行在Dalvik虚拟机之上。与PC一样,每个Android应用程序都有自己的进程,Dalvik虚拟机只执行“.dex”的可执行文件。Java程序通过编译后,还需要通过SDK中的dx工具转化为“.dex”格式才能正常在虚拟机上执行。

每个Android应用都运行在一个Dalvik虚拟机实例中,而每个虚拟机实例都是一个独立的进程空间。虚拟机的线程机制、内存分配和管理、Mutex等的实现都依赖底层操作系统。所有Android应用的线程都对应一个Linux线程,虚拟机因而可以更多地依赖操作系统的线程调度和管理机制。不同的应用在不同的进程空间里运行,对不同来源的应用都使用不同的Linux用户来运行,以最大限度地保护应用的安全和独立运行。

4.Linux内核层

Android平台的核心系统服务基于Linux内核,如安全性管理、内存管理、进程管理、网络协议栈和驱动模型等都依赖于Linux内核。Linux内核同时也作为硬件和软件栈之间的抽象层。

Android平台更多地需要一些与移动设备有关的驱动程序,主要的驱动如下:

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

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

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

(4)照相机驱动(Camera Driver):常用的基于Linux的v412(Video for Linux)驱动。

(5)音频驱动(Audio Driver):常用的基于ALSA(Advance Linux Sound Architecture)的高级Linux声音体系驱动。

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

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

(8)Binder(IPC)驱动[Binder(IPC)Driver]:Android平台的一个特殊的驱动程序,具有单独的设备节点,提供进程间通信的功能。

(9)电源管理(Power Management):比如电池电量等。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈