2。2 关键技术简介
2。2。1 Android简介
Android 是开源的移动操作系统,基于 Linux。它的构建方式为软件叠层(Software Stack)。这种叠层结构使层和层彼此分开,分工明确。底层只提供基本功能,由C语言开发,以Linux 内核工作为基础;中间层由C++开发,包括函数库Library 和虚拟机Virtual Machine;最上层是各种应用软件。应用软件编写程序的部分为Java。
不同组件可以组合为一个Android应用程序。Activity是Android应用中最常用的组件。事实上还有Broadcast Receiver、Service和Content Provider等组件。一旦确定了应用程序中需要的组件,就应该在Android清单文件:AndroidManifest。xml中列出来,它是整个Android应用的全局描述文件。 AndroidManifest。xml是一个XML配置文件,它用于说明应用程序中包含的组件、名称及所使用的图标等。图2。1 是Android应用程序的工作流程。
图2。1 Android工作流程
(一) Android体系结构划分为四层:
(1)应用程序层(APPLICATIONS)
Android系统包含一系列的由Java编写的核心应用程序,比如 SMS程序、日历等[31]。
(2)应用程序框架(APPLICATION FRAMEWORK)
这是开发人员接触最多一层,起着减轻组件的作用。这里每个应用程序都可以将自己的功能借出,使得开发人员很容易替换程序的组件,而不担心妨碍其他程序的正常运行。当然,替换的前提是必须遵守框架的安全性规定。
该层主要包含以下9部分:
1.活动窗口(activity manager):管理程序的生命周期并提供导航回退功能[1]。
2.窗口管理(window manager ):管理所有的应用程序管理窗口。
3.内容供应商(content providers):实现应用程序间数据共享。
4.视图系统(view system):构建应用程序的基本组件。
5.包管理(package manager):管理Android系统内的程序。
6.电话管理(telephony manager):管理移动设备的功能。
7.资源管理(resource manager):提供给应用程序所需要的资源。
8.位置管理(location manager):提供位置服务,如GPRS定位等。
9.通知管理(notification manager):管理手机顶部状态栏,提供各种消息信息的提示。
(3)Android运行库层(LIBRARIES)
Android包含一些C/C++库,这些库能被系统中不同的组件使用。它们通过Android应用程序框架为开发者提供服务[2]。
下面列出一些核心库。
1.系统C库(libc):C库是最底层的库,通过Linux来调用。
2.媒体库:它基于 PacketVideo OpenCORE。支持常见音视频格式,也可以查看图片。
3.Surface Manager:管理Surface,在程序同时执行时,管理其显示和存取。
4.LibWebCore:一个全新的WEB浏览器引擎。
5.SGL:提供底层的2D图形绘制引擎。
6.Free Type:位图(bitmap )和矢量(vector )字体显示。
7.SQLite:轻量级关系型数据库。
(4)Linux内核层(LINUX KERNEL)
Android核心操作系统采用Linux2。6内核。Linux内核提供了如安全性、内存管理、进程管理、网络协议栈和驱动模型等服务[3]。同时也是硬件和软件之间的抽象层。
(二)Android平台五大优势特色:
(1)开放性。
其开放性使得移动产业得到迅速发展。
(2)平等性。
在Android的系统上,所有应用程序完全平等。
(3)无界性。
各应用程序之间完全无界。任何程序的模块都可以被其他程序所调用。
(4)方便性。
Android平台用来开发应用是很方便的。Android提供了许多库和工具供人们使用。