曹雁 王英
摘要:隨著Android智能手機(jī)的普及,基于Android平臺(tái)的應(yīng)用也越來(lái)越多?;贏ndroid系統(tǒng)的Metoos社區(qū)在線(xiàn)系統(tǒng)旨在開(kāi)發(fā)一個(gè)隨時(shí)隨地進(jìn)行查看社區(qū)商品、增加社區(qū)商品的應(yīng)用系統(tǒng),從而使得用戶(hù)可以查看社區(qū)商品信息、上傳自己的商品信息,以及對(duì)某件商品進(jìn)行評(píng)論?;贏ndroid平臺(tái)的Metoos社區(qū)在線(xiàn)系統(tǒng)的服務(wù)端采用S2SH框架,根據(jù)不同的用戶(hù),使得用戶(hù)可以通過(guò)Android手機(jī)或者平板電腦實(shí)現(xiàn)隨時(shí)獲取社區(qū)服務(wù)。該文詳細(xì)介紹了基于Android平臺(tái)開(kāi)發(fā)的原理,并從設(shè)計(jì)的角度介紹了該系統(tǒng)的系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)過(guò)程。
關(guān)鍵詞:Android;Metoos社區(qū)在線(xiàn);S2SH
中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)14-3272-04
1 概述
隨著智能設(shè)備的普及,傳統(tǒng)的手機(jī)設(shè)備已然被現(xiàn)在新的趨勢(shì)所替代,智能終端設(shè)備已經(jīng)具有電腦上的部分功能,用戶(hù)可以隨時(shí)隨地、隨心所欲的實(shí)現(xiàn)信息交流、溝通平臺(tái),而不僅限于在電腦前,還可以在郊游中、旅途中、任何無(wú)電腦的環(huán)境下隨時(shí)隨地的進(jìn)行溝通;另外用戶(hù)如果想信息分享和好友交流,則可以隨時(shí)進(jìn)行信息交流。Metoos社區(qū)在線(xiàn)專(zhuān)門(mén)提供用戶(hù)在線(xiàn)交流、溝通的平臺(tái),以前的PC端已然不能滿(mǎn)足客戶(hù)的需求,需要與時(shí)俱進(jìn)的進(jìn)行智能終端上的信息交互,在此背景的推進(jìn)下,Metoos智能在線(xiàn)交流終端應(yīng)運(yùn)而生。
2 相關(guān)技術(shù)介紹
2.1 Android平臺(tái)介紹
Android是一種以Linux為基礎(chǔ)的開(kāi)放源碼操作系統(tǒng),Google公司在2007年正式推出了該平臺(tái)后,短短的幾年,該平臺(tái)得到了廣泛的應(yīng)用。從系統(tǒng)結(jié)構(gòu)的角度來(lái)看,Android體系結(jié)構(gòu)如圖1所示,從上到下依次分為:應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運(yùn)行庫(kù)層和Linux內(nèi)核層。
應(yīng)用程序?qū)又饕?fù)責(zé)和用戶(hù)的交互,通過(guò)Java語(yǔ)言編寫(xiě)的獨(dú)立的應(yīng)用程序;
應(yīng)用程序框架層主要提供用于程序開(kāi)發(fā)的API,Android應(yīng)用框架中的各個(gè)模塊都可以被復(fù)用,各種服務(wù)也可以被復(fù)用。程序開(kāi)發(fā)中,常常用到的是:
1) 一組view(UI組件):靈活運(yùn)用這些組件可以創(chuàng)建良好的用戶(hù)交互界面。
2) ContentProvider(內(nèi)容提供者):即提供一種服務(wù),通過(guò)這些服務(wù)應(yīng)用程序之間可以實(shí)現(xiàn)數(shù)據(jù)的共享、互訪。
3) Activity Managerment:主要負(fù)責(zé)應(yīng)用程序的生命周期,并控制著應(yīng)用的導(dǎo)航,扮演著控制器的角色。
4) NotificationManagerment:主要負(fù)責(zé)在不影響用戶(hù)正常操作和使用設(shè)備的時(shí)候,在狀態(tài)欄上提供消息的機(jī)制。
系統(tǒng)運(yùn)行庫(kù)層:系統(tǒng)庫(kù)為應(yīng)用程序框架提供支撐,是連接應(yīng)用程序框架層與 Linux 內(nèi)核層的重要紐帶;運(yùn)行時(shí)Android 應(yīng)用程序采用 Java 語(yǔ)言編寫(xiě),程序在 Android runtime 中執(zhí)行,其運(yùn)行時(shí)分為核心和 Dalvik 虛擬機(jī)兩部分。
Linux內(nèi)核層:Android 是基于 Linux2.6 內(nèi)核,其核心系統(tǒng)服務(wù)如安全性、內(nèi)存管理、進(jìn)程管理、網(wǎng)路協(xié)議以及驅(qū)動(dòng)模型都依賴(lài)于 Linux 內(nèi)核。
2.2 Web應(yīng)用系統(tǒng)架構(gòu)
目前Web應(yīng)用系統(tǒng)廣泛采用MVC的設(shè)計(jì)模式,該模式是目前廣泛流行的軟件設(shè)計(jì)模式。MVC設(shè)計(jì)模式采用三層結(jié)構(gòu),即表示層、業(yè)務(wù)層和數(shù)據(jù)存取層。表示層提供與用戶(hù)交互的界面、收集和顯示數(shù)據(jù);業(yè)務(wù)層提供系統(tǒng)的業(yè)務(wù)和功能代碼;數(shù)據(jù)存取層負(fù)責(zé)完成數(shù)據(jù)庫(kù)操作。這種系統(tǒng)架構(gòu)極大地提高了軟件系統(tǒng)的可擴(kuò)展性和可復(fù)用性,同時(shí)優(yōu)化了模塊之間的耦合,改善了系統(tǒng)的安全性。
2.2.1 Struts框架
struts1和webwork的技術(shù)兩者進(jìn)行合并產(chǎn)生了全新的Struts2框架,Struts2框架主要用于開(kāi)發(fā)Web應(yīng)用程序的表現(xiàn)層,核心就是struts2控制器Filter Dispatcher和action。在開(kāi)發(fā)大型可擴(kuò)展的Web系統(tǒng)時(shí),為了減輕軟件開(kāi)發(fā)過(guò)程中的組件間的控制和調(diào)用工作,以及加快開(kāi)發(fā)進(jìn)度,我們常常使用Struts框架。該文采用Struts2作為表現(xiàn)層框架,其結(jié)構(gòu)如圖2所示。
2.2.2 Spring框架
Spring是以控制反轉(zhuǎn)(IOC)和面向切面(AOP)為基礎(chǔ)的,一種輕量級(jí)的框架。其中,IOC機(jī)制實(shí)現(xiàn)了由Spring框架完成創(chuàng)建被調(diào)用者,然后將被調(diào)用者注入到調(diào)用者,這就是“依賴(lài)注入”;AOP機(jī)制使用切面技術(shù)將非業(yè)務(wù)工作織入到主要業(yè)務(wù)過(guò)程中,實(shí)現(xiàn)了多線(xiàn)程。以控制反轉(zhuǎn)和面向切面為核心的Spring框架可以有效地緩解企業(yè)級(jí)應(yīng)用程序開(kāi)發(fā)的復(fù)雜性。該文采用Spring作為業(yè)務(wù)邏輯層框架,其結(jié)構(gòu)如圖3所示。
2.2.3 Hibernate框架
之前,我們需要訪問(wèn)數(shù)據(jù)庫(kù)時(shí)需要寫(xiě)大量的代碼,那么Hibernate框架是一個(gè)ORM層的框架,封裝了JDBC,通過(guò)編寫(xiě)映射文件完成對(duì)象關(guān)系映射,在業(yè)務(wù)層以面向?qū)ο蟮姆绞竭M(jìn)行編程,不需要考慮數(shù)據(jù)保存形式,可以很好的實(shí)現(xiàn)數(shù)據(jù)的持久化。Hibernate是一個(gè)開(kāi)放源代碼的、輕量級(jí)框架。
本文采用Hibernate作為業(yè)務(wù)邏輯層框架,其結(jié)構(gòu)如圖4所示。
3 Metoos需求分析
通過(guò)與用戶(hù)的溝通和交流后,明確了系統(tǒng)的所需功能。該文綜合分析Metoos的業(yè)務(wù)領(lǐng)域知識(shí),從而詳細(xì)描述軟件功能需求,構(gòu)建軟件需求可行方案,為軟件設(shè)計(jì)工作提供指南和依據(jù)。
1)用戶(hù)登錄和注冊(cè)。管理員使用用戶(hù)名和密碼登錄,用戶(hù)在使用該系統(tǒng)之前需要注冊(cè),登錄系統(tǒng)后方可進(jìn)行相關(guān)的操作。
2)商品管理:用戶(hù)可以通過(guò)該平臺(tái)查看所有商品信息,繼而查看感興趣商品的詳細(xì)信息,添加商品信息,查看其它用戶(hù)對(duì)該商品的評(píng)論。endprint
3)評(píng)論管理:用戶(hù)可以針對(duì)某件商品發(fā)起評(píng)論,還可以查看其它用戶(hù)對(duì)該商品的評(píng)論和詳細(xì)評(píng)論。
4)留言管理:用戶(hù)可以針對(duì)Metoos社區(qū)在線(xiàn)系統(tǒng)的管理員進(jìn)行留言,提供對(duì)該平臺(tái)的一些改進(jìn)建議。
Metoos社區(qū)在線(xiàn)系統(tǒng)的具體功能模塊圖如圖5所示:
4 Metoos社區(qū)在線(xiàn)系統(tǒng)設(shè)計(jì)
4.1 架構(gòu)設(shè)計(jì)
系統(tǒng)采用Android客戶(hù)端請(qǐng)求服務(wù)器的類(lèi)似C/S架構(gòu)實(shí)現(xiàn),服務(wù)器層使用S2SH架構(gòu),分控制層、業(yè)務(wù)邏輯層、數(shù)據(jù)庫(kù)層完成。其中控制層用于與android客戶(hù)端交互;業(yè)務(wù)邏輯層負(fù)責(zé)處理項(xiàng)目業(yè)務(wù)流程;數(shù)據(jù)訪問(wèn)層負(fù)責(zé)操作數(shù)據(jù)庫(kù)。
Android客戶(hù)端和服務(wù)器交互示意圖:
4.1.1 Android客戶(hù)端
Android客戶(hù)端主要負(fù)責(zé)向服務(wù)器端發(fā)送請(qǐng)求和接收來(lái)自服務(wù)器端的響應(yīng)。當(dāng)在客戶(hù)端啟動(dòng)該應(yīng)用程序的時(shí)候,采用多線(xiàn)程機(jī)制,發(fā)送post請(qǐng)求并接收到來(lái)自服務(wù)器端的響應(yīng),該響應(yīng)是以JSON字符串的形式返回的,接著解析該JSON字符串,并將響應(yīng)結(jié)果顯示在屏幕上。
4.1.2 服務(wù)器端
按照S2SH框架搭建服務(wù)器;Hibernate是數(shù)據(jù)存取層,負(fù)責(zé)和數(shù)據(jù)庫(kù)進(jìn)行具體的增刪改查;業(yè)務(wù)邏輯層接收來(lái)自數(shù)據(jù)存取層的數(shù)據(jù),并提交給控制層Struts,由struts將數(shù)據(jù)封裝成JSON字符串發(fā)送給Android客戶(hù)端;spring是統(tǒng)一管理Hibernate和Struts數(shù)據(jù)的。
4.2 構(gòu)建系統(tǒng)領(lǐng)域模型
軟件開(kāi)發(fā)中的領(lǐng)域模型對(duì)應(yīng)現(xiàn)實(shí)世界中的對(duì)象,是對(duì)現(xiàn)實(shí)生活中具體對(duì)象的抽象。只有將具體對(duì)象抽象成領(lǐng)域模型,并理清其關(guān)系,才可順利地進(jìn)行系統(tǒng)開(kāi)發(fā),所以,構(gòu)建系統(tǒng)領(lǐng)域模型至關(guān)重要。根據(jù)Metoos社區(qū)在線(xiàn)系統(tǒng)的需求以及功能,我們抽象出了該系統(tǒng)的領(lǐng)域模型,如圖8所示:
6 總結(jié)與展望
文章詳細(xì)闡述了基于Android平臺(tái)的“Metoos社區(qū)在線(xiàn)”的設(shè)計(jì)原則與實(shí)現(xiàn)的方法。通過(guò)與客戶(hù)的交流和溝通,形成了詳細(xì)的需求文檔,進(jìn)一步分析了系統(tǒng)的功能模塊,構(gòu)建系統(tǒng)領(lǐng)域模型。
通過(guò)總結(jié)本系統(tǒng)的開(kāi)發(fā)與研究工作,Metoos社區(qū)在線(xiàn)系統(tǒng)還需進(jìn)一步研究:如何具體實(shí)現(xiàn)使用Metoos社區(qū)在線(xiàn)系統(tǒng)進(jìn)行交友和在線(xiàn)購(gòu)買(mǎi)商品。
參考文獻(xiàn):
[1] 李紹平,彭志平.一種web應(yīng)用框架及其實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2009(8).
[2] 李培林.安卓系統(tǒng)的應(yīng)用及發(fā)展趨勢(shì)展望[J].計(jì)算機(jī)光盤(pán)軟件與應(yīng)用, 2012(12).endprint
3)評(píng)論管理:用戶(hù)可以針對(duì)某件商品發(fā)起評(píng)論,還可以查看其它用戶(hù)對(duì)該商品的評(píng)論和詳細(xì)評(píng)論。
4)留言管理:用戶(hù)可以針對(duì)Metoos社區(qū)在線(xiàn)系統(tǒng)的管理員進(jìn)行留言,提供對(duì)該平臺(tái)的一些改進(jìn)建議。
Metoos社區(qū)在線(xiàn)系統(tǒng)的具體功能模塊圖如圖5所示:
4 Metoos社區(qū)在線(xiàn)系統(tǒng)設(shè)計(jì)
4.1 架構(gòu)設(shè)計(jì)
系統(tǒng)采用Android客戶(hù)端請(qǐng)求服務(wù)器的類(lèi)似C/S架構(gòu)實(shí)現(xiàn),服務(wù)器層使用S2SH架構(gòu),分控制層、業(yè)務(wù)邏輯層、數(shù)據(jù)庫(kù)層完成。其中控制層用于與android客戶(hù)端交互;業(yè)務(wù)邏輯層負(fù)責(zé)處理項(xiàng)目業(yè)務(wù)流程;數(shù)據(jù)訪問(wèn)層負(fù)責(zé)操作數(shù)據(jù)庫(kù)。
Android客戶(hù)端和服務(wù)器交互示意圖:
4.1.1 Android客戶(hù)端
Android客戶(hù)端主要負(fù)責(zé)向服務(wù)器端發(fā)送請(qǐng)求和接收來(lái)自服務(wù)器端的響應(yīng)。當(dāng)在客戶(hù)端啟動(dòng)該應(yīng)用程序的時(shí)候,采用多線(xiàn)程機(jī)制,發(fā)送post請(qǐng)求并接收到來(lái)自服務(wù)器端的響應(yīng),該響應(yīng)是以JSON字符串的形式返回的,接著解析該JSON字符串,并將響應(yīng)結(jié)果顯示在屏幕上。
4.1.2 服務(wù)器端
按照S2SH框架搭建服務(wù)器;Hibernate是數(shù)據(jù)存取層,負(fù)責(zé)和數(shù)據(jù)庫(kù)進(jìn)行具體的增刪改查;業(yè)務(wù)邏輯層接收來(lái)自數(shù)據(jù)存取層的數(shù)據(jù),并提交給控制層Struts,由struts將數(shù)據(jù)封裝成JSON字符串發(fā)送給Android客戶(hù)端;spring是統(tǒng)一管理Hibernate和Struts數(shù)據(jù)的。
4.2 構(gòu)建系統(tǒng)領(lǐng)域模型
軟件開(kāi)發(fā)中的領(lǐng)域模型對(duì)應(yīng)現(xiàn)實(shí)世界中的對(duì)象,是對(duì)現(xiàn)實(shí)生活中具體對(duì)象的抽象。只有將具體對(duì)象抽象成領(lǐng)域模型,并理清其關(guān)系,才可順利地進(jìn)行系統(tǒng)開(kāi)發(fā),所以,構(gòu)建系統(tǒng)領(lǐng)域模型至關(guān)重要。根據(jù)Metoos社區(qū)在線(xiàn)系統(tǒng)的需求以及功能,我們抽象出了該系統(tǒng)的領(lǐng)域模型,如圖8所示:
6 總結(jié)與展望
文章詳細(xì)闡述了基于Android平臺(tái)的“Metoos社區(qū)在線(xiàn)”的設(shè)計(jì)原則與實(shí)現(xiàn)的方法。通過(guò)與客戶(hù)的交流和溝通,形成了詳細(xì)的需求文檔,進(jìn)一步分析了系統(tǒng)的功能模塊,構(gòu)建系統(tǒng)領(lǐng)域模型。
通過(guò)總結(jié)本系統(tǒng)的開(kāi)發(fā)與研究工作,Metoos社區(qū)在線(xiàn)系統(tǒng)還需進(jìn)一步研究:如何具體實(shí)現(xiàn)使用Metoos社區(qū)在線(xiàn)系統(tǒng)進(jìn)行交友和在線(xiàn)購(gòu)買(mǎi)商品。
參考文獻(xiàn):
[1] 李紹平,彭志平.一種web應(yīng)用框架及其實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2009(8).
[2] 李培林.安卓系統(tǒng)的應(yīng)用及發(fā)展趨勢(shì)展望[J].計(jì)算機(jī)光盤(pán)軟件與應(yīng)用, 2012(12).endprint
3)評(píng)論管理:用戶(hù)可以針對(duì)某件商品發(fā)起評(píng)論,還可以查看其它用戶(hù)對(duì)該商品的評(píng)論和詳細(xì)評(píng)論。
4)留言管理:用戶(hù)可以針對(duì)Metoos社區(qū)在線(xiàn)系統(tǒng)的管理員進(jìn)行留言,提供對(duì)該平臺(tái)的一些改進(jìn)建議。
Metoos社區(qū)在線(xiàn)系統(tǒng)的具體功能模塊圖如圖5所示:
4 Metoos社區(qū)在線(xiàn)系統(tǒng)設(shè)計(jì)
4.1 架構(gòu)設(shè)計(jì)
系統(tǒng)采用Android客戶(hù)端請(qǐng)求服務(wù)器的類(lèi)似C/S架構(gòu)實(shí)現(xiàn),服務(wù)器層使用S2SH架構(gòu),分控制層、業(yè)務(wù)邏輯層、數(shù)據(jù)庫(kù)層完成。其中控制層用于與android客戶(hù)端交互;業(yè)務(wù)邏輯層負(fù)責(zé)處理項(xiàng)目業(yè)務(wù)流程;數(shù)據(jù)訪問(wèn)層負(fù)責(zé)操作數(shù)據(jù)庫(kù)。
Android客戶(hù)端和服務(wù)器交互示意圖:
4.1.1 Android客戶(hù)端
Android客戶(hù)端主要負(fù)責(zé)向服務(wù)器端發(fā)送請(qǐng)求和接收來(lái)自服務(wù)器端的響應(yīng)。當(dāng)在客戶(hù)端啟動(dòng)該應(yīng)用程序的時(shí)候,采用多線(xiàn)程機(jī)制,發(fā)送post請(qǐng)求并接收到來(lái)自服務(wù)器端的響應(yīng),該響應(yīng)是以JSON字符串的形式返回的,接著解析該JSON字符串,并將響應(yīng)結(jié)果顯示在屏幕上。
4.1.2 服務(wù)器端
按照S2SH框架搭建服務(wù)器;Hibernate是數(shù)據(jù)存取層,負(fù)責(zé)和數(shù)據(jù)庫(kù)進(jìn)行具體的增刪改查;業(yè)務(wù)邏輯層接收來(lái)自數(shù)據(jù)存取層的數(shù)據(jù),并提交給控制層Struts,由struts將數(shù)據(jù)封裝成JSON字符串發(fā)送給Android客戶(hù)端;spring是統(tǒng)一管理Hibernate和Struts數(shù)據(jù)的。
4.2 構(gòu)建系統(tǒng)領(lǐng)域模型
軟件開(kāi)發(fā)中的領(lǐng)域模型對(duì)應(yīng)現(xiàn)實(shí)世界中的對(duì)象,是對(duì)現(xiàn)實(shí)生活中具體對(duì)象的抽象。只有將具體對(duì)象抽象成領(lǐng)域模型,并理清其關(guān)系,才可順利地進(jìn)行系統(tǒng)開(kāi)發(fā),所以,構(gòu)建系統(tǒng)領(lǐng)域模型至關(guān)重要。根據(jù)Metoos社區(qū)在線(xiàn)系統(tǒng)的需求以及功能,我們抽象出了該系統(tǒng)的領(lǐng)域模型,如圖8所示:
6 總結(jié)與展望
文章詳細(xì)闡述了基于Android平臺(tái)的“Metoos社區(qū)在線(xiàn)”的設(shè)計(jì)原則與實(shí)現(xiàn)的方法。通過(guò)與客戶(hù)的交流和溝通,形成了詳細(xì)的需求文檔,進(jìn)一步分析了系統(tǒng)的功能模塊,構(gòu)建系統(tǒng)領(lǐng)域模型。
通過(guò)總結(jié)本系統(tǒng)的開(kāi)發(fā)與研究工作,Metoos社區(qū)在線(xiàn)系統(tǒng)還需進(jìn)一步研究:如何具體實(shí)現(xiàn)使用Metoos社區(qū)在線(xiàn)系統(tǒng)進(jìn)行交友和在線(xiàn)購(gòu)買(mǎi)商品。
參考文獻(xiàn):
[1] 李紹平,彭志平.一種web應(yīng)用框架及其實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2009(8).
[2] 李培林.安卓系統(tǒng)的應(yīng)用及發(fā)展趨勢(shì)展望[J].計(jì)算機(jī)光盤(pán)軟件與應(yīng)用, 2012(12).endprint