嵌入式系统嵌入式系统/ARM技术中的基于技术中的基于Android平台的平台的Web服务技术服务技术
研究研究
摘要:介绍了Android 平台的架构和Web 服务, 探讨在Android 平台上的应用程序如何使用ksoap2-android 类
库访问Web 服务,最后使用一个简单的实例实现用ksoap2-android 在Android 平台上访问Web 服务。
Android 平台是Google 于2007 年11 月推出的一种智能手机平台,由操作系统、中间件、用户界面、应用软件
组成,全面整合的移动"软件栈".诚然,提到Android 就不得不说开放手机联盟(Open Handset Alliance), 它
是一个由33 家手机制造商、软件商和电信业组成的推广Android 的联合会。Andr
摘要:介绍了Android 平台的架构和Web 服务, 探讨在Android 平台上的应用程序如何使用ksoap2-android 类库访问
Web 服务,最后使用一个简单的实例实现用ksoap2-android 在Android 平台上访问Web 服务。
Android 平台是Google 于2007 年11 月推出的一种智能手机平台,由操作系统、中间件、用户界面、应用软件组成,全
面整合的移动"软件栈".诚然,提到Android 就不得不说开放手机联盟(Open Handset Alliance), 它是一个由33 家手机制造
商、软件商和电信业组成的推广Android 的联合会。Android 是一个开放、自由的移动终端系统,Android 平台的开放性也保
证了该平台不存在任何阻碍移动产业创新的专有权障碍。随着国内3G 进入正式的应用阶段, 采用Android 系统的智能手机层
出不穷。另一方面,Web Services 已经逐渐成为Internet 上一个重要组件,Web Services 天生的优点使它完全适合于为无线
设备提供服务。Web Services 和移动设备的结合,将会推动移动应用的发展。
为此, 本文就将讨论在Android 平台上如何访问WebServices 的相关技术实现问题。
1 Android 平台平台
Android 平台的架构从下到上可分为五个部分:Linux 内核、库、Android 运行时环境、应用程序框架、应用程序。
1)Linux 内核:核心服务(包括硬件驱动程序、进程和内存管理、安全、网络和电源管理)都由一个Linux 2.6 内核处
理。内核还在硬件和软件栈的其他部分之间提供了一层抽象。
2)库:运行在内核之上,Android 包含了各种C/C++核心库,例如libc 和SSL,以及用来回放音频和视频媒体的媒体库;
提供管理显示的外观管理器; 包含2D 和3D 的SGL 和OpenGL 的图形库;本地数据库支持的SQLite;集成了Web 浏览器和
Internet 安全的SSL 和WebKit.
3)Android 运行时:Android 运行时包含了核心库和Dalvik虚拟机,因此,它是面向应用程序提供动力的引擎,它和库一
起形成了应用程序框架的基础。Android 核心库提供了Java 核心库以及Android 特定库可用的大部分功能。Dalvik 是一个基于
寄存器的虚拟机, 它已经被优化从而保证一个设备可用高效地同步运行多个实例。它以Linux 内核进行线程和底层内存管理。
4)应用程序框架:应用程序框架提供了用来创建Android应用程序的类。它还对硬件访问和对用户界面及应用程序资源的
管理提供了一般抽象。
5)应用层:所有的应用程序,包括本地的和第三方的,都使用相同的库来构建与应用层之上。应用层运行在Android 运
行时之内,并且是调用了应用程序框架中可用的类和服务。
2 在在Android 平台上访问平台上访问Web Services
Web Services 是一种基于SOAP 协议的以实现远程调用的分布式计算方式。利用Web Services 可以将不同操作系统平
台、不同语言、不同技术开发的应用整合到一起,具有非常广阔的应用前景。但是, 在Android SDK 中并没有提供调用Web
Services 的库。因此, 为了实现在Android 平台上访问Web Services 的功能需要借助第三方类库来实现。
Android 平台上常用的用来访问Web Services 的软件包是ksoap2-android.ksoap2-adroid 是一个开源项目,为Android平
台提供给了一个轻量级的而且高效的SOAP 库。
利用ksoap2-android 在Android 平台上调用Web Services的步骤如下:
1) 设定Web Services 的命名空间和调用的方法名称,关键的代码如下:
SoapObject req = new SoapObject(nameSpace,methodName);其中,nameSpace 参数表示的是要调用的Web
Services的命名空间的一个String 类型变量, 该参数开源从Web Services的WSDL 文档中获得;methodName 参数表示要调
用的Web Services 的方法名称的一个String 类型变量。
2)设定方法的参数值(可选的,如果调用方法无参数,就可省略):
req.addProperty("param","value");3)生成调用方法的SOAP 请求信息。该SOAP 请求信息利用
SoapSerializationEnvelope 对象描述:
SoapSerializationEnvelope ssEvelope =new SoapSerializationEnvelope(SoapEnvelope.VER11);
ssEvelope.bodyOut = req;
SoapSerializationEnvelope 对象的创建需要通过SoapSerializationEnvelope 类的构造方法设置SOAP 协议的版本号。
评论0
最新资源