基于Android平台的Web服务技术研究-设计应用_第1页
基于Android平台的Web服务技术研究-设计应用_第2页
基于Android平台的Web服务技术研究-设计应用_第3页
基于Android平台的Web服务技术研究-设计应用_第4页
基于Android平台的Web服务技术研究-设计应用_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档-下载后可编辑基于Android平台的Web服务技术研究-设计应用摘要:介绍了Android平台的架构和Web服务,探讨在Android平台上的应用程序如何使用ksoap2-android类库访问Web服务,使用一个简单的实例实现用ksoap2-android在Android平台上访问Web服务。

Android平台是Google于2022年11月推出的一种智能手机平台,由操作系统、中间件、用户界面、应用软件组成,全面整合的移动"软件栈".诚然,提到Android就不得不说开放手机联盟(OpenHandsetAlliance),它是一个由33家手机制造商、软件商和电信业组成的推广Android的联合会。Android是一个开放、自由的移动终端系统,Android平台的开放性也保证了该平台不存在任何阻碍移动产业创新的专有权障碍。随着国内3G进入正式的应用阶段,采用Android系统的智能手机层出不穷。另一方面,WebServices已经逐渐成为Internet上一个重要组件,WebServices天生的优点使它完全适合于为无线设备提供服务。WebServices和移动设备的结合,将会推动移动应用的发展。

为此,本文就将讨论在Android平台上如何访问WebServices的相关技术实现问题。

1Android平台

Android平台的架构从下到上可分为五个部分:Linux内核、库、Android运行时环境、应用程序框架、应用程序。

1)Linux内核:服务(包括硬件驱动程序、进程和内存管理、安全、网络和电源管理)都由一个Linux2.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平台上访问WebServices

WebServices是一种基于SOAP协议的以实现远程调用的分布式计算方式。利用WebServices可以将不同操作系统平台、不同语言、不同技术开发的应用整合到一起,具有非常广阔的应用前景。但是,在AndroidSDK中并没有提供调用WebServices的库。因此,为了实现在Android平台上访问WebServices的功能需要借助第三方类库来实现。

Android平台上常用的用来访问WebServices的软件包是ksoap2-android.ksoap2-adroid是一个开源项目,为Android平台提供给了一个轻量级的而且高效的SOAP库。

利用ksoap2-android在Android平台上调用WebServices的步骤如下:

1)设定WebServices的命名空间和调用的方法名称,关键的代码如下:

SoapObjectreq=newSoapObject(nameSpace,methodName);其中,nameSpace参数表示的是要调用的WebServices的命名空间的一个String类型变量,该参数开源从WebServices的WSDL文档中获得;methodName参数表示要调用的WebServices的方法名称的一个String类型变量。

2)设定方法的参数值(可选的,如果调用方法无参数,就可省略):

req.addProperty("param","value");3)生成调用方法的SOAP请求信息。该SOAP请求信息利用SoapSerializationEnvelope对象描述:

SoapSerializationEnvelopessEvelope=newSoapSerializationEnvelope(SoapEnvelope.VER11);

ssEvelope.bodyOut=req;

SoapSerializationEnvelope对象的创建需要通过SoapSerializationEnvelope类的构造方法设置SOAP协议的版本号。SOAP协议的版本号是根据WebServioces的版本号决定的。另外,创建SoapSerializationEnvelope对象时,需要设置SoapSerializationEnvelope类的bodyOut属性,属性值为步创建的SoapObject对象。

4)创建HttpTransportSE对象。利用HttpTransportSE类的构造方法设置WebServices的WSDL的URL,代码如下:

HttpTransportSEtrans=newHttpTransportSE(URL);5)使用call方法调用WebServices,代码如下:

trans.call(null,ssEvelope);6)使用getResponse方法获得WebServices的返回结果,代码如下:

SoapObjectsoapResult=(SoapObject)ssEvelope.getResponse();

3访问WebServices的实例

我们现在将用简单的例子来实现在Android平台利用ksoap2-adroid实现简单的WebServices访问协议。

3.1服务器端程序。

我们发布一个简单的Web服务,其功能是根据用户的输入查询数书目的相关信息。这个Web服务使用的服务器是ApacheTomcat7.0.5.实现类的源代码如下:

Book类的代码如下:

利用Eclipse的工具生成Web服务的部署文件,并拷贝到Tomcat服务器~webapps\axis2\WEB-INF\services目录下,启动服务器进行发布。其中,生成的services.xml文件如下:

图1Web服务部属结果图

部署成功后,我们在浏览器中输入http://localhost:8080/axis2/services/listServices,可以看到在服务上所部属的服务。

我们可以在http://localhost:8080/axis2/services/Seach-BookService芽wsdl网页上看到Web服务的WSDL描述。

3.2Android客户端

ksoap2-android-assembly-2.5.2-jar-with-dependencies.jar包后,引入到我们的工程文件中,就可以使用ksoap2访问Web服务了。客户端实现代码如下:

packagenet.blogjava.mobile.wsclient;

importorg.ksoap2.SoapEnvelope;

importorg.ksoap2.serialization.SoapObject;

importorg.ksoap2.serialization.SoapSerializationEnvelope;

importorg.ksoap2.transport.HttpTransportSE;

importandroid.app.Activity;

importandroid.os.Bundle;

importandroid.view.View;

importandroid.view.View.OnClickListener;

importandroid.widget.Button;

importandroid.widget.EditText;

importandroid.widget.TextView;

3.3测试客户端

在Android模拟器上运行客户程序,调用Web服务后的结果如图2所示。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论