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