王 寧,高 光,劉會會
(1.周口師范學院計算機科學與技術學院,河南周口466001;2.周口師范學院網絡工程學院,河南周口466001)
基于Android平臺的社團服務應用研究與實現
王 寧1,高 光2,劉會會1
(1.周口師范學院計算機科學與技術學院,河南周口466001;2.周口師范學院網絡工程學院,河南周口466001)
在移動互聯網浪潮下,Android智能手機已經成為高校師生的日常通訊工具.基于Android平臺的高校社團服務應用不但可增強學生的參與度與互動性,提高社團管理的效率,而且可為管理層的決策提供數據支持.為此,提出了一種通用原生Android應用開發框架模型,并在此基礎上完成了高校社團服務應用主要功能模塊的設計與實現.測試結果表明,該應用運行效果良好,整體上具有較好的性能和內存優化功能.
Android;移動互聯網;社團服務;應用開發
隨著基于Android平臺的智能移動設備的普及,人們的日常生活正在發生全方位的變化.特別由于其強大的網絡通信與接入功能、靈活的可升級能力以及便捷的可操作性,相應的應用領域也越來越寬廣,尤其在高校中,使用比例日益增高.社團是高校校園文化的重要載體,是高校第二課堂的重要組成部分,師生的參與度非常高.研究并實現基于Android平臺的社團應用,有助于學生了解社團文化、參加社團活動、管理社團信息,也便于管理員進行社團活動的統一管理,提高社團辦事效率.此外,其所具備的數據統計、數據挖掘、數據分析等功能也對管理層的決策分析有一定的輔助作用.
1.1 Android系統架構
筆者闡述的應用開發建立在Android系統平臺之上,Android系統包括了Linux內核層、系統運行庫層、應用程序框架層和應用程序層,其中Linux內核層是硬件與軟件之間的抽象層,主要用于驅動管理、內存管理、進程管理、網絡管理等;系統運行庫層包括類庫和Android運行時組件兩個部分;應用程序框架層專門為應用程序開發而設計,允許開發人員訪問核心應用程序所使用的API框架;應用程序層是Android系統自帶的一系列使用Java語言編寫的核心應用程序[1].Android系統架構如圖1所示.

圖1 Android系統架構圖
1.2 相關工作
由上述分析得出Android應用開發是建立在應用程序框架層的基礎之上,開發者通過應用開發框架提供的組件進行上層應用開發并與底層進行功能交互.以下介紹在此框架上設計實現的幾個重要基礎類.
1.2.1 BaseActivity
BaseActivity類是對基礎組件Activity類的封裝,它本質上繼承自Activity類,具備基本的監聽并處理用戶交互事件、對UI界面的管理等功能,進一步擴展了Activity類的功能,加入了事件總線、偵聽觸發等機制,通過派生個性化的BaseActivity子類可以實現不同功能需求,多個BaseActivity子類之間通過堆棧結構進行管理,充分體現了面向對象的設計原則[2].
1.2.2 MyApplication
MyApplication類是對基礎組件Application類的封裝,MyApplication類采用單例模式提供了一個全局唯一的應用類實例,開發者可以在其中重載多個重要的系統函數(如OnCreate(),onTerminate()等)來實現自身程序的特殊需求,并且可以將全局變量定義在該類內部以便在應用程序中調用.
1.2.3 NetManager
NetManager類是自定義的網絡管理類,通過該類可對基礎組件NetHandler進行統一管理,網絡消息是以獨立線程的方式進行處理,根據與服務器端協商定義的網絡協議派生出不同的NetH-andler子類,在NetManager類中對這些子類進行同一管理并完成與主線程之間的異步通信,簡化了原始組件中數據處理的復雜性,降低了系統耦合度.
1.2.4 EventManager
EventManager類是自定義的事件管理類,在應用程序開發框架中各個模塊之間的通信是高頻事件,Android系統原始的通信機制較為復雜且耦合度較高,用戶自定義數據更不易處理.通過EventManager類提供的事件傳遞接口,開發者可自定義任意數據類型的事件用以不同應用模塊之間的通信,也適用于多線程間的數據通信.
1.2.5 DataManager
DataManager類是自定義的數據管理類,負責對抽象的數據實體類進行統一的管理和緩存操作,將對外接口封裝為統一函數方便調用,提高了數據存取速度和管理效率.
1.2.6 Utils
Utils類是自定義的工具類,采用單例模式實現,將系統中的常用功能(如字符串解析、時間日期轉換、正則匹配等)封裝為全局的靜態函數以便在應用模塊中調用完成輔助功能[3].
2.1 開發環境
相對于傳統的Eclipse開發環境,Android-Studio開發環境具有以下優點:
1.AndroidStudio屬于Google為Android量身定做的IDE,未來還將不斷優化完善.
2.最新版本的AndroidStudio響應速度更快,運行更為穩定.
3.強大的UI編輯器,擺脫了在Eclipse環境下進行UI編輯的局限性,具有所見即所得的功能.
4.智能提示和補全等功能可極大地提高開發效率.
5.整合了Gradle構建工具,可更有效地對程序進行配置、編譯與打包.
6.更完善的插件系統和版本控制系統.
2.2 基礎模塊封裝
對于上層應用開發者來說,雖然Android系統的應用程序框架層提供了多種開發組件,但是如果要快速開發一個具有良好擴展性與可維護性的應用項目,仍然需要對許多復雜的功能進行二次封裝,否則將不能專注于應用框架設計的本身[4].
在筆者闡述的通用開發框架中,基礎模塊與關鍵功能性模塊被封裝為類庫,對外統一提供開放性接口,進而可方便開發者在此基礎上做二次應用開發.這些模塊主要包括以下幾類:
1.注解模塊:提供了UI組件與Activity之間的交互通道(包括UI組件注冊和UI事件響應等).
2.網絡模塊:提供精簡而統一的網絡通信接口(包括回調處理方式)以減少網絡通信開發的工作量.
3.圖片加載模塊:提供統一的圖片緩存及加載接口,以方便本地與遠程圖片的加載管理.
4.數據庫模塊:提供對本地數據庫的統一處理接口以減少繁瑣的原始操作編程.
2.3 MVC框架
對于應用開發框架而言,良好的可擴展性和低耦合度是開發高質量應用的根基.在筆者闡述的應用開發架構中,MVC是業務邏輯、數據緩存以及視圖界面之間交互的橋梁,其結構如圖2所示.

