蔡群英
摘要:通過分析Android的技術體系和流行的JAVA EE服務器端SSH框架,給出了Android客戶端與服務器端的數據交互方式。
關鍵詞:移動互聯網;Android客戶端;服務器端;SSH;數據交互
中圖分類號:TP393? ? ? ?文獻標識碼:A
文章編號:1009-3044(2020)16-0055-02
Abstract:Through the analysis of Android technology architecture and popular Java EE server-side SSH frame, the data interaction mode between Android client and server-side is given.
Key words:mobile Internet; Android client; server-side; SSH; data interaction
1引言
手機作為移動互聯網的終端,相比較原來的計算機終端,Android有其內存少,運行速度慢等特點,要求網絡傳輸數據量小,開發以手機為終端的移動互聯網項目,需要解決的關鍵技術就是智能終端如何與服務器端進行數據交互,本文就此方面展開介紹。
2 Android與SSH
2.1 Android的技術體系
Android是Google公司于2007年11月發布的基于Linux平臺的開源手機操作系統,基于Linux技術,由操作系統、中間件、用戶界面和應用軟件組成。Android的體系結構是由五大部分組成:Linux內核、Android Runtime、Libraries、Application Framework和Application。在Android的Android Runtime中,提供了大部分java語言核心庫的功能,系統支持的運用一般都是使用java語言并基于Android SDK進行開發,而對于那些大規模運算和執行效率要求高的應用,使用c/c++語言來開發,開發完成后編譯生成類庫添加到應用中,但整個應用程序如界面繪制、進度調試等核心機制都是部署到框架層通過java來實現[1]。
Android應用程序的組件有四種類型:Activity組件、Intent組件、Service組件和用戶界面。用戶界面和控制是分離的,用戶界面是一個xml文件,activity是用于控制用戶界面的,使之與系統進行交互,每一個用戶界面,都需要編寫與之對應的activity程序,要從一個用戶界面進入另一個界面,通過調用activity的startActivity()方法來實現。AndroidMainfesg.xml是整個Android應用程序的配置文件,在這里對Activity、Intent、Service等組件進行配置,并進行應用程序的權限聲明。
2.2 SSH
JAVA EE是JAVA語言體系中的三大技術平臺之一,用于開發企業級的應用程序。在移動互聯網時代,很多web應用項目的客戶端都同時部署到Android平臺上,并使用JAVA EE搭建服務器端。在JAVA EE的體系結構中,SSH(Struts2、Hibernate和Spring)是一個流行的輕量級框架組合。
3 Android客戶端與服務器端的數據交互
3.1什么是JSON
JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,采用完全獨立于編程語言的文本格式,是目前比較流行的數據交換語言,在網絡數據傳輸中應用非常廣泛。JSON中對象以“{”開始,以“}”結束,對象中的每一個item都是一個鍵值對,表現為“key:value”的形式,鍵值對之間使用逗號分隔。以對象address用JSON格式來表示為例,{“city”:”chaozhou”,”street”:”xiyang road”,”zip”:521000}
JSON相比較XML,更適合處理格式簡單的數據,JSON傳輸數據不需要將數據保存為一個獨立的文件,直接編寫成字符串就可以,并且通常傳輸的數據是有規則的數據,具有一定的結構的,符合JSON數據解析的特點。
3.2解析服務器端返回的JSON數據
從服務器端響應過來的數據是JSON格式的,需要在客戶端進行解析,然后將解析后的內容顯示在智能終端的界面上[2]。Android自帶JSON處理,通過org.json包進行解析,主要有JSONObject類、JSONStringer類和JSONArray類。解析時服務器端返回的字符串作為JSONArray的參數,通過循環,將字符串中的每個對象讀取出來,保存在JSONObject對象中。通過JSONObject對象的getString()方法取得每個鍵值。
3.3 SSH架構的客戶端與服務器端的數據交互
整個WEB應用程序采用MVC的設計模式,M是模型;V是視圖,由Android客戶端的界面來實現;C是控制器,由action來實現。分為表現層、控制層、業務邏輯層和數據訪問層。表現層由Struts2框架實現,業務邏輯層和數據訪問層的組件交給Spring框架來管理,通過Hibernate實現對象關系映射,將數據訪問層對表的操作映射為對對象的操作。
在Struts2框架中,服務器端向客戶端傳送數據,是使用Struts2的JSON數據封裝功能自動將對象封裝并返回JSON數據;而客戶端向服務器端傳送數據,是將JSON轉換成對象。
以查詢所有用戶為例,包括登錄界面main.xml和顯示所有用戶界面showAllUser.xml,分別對應兩個程序來處理:MainActivity.java和ShowAllUserActivity.java,由Activity來處理與服務器端的action進行交互。
登錄界面main.xml,相應的處理程序是MainActivity.java,由MainActivity.java訪問服務器端的login.action,并傳遞了兩個參數username和password,由login.action執行了之后,判斷如果有返回值,并且等于“1”,表示登錄成功,接著跳轉到showAllUserActivity.java程序,在ShowAllUserActivity.java程序控制訪問服務器端的showallUser_Android( ),查詢所有用戶,返回結果all,是List
在struts.xml文件中,設置返回的類型是“json”,則在服務器端將all封裝為JSON數據,在Android客戶端的showAllUserActivity.java程序中取得返回值json數據,按json的格式,讀取出每個對象,顯示在界面上showAllUser.xml。
4總結
本文簡單地介紹移動互聯網中Android客戶端與服務器端的數據交互,通過使用JSON進行數據交互,能夠提高系統的信息傳輸效率。
參考文獻:
[1] 胡文發,白中英.基于J2ME/J2EE的JSON數據交換的探討[J].電子設計工程,2009,17(12):102-103.
[2] 樊紅林.Android平臺與SSH2的通信[J].電腦知識與技術,2015,11(13):35,37.
【通聯編輯:王力】