劉萍
摘 要:隨著移動互聯(lián)網(wǎng)的飛速發(fā)展,以及Android系統(tǒng)的智能手機(jī)在大學(xué)生中的普及,為了豐富大學(xué)生活,設(shè)計并實現(xiàn)了基于Android的校園服務(wù)平臺。按照軟件開發(fā)流程,對該平臺進(jìn)行需求分析、功能模塊設(shè)計、數(shù)據(jù)庫設(shè)計,最終編碼實現(xiàn),給出了實現(xiàn)過程中的系統(tǒng)架構(gòu)和關(guān)鍵技術(shù),以及Android客戶端和基于SSH框架的服務(wù)器端的運行效果。
關(guān)鍵詞:Android;校園服務(wù)平臺;SSH框架
中圖分類號:TP391 文獻(xiàn)標(biāo)識碼:A
Abstract:With the rapid development of mobile internet,popularization and the android system of smart phones in college students,in order to enrich university life,the design and implementation of campus service platform based on the android.According to the software development process,the demand analysis,the platform function module design,database design,code realization are given.Finally,the implementation process of the system architecture and the key technology and the android client and SSH server running effect are given.
Keywords:android;campus service platform;SSH framework
1 引言(Introduction)
隨著智能手機(jī)在高校的普及以及3G/4G/無線網(wǎng)絡(luò)的覆蓋,學(xué)生更多地希望通過移動終端,充分利用碎片化的時間隨時、隨地獲取信息[1]。目前基于Android平臺的手機(jī)在大學(xué)生中的普及率達(dá)到80%以上,為了豐富大學(xué)生在校生活,使得學(xué)生隨時隨地獲取信息,本文設(shè)計并實現(xiàn)了基于Android平臺的校園服務(wù)平臺,通過該平臺的使用,可以促進(jìn)在全校范圍內(nèi)廣泛開展更多有意義的活動,并給學(xué)生的生活帶來便利。
2 需求分析與功能模塊設(shè)計(The demand analysis and function modules design)
為了使大學(xué)生可以利用碎片化的時間加強(qiáng)溝通交流,學(xué)生們在手機(jī)上安裝校園服務(wù)平臺的客戶端就可以進(jìn)行點餐、二手交易、論壇發(fā)帖、活動發(fā)布等。該平臺分為兩大塊,第一大塊是后臺管理,這塊的使用者是系統(tǒng)管理員,登錄以后可以進(jìn)行系統(tǒng)角色管理、帖子分類管理、活動分類管理、商品分類管理、用戶管理、店鋪管理、商品管理、帖子管理、交易管理、活動管理等操作。
第二大塊是基于Android客戶端的開發(fā),該塊是提供給用戶進(jìn)行操作的,用戶在Android端可以進(jìn)行點餐,二手物品的交易,論壇的發(fā)帖和回復(fù),以及活動的發(fā)布,而商家則可以在Android端進(jìn)行訂單的處理,讓用戶及時了解自己所訂餐的狀態(tài)。
3 數(shù)據(jù)庫設(shè)計(Database design)
根據(jù)系統(tǒng)的需求分析以及功能模塊設(shè)計,我們完成了校園服務(wù)平臺的數(shù)據(jù)庫設(shè)計,共設(shè)計了以下14張表:活動信息表、活動分類信息表、管理員信息表、商品信息表、商品分類表、權(quán)限信息表、訂購信息表、訂單信息表、帖子信息表、帖子分類信息表、回復(fù)信息表、店鋪信息表、交易信息表、用戶信息表。
4 平臺設(shè)計與實現(xiàn)(Design and implementation of platform)
本項目客戶端基于Android平臺開發(fā),采用主流的Android SDK API-19(Android 4.3版本)進(jìn)行開發(fā)[2]。
服務(wù)器端本著最高限度降低程序模塊之間的耦合性,便于將來的維護(hù),采用JavaEE企業(yè)級應(yīng)用開發(fā)框架SSH(Struts+Spring+Hibernate)進(jìn)行開發(fā)[3]。整個平臺的系統(tǒng)架構(gòu)如圖1所示。
4.1 關(guān)鍵技術(shù)
實現(xiàn)校園服務(wù)平臺的過程中,主要使用以下技術(shù):
(1)Android端網(wǎng)絡(luò)請求及數(shù)據(jù)綁定:Android 3.0之后,所有網(wǎng)絡(luò)請求獲取數(shù)據(jù)等一系列的耗時操作不允許在主線程中進(jìn)行。我們要將所有的網(wǎng)絡(luò)操作轉(zhuǎn)移到子線程中進(jìn)行,但在子線程中是不允許對主線程中創(chuàng)建的組件進(jìn)行相關(guān)操作的。因此在處理網(wǎng)絡(luò)請求時,創(chuàng)建線程,并在請求完成之后,通過消息隊列的方式將數(shù)據(jù)傳遞給主線程,再由主線程將數(shù)據(jù)綁定到相應(yīng)的控件上。
(2)遠(yuǎn)程獲取數(shù)據(jù)對象:Android和Web服務(wù)器端交互使用Apache Tomcat服務(wù)器進(jìn)行,借助Wifi,將Android手機(jī)的網(wǎng)絡(luò)IP和服務(wù)器的IP設(shè)置在同一網(wǎng)段,通過HTTP協(xié)議,客戶端通過發(fā)送網(wǎng)絡(luò)請求進(jìn)行數(shù)據(jù)的獲取,服務(wù)器端則將客戶端請求的數(shù)據(jù)以數(shù)據(jù)流的形式遠(yuǎn)程發(fā)送到手機(jī)App端。在服務(wù)器與客戶端進(jìn)行交互的過程中,如何實現(xiàn)將對象信息轉(zhuǎn)換成數(shù)據(jù)流傳遞是一個非常關(guān)鍵的問題。當(dāng)前對象的遠(yuǎn)程發(fā)送較為流行且高效的是根據(jù)對象的設(shè)計將對象信息序列化為JSON對象進(jìn)行傳輸,為了在發(fā)送數(shù)據(jù)和接收數(shù)據(jù)時對相關(guān)數(shù)據(jù)進(jìn)行轉(zhuǎn)化,我們采用了Google官方提供的Gson工具包進(jìn)行對象的序列化和反序列化。
(3)數(shù)據(jù)持久化:當(dāng)前,B/S架構(gòu)的軟件無一不牽扯到數(shù)據(jù)存儲的問題,即數(shù)據(jù)持久化。在系統(tǒng)的數(shù)據(jù)庫設(shè)計中,數(shù)據(jù)表之間的外鍵關(guān)系出現(xiàn)頻率相當(dāng)高,這就給數(shù)據(jù)封裝對象的設(shè)計帶來了一定的難度。我們使用Hibernate框架中的ORM(對象關(guān)系映射)特性,將數(shù)據(jù)封裝成的對象和數(shù)據(jù)表進(jìn)行一一對應(yīng),并使用其特有的HQL(Hibernate Query Language)進(jìn)行數(shù)據(jù)的查詢和寫入工作。
(4)業(yè)務(wù)邏輯處理及數(shù)據(jù)綁定:使用Struts2框架,通過對網(wǎng)絡(luò)請求的攔截進(jìn)行相應(yīng)的業(yè)務(wù)處理。在Action中調(diào)用DAO(Data Access Object,數(shù)據(jù)訪問對象)獲取相應(yīng)數(shù)據(jù),經(jīng)邏輯處理后,通過Struts的自動傳值特性將處理后的數(shù)據(jù)放到相應(yīng)的對象中,JSP頁面使用JSTL標(biāo)準(zhǔn)標(biāo)簽庫中的邏輯標(biāo)簽和EL表達(dá)式進(jìn)行頁面數(shù)據(jù)的綁定輸出。
(5)服務(wù)器端系統(tǒng)的整合:同時使用Hibernate和Struts框架會產(chǎn)生大量的對象創(chuàng)建操作,如果對象的管理不當(dāng),很容易造成內(nèi)存溢出現(xiàn)象,而且DAO層和業(yè)務(wù)邏輯層之間的耦合性較大,針對這一現(xiàn)象,使用Spring框架對整個服務(wù)器端的系統(tǒng)進(jìn)行整合,利用Spring的IOC(Inversion of Control,控制反轉(zhuǎn))特性,將所有需用到的對象托管到Spring中進(jìn)行管理,需要使用對象時,直接從對應(yīng)的對象池中獲取需要的對象進(jìn)行使用。這樣對于對象內(nèi)存的使用進(jìn)行了優(yōu)化。而且Spring的AOP(Aspect Oriented Programming,面向切面編程)也為之后對系統(tǒng)的維護(hù)做了準(zhǔn)備。
4.2 實現(xiàn)效果
本軟件Android客戶端包含四大模塊:快捷點餐模塊、二手交易模塊、校園論壇模塊、活動發(fā)布模塊。Android客戶端實現(xiàn)效果如圖2所示?;赟SH框架開發(fā)的服務(wù)器端實現(xiàn)效果如圖3所示。
5 結(jié)論(Conclusion)
本文對基于Android的校園服務(wù)平臺,進(jìn)行了需求分析和功能模塊設(shè)計,并設(shè)計了該平臺的數(shù)據(jù)庫,在設(shè)計并實現(xiàn)該平臺的過程中給出了系統(tǒng)的架構(gòu)圖,闡述了實現(xiàn)該平臺過程中的若干關(guān)鍵技術(shù),最終給出了校園服務(wù)平臺的客戶端和服務(wù)器端的運行效果,該系統(tǒng)通過在某職業(yè)技術(shù)學(xué)院試運行,效果良好,該平臺唯一的不足是二手交易模塊不能在線支付,只能線下交易,后期會進(jìn)一步改進(jìn)。
參考文獻(xiàn)(References)
[1] 茅志剛.基于移動互聯(lián)網(wǎng)的智慧校園服務(wù)平臺的研究與實現(xiàn)[D].杭州:杭州電子科技大學(xué)碩士學(xué)位論文,2013.
[2] 董濤.基于Android的移動校園客戶端設(shè)計與實現(xiàn)[D].西安:西安電子科技大學(xué)碩士學(xué)位論文,2014.
[3] 李寧寧,王遠(yuǎn)飛,張冉.基于Android的校園應(yīng)用軟件開發(fā)與實現(xiàn)[J].電子設(shè)計工程,2014,22(20):111-117.
作者簡介:
劉 萍(1982-),女,碩士,講師.研究領(lǐng)域:軟件工程,系統(tǒng)集成.