圖2 通用框架MVC結構圖
下面著重介紹其中三個模型的作用與設計原理.
1.Controller控制器:在數據層與視圖層之間通過事件通知機制進行交互,具有橋梁作用.其本身建立在Android基礎組件Activity之上,主要處理關鍵的業務邏輯和交互功能.
2.Model數據模型:主要通過Entity類做數據模型抽象,Dal作為數據接口層的作用是進行數據緩存以及對外提供統一的數據訪問接口.
3.View視圖層:在基礎模塊封裝中通過注解方式與Activity組件進行交互,包括視圖元素訪問和視圖交互事件響應.
此外,為了提高框架的整體功能與可擴展性,在上述三大模塊基礎上設計以下輔助模塊:Net-Manager(網絡管理器,用于統一管理網絡通信協議類庫);Utils(工具類庫,用于實現字符串匹配解析、文件處理、字體管理等功能);Controls(控件類庫,用于通用可移植View控件管理);EventManager(事件管理器,用于事件驅動交互管理).
整體上,通用Android應用開發框架具有系統耦合度較低、系統擴展性較好、可移植性強且易于維護的優點,特別適于具有一定規模的多人協作項目的開發[5].
3.1 數據流抽象
對數據流的統一抽象能保證前后端開發的一致性,而提高開發效率,則應做到數據庫、服務器數據模型、通信協議數據模型以及客戶端數據模型統一化,以便于進行網絡數據轉換和對象關系映射[6].根據對社團活動的需求分析與數據抽象化處理的面向對象設計思想,其抽象數據類如圖3所示.
3.2 通信協議
根據需求分析,社團移動應用中不存在實時性極高的通信需求,因而宜選擇基于http協議的短鏈接通信方式[7].在處理通信協議的編程方式中,則應采用面向對象思想,將每個獨立的通信協議處理器抽象為NetHandler子類對象,由網絡管理器NetManager統一管理,并與業務邏輯主線程之間通過事件消息機制進行數據交互.相應的網絡通信協議類如圖4所示.
3.3 業務邏輯
業務邏輯模塊是社團應用的功能主體部分,主要包括首頁、社團主體、活動主體、公告、個人和管理員等模塊,其中每個模塊又包括若干子模塊,具體列舉分析如下.
1.首頁模塊主要負責用戶的初始引導功能,包括以下幾個子模塊:
(1)滾動歡迎視圖邏輯:用戶首次打開應用時在客戶端調用優化用戶體驗.
(2)用戶注冊邏輯:用戶首次使用應用時需注冊個人信息到服務器端.
(3)用戶登錄邏輯:用戶進入應用時需提交個人信息到服務器端驗證身份登錄.

圖3 抽象數據類圖

