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