【Android论文栏目提醒】:网学会员鉴于大家对Android论文十分关注,论文会员在此为大家搜集整理了“Android Web+Services应用研究 - 操作系统”一文,供大家参考学习
璐SN 1伽哆一3044 E-mail:xsjl@eccc.net.ca Computer Knowledge and Technology电脑知识与技术 http://www.dnzs.net.ca V01.7,No.12,April 201 1,pp.2851—2852 Tel:+86-551-5690963 5690964Android Web Services应用研究彭海文 (武汉大学信息管理学院,湖北武汉430072)摘要:该文介绍了在Android平台下如何使用ksoap2库来实现Web Services的功能。
并介绍了Android的消息机制。
及如何通过Handler来实现异步UI更新。
关键词:Android:Web Services;Handler;ksoap中图分类号:TP311 文献标识码:A 文章编号:111119—3044(2011)12-2851-02Applied Research on Android of Web ServicesPENG Hai-wenCqCuhan Urfivenity School of Informadon Management,Wuhan 430072,China)Abstract:This paper introduces how to use ksoap2 library to implement Web Services funcdon On Android,afterward it in仃oduces theAndroid message mechanism and the method of asynchronous UI update via handler.Key words:
android;web services;handler;ksoap Android现在是最热的移动开发平台,它提供了完善的开发工具和应用程序框架,使得开发人员能够开发各种各样的应用程序。
到目前为止Android SDK已经发布到3.0。
但是Coosle仍然没有提供对Web Services的支持,也没有提供任何和SOAP相关的库。
Google似乎对把Web Services加入Android没有太大兴趣,而更愿意支持新的Web Services--基于REST模式,实用JSON来做数据封装。
为了利用好现有的一些Web Services服务,我们可以自己来实现SOAP协议或者使用ksoap2库。
l使用ksoap2调用Web Services ksoap2是JAVA环境下的一个轻景级Web Services客户端库,被设计用在Applets和J2ME中。
KSOAP2一Android是其在An-droid平台下的移植,它提供了一个高效的SOAP库,借助ksoap2我们就能够访问Web Services服务,下面是具体的步骤。
11导入ksoap2一Android的iat”及其依赖库到自己的工程里面: 在ksoap2的网站上提供了ksoap2-
android-assembly-2.4-jar-with—dependencies.jar,这个文件包含了所有ksoap2要用到的文件,然后在eclipse中打开项日的properties窗口,在Java Build Path的Libraries选项卡中添加jar文件 2)指定WebService的命名空间和调用的方法名,然后设置调用方法的参数值,这一步是可选的,如果方法没有参数,可以省略这一步: SoapObjeet request=new SoapObject(”http://namespace.com”,”MethodName”); request.addProperty(”paramI”,”valuel”); request.addProperty(”param2”,”value2”); SoapObject构造甬数的第1个参数为Webservice的命名空间。
可以从WSDL文档中找到WebService的命名空间。
第2个参数是调用的WebServiee方法名。
31生成调用WebService方法的SOAP请求信息。
该信息由SoapSerializationEnvelop对象描述: SoapSerializationEnvelope e〔tv=new SoapSerializationEnvelope(SoapEnvelope.VERl 1); env.bodyOut=request; env.dotNet=true’,//是否是dotNet WebService 创建SeapSerializationEnvelope对象时需要通过SoapSerializationEnvelope类的构造方法设置SOAP协议的版本号。
该版本号需要根据服务端Webserviee的版本号设置。
在创建SeapSerializationEnvelope对象后.要设置SoapSerializationEnvelope类的bodyOut属性为上面创建的SoapObjeet对象。
41创建AndroidHttpTransport对象。
通过AndmidHttpTransport类的构造方法可以指定WebService的WSDL文档的URL,然后调用call方法来发送请求给服务器、接收服务器响应并序列化SOAP消息,最后使用getResponse方法获得WebServiee方法的返回结果 AndroidHttpTransport aht=new AndmidHttpTransport(“http://url/service.aSU.1X”); aht.call(null,env); SoapObjeet soapObjeet=(SoapObject)env.getResponse0; 取得SeapObject对象后.我们可以同getProperty来进行解包,具体做法参见SoapObject的API说明。
收稿日期:2011-02-25 本栏目责任编辑:谢媛嫒 万方数据 -···--·一·软件设计开发·-2851。
删竹帅响自B目nd T舯咖t■目*‘7H¥ 第7卷镕12Ⅻ(2011 4 d月 “L#&使m ksoap2¥ⅫⅢWeh s…n s∞#0≯#w“SenqeesB日n目络m打m*请¥.让目络*M好∞情&r“{女女”tMg m%{目%《Ⅲ№#t!t*%#%∞☆&””月】1勺日“,#andmidT台t就舍d“P日∞M目。
{ii∞代日☆±线&中#目月∞时候t4口*t“KⅢ∞*nmg‘1.t&&日『∞目n月p的事“.Ⅱ月P∞自度看台觉得a序E&E掉为T目免*佯∞*M AnJ叫·I☆n r十5#∞Ⅻ”目q—nⅢ』u∞Ⅲ”自T±线8日gm超过5秒钟&有响R Andmidg#m一十№m#月&#目A∞”^榧Applk allnn N¨Responding,口n,,【=RgⅢ”自&%&∞设计m重g镕#幕‰{台Ei ANR给月P。
∞镕决ANR∞■%&们H女≈L自∞nn&{j*”一十‰《女m2 w曲Servic鹤异步调用 设m一十情a,1啦击镕%E&¨”镕请求Web 5ervices.拣E把栈得∞结犁更新Ⅻu【±。
镕gL女的^法.a们打算”启一十*%《^请¥Web‰wwes,#*镕*目AⅫ&口十Ⅲ*u『。
t十A Andwid十*f日行∞,Android禁t其№f线&来Ⅲ*自U1线R刨建∞M目《Bmfa≈T¥‰《模g白勺ⅢⅢAndwitI UI*镕#{*线R安±的并日这#操作BmAI·1线《十执行。
在单线《模gT,为r解豳娄似日目题,AndmⅢ设计T一十Messa”Queue(剥息n“】.线程问日“m过设M∞sageQue.e井结合Handler自〔舯per目什*行情息空#。
f目将”t”m”HⅢ介Ⅻ: Mes∞ge Queur≈十∞自nⅫ,月女存放m&Hndlnr女布∞∞息、消enⅫm常M月f某一十“建t臼勺%8,日“aakmm rmyqueuc0#Ⅻj∞%“∞m息nⅫ^ndrold m第月自《g”台#从会∞UIthMad*建一个关Ⅸ∞消息nⅫ,月来督目&序曲~÷f目m件activities.hmadc枷…一#等镕日uA自E∞}&《十d&Handler自UI dtreadⅢm。
Ha.tiler你Ⅳ“发如女青*4十消息A#B十Runnable∞实“。
每十Handler都☆j《一的一十线《“R该线&∞ Ⅲd消息n到管月。
当怀创建一十女∞Handler时靛,默“情aT,t将*g“创建t∞a个线《自该线《的消息n列.m就B说,如*休通过H姐dler发布消息的☆.消息将R会发送到与它关g∞遗十梢息nⅢ,g#mR能址理该消息nⅫ十目*息。
Looper*演着一十Handler自消息nⅫ±月am*#∞自E。
《序Ⅲ件首^mn H邮dler把消息传№镕Lrmper,I』mper≈消息 l露。
。
届&^nW。
Loopcrmm*EnⅫ目∞*自r播蛤所有∞HⅡ11mer.H∞dler接受Ⅻ消n目Ⅷ月hⅫdlcM…#em””g。
日HnHLooper*∞静女^*hⅪper州L岬”得目{fill‰R∞Imper女蜊.“¥{前《《}关联一十Looper女例,*A*将{目i。
日H日n#≈^&I圳per,getMainlmper女*mⅫt&《∞Lof’per宣僦。
u【‰目.〔*女《《.*EnⅢ,Handler,Looper Activity之蝴的是i口fmⅡ址目l率ⅢⅢ。
#r*r镕自nⅫ&其#*目#∞口计B≈月&们日“☆”圭Ⅱ I囱自4av上L—j f日《g“*: II#±%R∞Ae/ivlty中《女一十Ha—hW象: private Handler main handler…w Handlem i public void handieMessage『:Message msg)f P得到Messagc的类ⅪⅫ山容.更*UI*/ super handleM—ge(msg);〕}; 2)往#十时刻(假设按≈镕T日t)*启一十《墁程 public void onCllckⅣJew view)C 【le¨Th readO pubfic九¨n¨1Ⅲ PⅡⅨ*m*Web Senites请#·, 呲h“m…ndMes“%。
(ms0,J} Message ms£=Mdsage obtain0; start0:} 我Wl在新线&中±行Web s…∞请求.即使谖线翟#目g&{台#自ⅫuI‰&.待到请求结束后.№过M*sage abI且in0M Message Pool十取出一十M∞sage,然目使月H日Tldler对象目*“M嘲%ei☆,≈Me哪”&进±眦线日∞¥En“,H柚dlerN女 管Ⅲ∞l肿per目象B缝a女±的.{*是∞^消息鄂消息nⅫ自从nⅫ读Ⅲ*息#B女目g对象保p白勺。
3结束语 僻mm息HwE%nⅢ&女R黄∞女m r Web‰w““∞月月怛a仃1Ⅱ≈*自a昔月fa#,t#女&们∞需g有一&复 m『!_』Ⅸ#“R*口%#∞Ⅲ女¨白q盯『#n#∞^女使{耳代日难“Ⅻ碴自H解。
f过Android月外提供T一十I目粪:AsyncTuk。
t使≈U『Ihm.r】n々址Ⅲ£m_IE%∞”E*q4∞o-qMP#自女H∞K”Ⅻ《”∞任*Ⅱ4Ⅲ前中{镕g借m线《自8Mdhr 目¨女Ⅸ。
m十∞¨¥女{*&镕镕镕#垂}Androkl S11K女# 参考立献: …I^耐咖dⅥ,riki〔EB/OL〕h呷:胁”,dklpedia nT咖h—en/Andmld 〔21Android D∞’elopem〔EB/OL〕hupdldevehper andmid四 【313 Kgmp2-atalwid皿IWOL〕httpdlcode.gocgle∞m悱啪p2咄nd删d H}№E£,Ⅻ1目^nd…cl的№构S扁月*&Ⅲ究〔Jl计算m《缱&月,2n08(I¨ 【5l Roge^RMeikem、1,,tiniek!ZAndmⅢ亩Ⅲ”发【M】Rm:^R邮自&《#,2010 iq#《,犟皋^ndn,id《KmⅧ&”女g^详镕『M1〕匕i:trInmm“.2010 万方数据
Android Web Services应用研究作者: 彭海文, PENG Hai-wen作者单位: 武汉大学信息管理学院湖北武汉430072刊名: 电脑知识与技术英文刊名: COMPUTER KNOWLEDGE AND TECHNOLOGY年,卷期: 20110712参考文献6条1.韩超梁泉
Android系统原理及开发要点详解 20102.Rogers RMeike B Nledniekc Z.
Android应用开发 20103.姚昱旻刘卫N
Android的架构与应用开发研究期刊
论文-计算机系统应用 2008114.Ksoap2-
android5.
Android Developers6.
Android Wiki本文链接:http://d.g.wanfangdata.com.cn/Periodical_dnzsyjs-itrzyksb201112053.aspx