圖4 網絡通信協議類圖
2.社團主體模塊用于實現社團各項主要功能,包括以下幾個子模塊:
(1)社團主頁邏輯:所有創建成功的社團信息以列表形式顯示,并以置頂方式顯示推廣中的熱門社團,界面如圖5所示.
(2)社團詳情邏輯:點擊指定的社團信息可進入社團詳情(包括社團Logo、社團標簽、社團成員信息、社團相冊、社團簡介和社團公告等).
(3)社團管理邏輯:社長可以進行社團基本信息的修改、圖片的上傳或刪除、社團成員信息的查看、加入或退出社團請求的審批、社團公告的發布等操作.
(4)社團應用邏輯:社員可以查看社團基本信息與社團成員信息,并發送退出社團請求;普通用戶僅具有查看社團基本信息與發送加入社團請求的權限.
3.活動主體模塊用于實現活動各項主要功能,包括以下幾個子模塊:
(1)活動主頁邏輯:所有社團相關的活動信息以列表形式顯示,并以置頂方式顯示推廣中的熱門活動.
(2)活動詳情邏輯:點擊指定的活動信息可進入活動詳情(包括活動Logo、活動標簽、活動成員信息、活動相冊、活動宣傳公告等).
(3)活動管理邏輯:活動所屬社團的管理員可以進行活動信息的發布、活動基本信息的修改、活動圖片的發布、活動成員信息的查看、加入或退出活動請求的審批、社團公告的發布等操作.
(4)活動應用邏輯:用戶可以查看活動基本信息與成員信息,并可發送加入或退出活動請求.
(5)公告模塊:實現服務器公告功能,由社聯管理員統一編輯發布,將重要信息通知到所有用戶.
(6)個人信息模塊:實現用戶個人資料管理功能,用戶可編輯個人信息并保存到服務器端,界面如圖6所示.
(7)管理員模塊:提供給社團聯合會的后臺管理員使用的功能.在該模塊中管理員可以審批所有的創建社團申請,開展社團活動申請,審核成員信息,維護社團數據.

圖5 社團主界面圖

圖6 用戶信息界面圖
3.4 數據統計與分析
社團成員包括絕大部分高校師生,服務器端數據存儲量較大,在處理數據的過程中應采用多節點數據存儲方式將不同類型數據分類存儲[8];此外,在中間層應通過ORM模型與Cache層作為橋接模塊,同時采用分布式服務器方式將邏輯服務器與數據分析服務器分離[9].數據統計及分析模塊有以下功能.
1.數據統計:統計當前所有用戶、社團、活動的基本數據信息;統計每一個社團的訪問率與社團服務的利用率;統計社團活動舉辦頻率與社團活動參與度;統計用戶加入或退出社團活動的信息等.
2.數據分析:根據數據統計結果,通過管理層數據分析需求模型,實時分析社團熱度、活動效果、用戶活躍度、用戶喜好、營銷推廣效果等項,并通過量化做出衡量指標.
3.數據決策:根據數據分析結果,為管理層決策做輔助智能支撐,決策人員可以在此基礎上進行二次分析以做出最優決策.
根據軟件工程測試流程對開發完成的應用系統進行測試,具體測試流程如下.
1.功能模塊測試:根據邏輯劃分編寫測試用例,按照用戶使用流程著重針對網絡數據傳輸速度、資源文件異步加載、UI組件刷新過程、功能邏輯正確性、并發壓力等部分進行黑盒和白盒測試[].
2.Android性能測試:使用第三方Android測試工具對社團應用進行性能測試,內存測試和CPU測試結果如圖7和圖8所示.

圖7 內存測試結果圖

圖8 CPU測試結果圖
測試結果表明,該應用運行穩定,通信響應及時,并能正確完成邏輯功能,具有較好的性能和內存優化效果,達到上線發布標準.
筆者提出了一種基于Android平臺的通用應用開發框架,闡述了相關應用開發的基本設計思想和技術手段;并在此基礎上設計并實現了具有功能完善、性能優良的校園社團管理應用.整體上,該框架具有較好的應用性、穩定性和擴展性,適合基于Android平臺的中小型項目研發,具有較好的應用前景.
[1]彭鳳凌,王洪輝.Android手機與內網PC通信系統的設計與現實[J].計算機工程與設計,2013,34(7):2333-2337.
[2]楊炳保.基于Android的移動云計算技術的研究[J].計算機技術與發展,2013,23(8):52-54.
[3]張長青,晏西國,卜慶凱.基于移動互聯網的APP與服務器之間的通信設計[J].青島大學學報,2015,30(2):5.
[4]蔡菁.基于Android平臺的數據同步技術的研究與實現[D].重慶:重慶郵電大學,2011.
[5]王哲敏.移動互聯網背景手機服務型APP產品設計分析[J].工業設計,2015(08):65.
[6]李琛.移動互聯網時代購物APP交互界面設計研究[D].開封:河南大學,2014.
[7]杜吉志,徐明昆.Android系統內存管理研究及優化[J].軟件,2012,24(5):69-80.
[8]馬越.Android的架構與應用[D].北京:中國地質大學,2008:330-357.
[9]姚昱旻,劉衛國.Android的架構與應用開發研究[J].計算機系統應用,2008,77(11):99-111.
[10]高巍.Android操作系統軟件自動化測試方案的設計與實施[D].北京:北京郵電大學,2012:440-479.
TP311.1
A
1671-9476(2017)02-0127-04
10.13450/j.cnkij.zknu.2017.02.032
2016-11-01;
2016-12-12
周口師范學院青年基金重點項目(No.zknuB3201601);周口師范學院青年基金重點項目(No.zknuB315204)
王寧(1982-),男,河南周口人,助教,碩士,研究方向為移動計算、圖形學與可視化計算.