android web sevice,Web Service在Android开发中的应用研究
在移動客戶端操作系統(tǒng)是Android并且服務(wù)端通過Web Service提供編程接口的情況下,實現(xiàn)了客戶端與服務(wù)器端的信息交互。本文主要依托車輛檢驗系統(tǒng)中的手持安卓終端和Web服務(wù)通信過程為例,對Android客戶端和Web Service結(jié)合構(gòu)建可擴展、易于維護的應(yīng)用系統(tǒng)提供了高效的方法。
【關(guān)鍵詞】Android Web服務(wù) XML 數(shù)據(jù)通信
1 引言
隨著移動設(shè)備、網(wǎng)絡(luò)的快速發(fā)展,手持終端大有取代傳統(tǒng)PC終端地位的趨勢,更多的應(yīng)用在向移動終端遷移。在IOS、Android、Windows Phone這三大移動平臺中,以Android平臺的應(yīng)用最廣。由于移動終端存儲空間和芯片性能的限制,大多Android應(yīng)用都采用客戶端/服務(wù)器的模式。此類Android應(yīng)用的關(guān)鍵點就在于移動端與服務(wù)器端的交互,選擇一種安全、快速、通用、數(shù)據(jù)通信量小的數(shù)據(jù)通信方法對移動設(shè)備來說是非常重要的。
2 關(guān)鍵技術(shù)
2.1 Android應(yīng)用系統(tǒng)框架
Android可以通過Http、套接字(Socket)、Web Service、遠程調(diào)用協(xié)議(RPC)與服務(wù)器進行交互。但是基于Socket的傳輸只適用于安全性、實時性高的應(yīng)用;HttpClient高效穩(wěn)定,但是維護成本高昂;RPC可跨語言跨平臺,但是在編譯期無法排錯。而Web Service可以直接利用Web服務(wù)的監(jiān)聽。已逐漸成為Web上的重要組件,提供松耦合機制,所基于的協(xié)議充分開放,是創(chuàng)建可互操作、分布式應(yīng)用程序的新平臺,并且具有一個:為無線設(shè)備提供服務(wù)j基于以上優(yōu)點本系統(tǒng)選擇運用Web Service進行Android客戶端與監(jiān)管平臺服務(wù)器端的通信。
2.2 Web Service
Web service是一個平臺獨立的、松耦合的、自包含的、基于可編程的Web應(yīng)用程序,可使用開放的XML(Extensible Markup Language,可擴展標記語言)標準來描述、發(fā)布、發(fā)現(xiàn)、協(xié)調(diào)和配置這些應(yīng)用程序,用于開發(fā)分布式的互操作的應(yīng)用程序。在Web Service模型的中,一共有三種工作角色,其中服務(wù)提供者(服務(wù)器)和服務(wù)請求者(客戶端)是必須的,服務(wù)注冊中心是一個可選的角色。它們之間的交互和操作構(gòu)成了Web服務(wù)的架構(gòu)。
3 系統(tǒng)架構(gòu)設(shè)計
本文依據(jù)中華人民共和國機動車安全技術(shù)檢驗項目和方法(GB 21861-2015)構(gòu)建的最新車輛檢測平臺的手持終端檢測設(shè)備為例。來進行說明。在檢測平臺中,檢測系統(tǒng)由兩部分構(gòu)成,一部分是手持設(shè)備,用于進行車輛外觀、車輛底盤和底盤動態(tài)三項檢測。由手持終端將采集的數(shù)據(jù)以JSON格式,發(fā)送到Web服務(wù)端,再由Web程序?qū)?shù)據(jù)存儲到本地數(shù)據(jù)庫。同時,要通過公安部門監(jiān)管平臺的Web服務(wù)接口即時上傳檢測結(jié)果,其中手持終端采用Android平臺,監(jiān)管平臺部署在WebSphere上采用Web服務(wù)和客戶端通信。;第二部分是由檢測線用于采集其余相關(guān)車輛數(shù)據(jù),由控制中心將傳感器采集到的數(shù)據(jù)存儲到本地數(shù)據(jù)庫。同時,要通過公安部門監(jiān)管平臺的Web服務(wù)接口即時上傳檢測結(jié)果。過程如圖1,本文以手持終端和監(jiān)管平臺之間的通信為例進行研究。
4 關(guān)鍵實現(xiàn)
下面以Android手持終端與監(jiān)管平臺Web服務(wù)通信接口間交互的讀接口數(shù)據(jù)操作為例,詳細介紹Android終端與部署于應(yīng)用服務(wù)器的Web Service的通信過程。
4.1 監(jiān)管系統(tǒng)接口說明
檢驗監(jiān)管系統(tǒng)對外接口訪問地址:http://ip:port/pnweb/services/TmriOutAccess?wsdl
其中IP標識Web服務(wù)器地址;port對應(yīng)系統(tǒng)應(yīng)用服務(wù)的端口號,啟用80的不填寫。
檢驗監(jiān)管系統(tǒng)對外接口包括兩類:查詢類和寫入類接口。查詢類接口對外提供查詢服務(wù),寫入類接口對外提供將業(yè)務(wù)數(shù)據(jù)寫入檢驗監(jiān)管系統(tǒng)業(yè)務(wù)庫。本文以查詢類接口使用為例進行描述接口參數(shù)見表1,查詢類接口如下:
public String queryObjectOut(String xtlb,String jkxlh,String jkid,String QueryXmlDoc)
4.2 Android端接口調(diào)用
在Android中調(diào)用Web服務(wù),獲取待檢測車輛需要的檢測項目。關(guān)鍵代碼如下:
String SOAP_ACTION=Pace+QueryName; //將方法名和命名控件綁定
SoapObject request = new SoapObject(Pace,QueryName);//設(shè)置要返回的對象
//設(shè)置需要返回請求對象的參數(shù)
request.addProperty("xtlb",xtlb);
request.addProperty("jkxlh",jkxlh);
//設(shè)置soap版本
SoapSerializationEnvelope envelope= new SoapSerializationEnvelope(SoapEnvelope.VER10);
envelope.bodyOut = request;
int timeout=10000*60; //超時設(shè)置
HttpTransportSE trans = new HttpTransportSE(SERVER_URL,timeout);
trans.debug = true;
trans.call(SOAP_ACTION, envelope);
object= (SoapObject)envelope.bodyIn; //獲取返回的數(shù)據(jù)
返回的待檢測項目項目構(gòu)成的XML文件如下(其中wgjyzp、zlzp、cyzp字段就是待檢測項目編號,中間用逗號分割):
0111,0112,0113 2
成功
0201,0202,0203,0204,0205
0111,0112,0113
1
01,02,03,04,05,09,16,17,18,19,20,21,22,23
4.3 XML解析
XmlPullParse的工作原理:XML pull提供了開始元素和結(jié)束元素。當某個元素開始時,我們可以調(diào)用parser.nextText從XML文檔中提取所有字符數(shù)據(jù)。當解釋到一個文檔結(jié)束時,自動生成EndDocument事件。
StringWriter writer = new StringWriter();
XmlSerializer serializer = Xml.newSerializer(); //創(chuàng)建一個XmlSerializer實例
serializer.setOutput(writer); //設(shè)置輸出方向為writer
serializer.startDocument("GBK", null);
serializer.startTag("", "root");
serializer.startTag("", "head");
serializer.startTag("", "zlzp"); //解析zlzp字段
serializer.text(wie.getZlzp()); //取zlzp字段值,賦給wie的zlzp屬性
serializer.endTag("", "zlzp");
.......
serializer.endTag("", "head");
serializer.endTag("", "root");
serializer.endDocument(); //XML文檔結(jié)束
5 總結(jié)
經(jīng)過測試,系統(tǒng)實現(xiàn)了預(yù)期的功能。并且系統(tǒng)可靠性強,維護簡單,能在專用網(wǎng)絡(luò)中可靠的和監(jiān)管中心通信。實驗證明通過Web Service系統(tǒng)也可以非常靈活的部署和升級,服務(wù)信息修改后,只需要重新發(fā)布服務(wù),客戶端直接調(diào)用即可。同時移動應(yīng)用的開發(fā)選擇方式很多,采用Web Service進行移動應(yīng)用的開發(fā)給Android客戶端與服務(wù)器端的通信提供了一種標準化的方式。Android用戶界面的豐富性、操作簡便性與Web Service的跨平臺可操作性,兩者的結(jié)合對移動應(yīng)用的開發(fā)提供了一個更好的發(fā)展方向。本文所提供的方法易于移植到IOS及Windows Phone系統(tǒng)的應(yīng)用開發(fā)中。
參考文獻
[1]龔瑞琴,畢利.基于Web Service的Android技術(shù)應(yīng)用研究[J].計算機技術(shù)與應(yīng)用,2014.
[2]龔成瑩,邢敬宏,胡銀保.基于JSON的Android移動終端與PHP及MySQL數(shù)據(jù)通信[J].工業(yè)儀表與自動化裝置,2013.
[3]權(quán)重民,彭聽昀.利用JSON實現(xiàn)Android高效、安全訪問遠程數(shù)據(jù)庫的一種方式[J].韶關(guān)學院學報,2011.
作者簡介
姚世明(1979-),男,江蘇省姜堰市人。大學本科學歷?,F(xiàn)為南通科技職業(yè)學院講師,從事高校教學工作。
作者單位
南通科技職業(yè)學院 江蘇省南通市 226007
總結(jié)
以上是生活随笔為你收集整理的android web sevice,Web Service在Android开发中的应用研究的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 超强合集:OCR文本检测干货汇总(含论文
- 下一篇: 最常用的GitHub—— Android