摘 要:隨著3G網(wǎng)絡(luò)的商用和智能手機(jī)的普及,移動(dòng)辦公也開(kāi)始發(fā)展起來(lái)。該學(xué)校有多個(gè)校區(qū),職工辦公只有一臺(tái)電腦固定在某一校區(qū),這樣跨校區(qū)上課的職工上OA系統(tǒng)就十分不便。為此,該文提出移動(dòng)辦公的解決方案,通過(guò)開(kāi)發(fā)移動(dòng)版本的辦公系統(tǒng)來(lái)解決老師上WEB版OA不方便的實(shí)際問(wèn)題。
關(guān)鍵詞:Android 移動(dòng)信息化 XML 3G 職業(yè)教育
中圖分類號(hào):TP3文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1674-098X(2013)05(a)-0152-02
1 移動(dòng)開(kāi)發(fā)相關(guān)技術(shù)與原理
1.1 技術(shù)路線
移動(dòng)應(yīng)用雖然越來(lái)越流行,但手機(jī)系統(tǒng)多樣性給移動(dòng)開(kāi)發(fā)帶來(lái)了很大不便。據(jù)調(diào)查統(tǒng)計(jì),在校師生使用Android系統(tǒng)的手機(jī)占了絕大多數(shù)。針對(duì)這種情況,決定選用Android平臺(tái)開(kāi)發(fā),開(kāi)發(fā)工具使用Eclipse。
1.2 Android體系結(jié)構(gòu)、界面設(shè)計(jì)與數(shù)據(jù)交換
Android系統(tǒng)從底向上一共分四層,每一層都把底層實(shí)現(xiàn)封裝,并提供接口給上一層調(diào)用。在界面設(shè)計(jì)方面,Android與Web實(shí)現(xiàn)的方式有很大的不同,難度也比Web的要大。下面簡(jiǎn)單介紹一下Android的用戶界面。[1]
關(guān)鍵類:在一個(gè)Android應(yīng)用中,用戶界面是由View和ViewGroup對(duì)象構(gòu)建的。View對(duì)象是Android平臺(tái)中用戶界面表現(xiàn)的基礎(chǔ)單位。ViewGroup類同樣為其被稱為“Layouts(布局)”的子類奠定了基礎(chǔ),它們提供了像流式布局、表格布局以及相對(duì)布局之類的布局架構(gòu)。
視圖層次:在Android平臺(tái)上,可以View和ViewGroup來(lái)定義一個(gè)UI。Activity通過(guò)調(diào)用setContentView()方法,來(lái)引用一個(gè)根節(jié)點(diǎn)對(duì)象。
布局:視圖布局用XML文件來(lái)定義。Android 的布局通過(guò)Android的布局管理器實(shí)現(xiàn),Android的布局管理器有:線性布局、表格布局、現(xiàn)對(duì)布局、幀布局 和絕對(duì)布局。
Android應(yīng)用程序開(kāi)發(fā)過(guò)程中,難點(diǎn)就在于與服務(wù)器進(jìn)行數(shù)據(jù)交互。由于Web服務(wù)器輸出的數(shù)據(jù)格式在Android上很難展示出來(lái)和處理,因此,本文提出在Android應(yīng)用與Web服務(wù)器中間添加一個(gè)中繼器,負(fù)責(zé)把Web服務(wù)器輸出的數(shù)據(jù)進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換便于Android處理的JSON和XML數(shù)據(jù)格式。此外,也可以通過(guò)Web Service遠(yuǎn)程調(diào)用。
2 項(xiàng)目的需求分析
2.1 辦公管理現(xiàn)狀
單位的OA系統(tǒng)是JSP開(kāi)發(fā)的,還有一些應(yīng)用系統(tǒng)是用ASP開(kāi)發(fā)的,多種應(yīng)用系統(tǒng)并存。這就要求我們首先要對(duì)各種應(yīng)用系統(tǒng)進(jìn)行整合。由于是Android的移動(dòng)平臺(tái),那么最關(guān)鍵的就是解決移動(dòng)平臺(tái)與現(xiàn)有WEB應(yīng)用系統(tǒng)的互操作,各系統(tǒng)各平臺(tái)之間的協(xié)同工作。
2.2 業(yè)務(wù)需求分析
移動(dòng)OA系統(tǒng)應(yīng)該能確保學(xué)校所有部門(mén)和教職員工都可以處理日常工作,通過(guò)系統(tǒng)能夠完成大部分的公文處理和信息共享、傳遞。由于受到內(nèi)存無(wú)線網(wǎng)絡(luò)等情況的制約,移動(dòng)OA又不利于處理大文件的業(yè)務(wù),而是以精簡(jiǎn)為主,與WEB版的OA有所側(cè)重。從校領(lǐng)導(dǎo)到普通教職員工都能夠通過(guò)該系統(tǒng)看到自己工作情況。如此OA系統(tǒng)的主要功能用圖1描述。
系統(tǒng)的功能模塊較多,篇幅有限,在這里就不展開(kāi)描述。也不對(duì)各模塊功能點(diǎn)展開(kāi)陳述。
3 項(xiàng)目的設(shè)計(jì)與實(shí)現(xiàn)
3.1 系統(tǒng)設(shè)計(jì)原則
在系統(tǒng)設(shè)計(jì)時(shí),既要考慮功能性需求,又要非功能性需求。如可靠性(無(wú)故障運(yùn)行的概率[2])、可擴(kuò)展性、穩(wěn)定性、可維護(hù)性,同時(shí)還要關(guān)注軟件的用戶體驗(yàn)。為此,采用面向?qū)ο蟮木幊趟枷牒蚆VC的架構(gòu)來(lái)開(kāi)發(fā),易于擴(kuò)展及維護(hù)。
3.2 系統(tǒng)架構(gòu)及原理
通過(guò)擴(kuò)展現(xiàn)有的OA系統(tǒng),使得客戶端多樣化。手機(jī)通過(guò)無(wú)線網(wǎng)絡(luò)訪問(wèn)服務(wù)器,服務(wù)器根據(jù)請(qǐng)求執(zhí)行后返回?cái)?shù)據(jù)給手機(jī)。這里涉及到了Android與服務(wù)器之間的通訊服務(wù)和數(shù)據(jù)交互了。因?yàn)楝F(xiàn)有的OA系統(tǒng)并沒(méi)有向移動(dòng)設(shè)備提供連接接口,這就要求我們?cè)谝苿?dòng)設(shè)備與Web OA應(yīng)用服務(wù)器(即原來(lái)的OA系統(tǒng))之間增加中間應(yīng)用服務(wù)器(通訊服務(wù)器),實(shí)現(xiàn)數(shù)據(jù)交互。系統(tǒng)架構(gòu)如圖2所示。
3.3 系統(tǒng)的主要設(shè)計(jì)
3.3.1 業(yè)務(wù)流程
本節(jié)對(duì)系統(tǒng)的一些關(guān)鍵流程進(jìn)行設(shè)計(jì),并用時(shí)序圖來(lái)說(shuō)明多個(gè)對(duì)象之間的動(dòng)態(tài)協(xié)作。鑒于篇幅有限,這里只用課程查詢時(shí)序圖說(shuō)明。如圖3所示,其主要的處理過(guò)程如下:
(1)老師發(fā)生課程查詢請(qǐng)求。(2)Android的Activity接收到請(qǐng)求,并根據(jù)請(qǐng)求調(diào)用控制器Controllers的相應(yīng)接口。(3)Controllers把處理轉(zhuǎn)到業(yè)務(wù)層Business處理。(4)業(yè)務(wù)層Business經(jīng)過(guò)LINKQ調(diào)用數(shù)據(jù)庫(kù)信息,并把信息返回給Controllers。(5)Controllers處理好數(shù)據(jù)后,把結(jié)果返回給Activity。(6)Activity根據(jù)數(shù)據(jù)綁定規(guī)則,把數(shù)據(jù)呈現(xiàn)給請(qǐng)求者。
3.3.2 功能模塊實(shí)現(xiàn)
系統(tǒng)功能模塊的實(shí)現(xiàn)主要分為兩大類:用戶界面和業(yè)務(wù)邏輯。界面的結(jié)構(gòu)是相似的,設(shè)計(jì)方法也大同小異。本文只用主界面來(lái)講述Android界面的設(shè)計(jì)方法及界面所觸發(fā)的事件的實(shí)現(xiàn)過(guò)程。
主界面采用九宮格的布局。這里用到相對(duì)布局RelativeLayout和線性布局LinearLayout。通達(dá)設(shè)置布局的分布方向和權(quán)重等屬性,可以把屏幕分成上、中、下三等分。中間主體部分最外層是一個(gè)相對(duì)布局組件RelativeLayout,內(nèi)嵌三個(gè)線性布局組件RelativeLayout,按垂直方向平分成三等分,然后每一等分再嵌套三個(gè)線性布局組件RelativeLayout,按水平方向細(xì)分成三等分,這樣就形成了九宮格的布局。圖4所示為九宮布局框架和加載圖片后的最終效果圖。
當(dāng)點(diǎn)擊圖標(biāo)按鈕時(shí),Android程序會(huì)調(diào)用相應(yīng)的事件處理函數(shù)。在Android中,控件事件是通過(guò)設(shè)置其控件的監(jiān)聽(tīng)器來(lái)監(jiān)聽(tīng)并重寫(xiě)某些函數(shù)來(lái)處理的。
至于實(shí)現(xiàn)窗體間的切換,在Android程序中,Activity之間的切換可由Intent來(lái)完成[3]。
3.3.3 業(yè)務(wù)邏輯的實(shí)現(xiàn)
由于本文主要論述基于Android平臺(tái)移動(dòng)客戶端的OA解決方案,因此OA服務(wù)器的具體實(shí)現(xiàn)本文就不詳細(xì)論述了。下面以校園公告為例來(lái)論述下Android客戶端的業(yè)務(wù)處理及與服務(wù)器之間的數(shù)據(jù)交互。Android客戶端發(fā)出請(qǐng)求,獲取數(shù)據(jù)并顯示整個(gè)過(guò)程的時(shí)序圖,如圖5所示。
在整個(gè)過(guò)程中,轉(zhuǎn)換器(中間通訊服務(wù)器)的作用十分重要。當(dāng)Activity從轉(zhuǎn)換器獲取到XML或JSON格式的數(shù)據(jù)后,首先XML解釋器或JSON解釋函數(shù)對(duì)數(shù)據(jù)進(jìn)行解釋,然后通過(guò)視圖組件將數(shù)據(jù)按一定的格式在屏幕上顯示出來(lái)。
4 結(jié)語(yǔ)
移動(dòng)OA可以說(shuō)是辦公自動(dòng)化的一個(gè)熱點(diǎn)發(fā)展方向,也是一個(gè)新的研究領(lǐng)域。移動(dòng)OA這個(gè)研究方向可以說(shuō)是對(duì)本人的一個(gè)考驗(yàn)。解決本人單位現(xiàn)在教職工辦公的一些困難是我選擇研究這個(gè)方向的最大動(dòng)力,通過(guò)本研究,可以提高學(xué)校的信息化水平。
參考文獻(xiàn)
[1]William Enck,Machigar Ongtang, Patrick McDaniel.Understanding Android Security[ED/OL].IEEE Security Privacy,2009(4):11. http://www.patrickmcdaniel. org/pubs/sp09.pdf.
[2]Gokhale SS,Trivedi KS.Analytical models for architecture-based software reliability prediction:A unification framework[J]. IEEE Trans.on Reliability, 2006,55(4):578-590.
[3]Shane Conder Lauren Darcey[美].Android移動(dòng)應(yīng)用開(kāi)發(fā)從入門(mén)到精通[M].北京:人民郵電出版社,2010.
[4]楊豐盛.Android應(yīng)用開(kāi)發(fā)手揭秘[M].北京:機(jī)械工業(yè)出版社,2011.
[5]陳釗.Android程序主要組成部分概述[J].中國(guó)新技術(shù)新產(chǎn)品,2011(17):42.