样性。Android平台为开发应用程序提供了一套很好的框架,可以在这个平台的基础上开发不同的应用程序,也可以开发新的组件供应用程序调用[2]。
Android的系统架构和其它操作系统一样,采用了分层的架构。从架构图看,android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和
linux核心层。
Android是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统。
2.1.1 Android平台特性
Android平台有如下特性:
应用程序框架支持组建的重建与替换。这在之前的手机操作系统中是很难想象的。这意味着可以把系统中不喜欢的应用程序替换掉,安装自己喜欢的应用程序,例如,打电话应用程序、文件管理器等。
Dalvik虚拟机专门为移动设备做了优化。Android应用程序将由Java编写、编译的类文件通过DX工具转换成一种后缀名为.dex的文件来执行。Dalvik虚拟机是基于寄存器的,相对于Java虚拟机速度要快很多
内部集成浏览器基于开源的WebKit引擎。有了内置的浏览器,这将意味着WAP应用的时代即将结束,真正的移动互联网时代已经来临,手机是一台"小电脑"可以网上随意遨游。
优化的库包括2D和3D图形库,3D图形库基于OpenGL ES1.0.强大的图形库给游戏开发带来福音。3G最为重要的应用莫过于手机上网和手机游戏了。
SQLite用作结构化的数据存储。
多媒体支持包括常见的音频、视频和静态印象文件格式(如 MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、GIF)。
GSM电话(依赖与硬件)。
蓝牙(Bluetooth)、EDGE、3G、WiFi(依赖与硬件)。
照相机、GPS、指南针和加速计(依赖与硬件)。
丰富的开发环境包括设备模拟器、调试工具、内存及性能分析图表和Eclipse集成开发环境插件。Google提供了Android开发包SDK,其中包含了大量的类库和开发工具。并且专门开发了针对Eclipse的可视化开发插件ADT。
2.1.2 Android平台架构
如图所示的是Android操作系统的体系结构
如图中可以看出Android操作系统体系结构分为4层,由上而下依次是应用程序、应用程序框架、核心类库和Linux内核。其中在第三层还包括Android运行时环境。
图2-1 Android架构图[3]
1. 应用程序
Android连同一个核心应用程序包一起发布,该应用程序包包括E-mail客户端、SMS短消息程序、日历、地图、浏览器、联系人管理程序等。所有的应用程序都是用Java编写的。
2. 应用程序框架
开发者完全可以访问核心应用程序所使用的API框架。该应用程序架构用来建华组件软件的重用,任何一个应用程序都可以发布它的功能块并且任何其他的应用程序都可以使用其发布的功能块(不过得遵循框架的安全性限制)。该应用程序重用机制使得组件可以被用户替换。
以下所有的应用程序都有一些列的服务和系统组成,包括:
1) 一个可扩展的视图(View)可以用来创建应用程序,包括
列表(lists)、网络(grids)、文本框(text boxes)、按钮(buttons),甚至是一个可嵌入的Web浏览器。
2)内容管理器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据。
3)一个资源管理器(Resource Manager)提供非代码资源的访问,如本地字符串、图形和分层文件(layout files)。
4)一个通知管理器(Notification Manager)使得应用