摘 要:移動應(yīng)用程序是當(dāng)前企業(yè)信息管理系統(tǒng)的重要組成部分,安卓系統(tǒng)已經(jīng)成為移動操作系統(tǒng)的主流環(huán)境,但是大多數(shù)安卓應(yīng)用開發(fā)還是停留在作坊式的開發(fā)技術(shù),編碼量高,項目不具備復(fù)用性,因此開發(fā)一套基于安卓的智能表單引擎具有一定的實用價值。本文主要研究在android系統(tǒng)開發(fā)環(huán)境下,智能表單的格式定義,開發(fā)框架等技術(shù),通過實際應(yīng)用,大大提高了開發(fā)效率,開發(fā)框架簡單易用,具備較強的穩(wěn)定性。
關(guān)鍵詞:Android;JOSN;3G
中圖分類號:TP393.05
安卓移動操作系統(tǒng)是當(dāng)前主流移動操作系統(tǒng)之一,市場占有率高,但是大多數(shù)安卓開發(fā)均屬于低層次的應(yīng)用開發(fā),代碼復(fù)用率很低。開發(fā)框架可以大大提高軟件開發(fā)速度,降低軟件開發(fā)成本。手機界面元素比較穩(wěn)定,開發(fā)一套智能表單引擎,通過配置文檔就可以產(chǎn)生一個APP,開發(fā)人員就可以將注意力轉(zhuǎn)移到業(yè)務(wù)本身,而不是代碼編寫,從繁重的編碼勞動中解放出來,同時可以提高軟件的穩(wěn)定性。
1 系統(tǒng)設(shè)計
1.1 相關(guān)概念
(1)單元視圖
通常來說,視圖是與元數(shù)據(jù)無關(guān)的,是更普遍的概念(如windows視窗體系),單元視圖通常是對單個實體(但可能是同一實體的對象實例集合)的展現(xiàn)。最經(jīng)典的單元視圖,如網(wǎng)格列表、樹、卡片。由于視圖是人類和計算機數(shù)據(jù)之間的媒介,所以視圖常??梢园ㄈ齻€區(qū)域:數(shù)據(jù)的獲取區(qū)域(查詢)、數(shù)據(jù)的展示區(qū)域、數(shù)據(jù)的操作區(qū)域(命令),當(dāng)然,這個只是個簡單的概念,實際情況復(fù)雜得多,對數(shù)據(jù)直接操作的情況也非常普遍(鏈接、觸摸屏等)。
(2)控件
客觀對象通常包括多個域,而對某個域的操作和顯示,通常就是控件??丶姆N類通常是可以枚舉的。多個域組成一個完整對象,多個控件可以組成一個單元視圖,視圖是控件的容器。視圖和控件有時候分得并不是那么清楚,有時候視圖可以看成復(fù)合控件。在通常情況下(如windows體系),視圖窗口通常實現(xiàn)了Icontrol接口,以便于容器的統(tǒng)一處理。
1.2 智能表單引擎的框架
智能表單引擎通過對指定格式的文檔(本地或者網(wǎng)絡(luò)),通過解析引擎技術(shù),將文檔解析成為用戶所需要的界面。具體的框架如下圖:
2 系統(tǒng)設(shè)計原則
2.1 模塊隔離原則
根據(jù)引擎框架圖可以看出智能表單引擎大致包括幾大塊:元數(shù)據(jù)管理,實體對象體系管理、視圖體系管理(復(fù)合視圖|單元視圖|控件)、程序引擎,各個大塊之間通過接口互相調(diào)用,但概念上要隔離。
2.2 智能表單引擎首先是軟件框架其次是程序引擎
引擎是對規(guī)則(協(xié)議)的解析和處理,協(xié)議本身就有可能是變化的,相同的協(xié)議還可以有不同的驅(qū)動。協(xié)議不可能定義所有的情況。引擎本身不是面向?qū)ο蟮捏w系,它只是對協(xié)議的解析處理。框架則不,框架是內(nèi)置的接口規(guī)則集合,框架定義的是標(biāo)準(zhǔn)的擴展和集成方式,框架是嚴格的面向?qū)ο篌w系,引擎本身需要遵循框架的約束??蚣苓€需要承擔(dān)任何自定義的擴展,很多個性化的需求不是預(yù)先約定的,只要遵循基本的接口規(guī)則,這些實現(xiàn)就可以注入到整個框架體系當(dāng)中。只有有好的抽象框架,才能有好的軟件平臺,無法擴展的平臺是沒有任何意義的。比如對平臺軟件來說,視圖體系是框架,根據(jù)元數(shù)據(jù)生成視圖對象是引擎,引擎的代碼通常比較臟一點,這兩部分在概念上一定要區(qū)分開來,甚至在物理上也盡量隔離。
3 系統(tǒng)實現(xiàn)
3.1 數(shù)據(jù)格式制定
一個程序單元通常由一個模版文件確定一個安卓頁面的顯示方式,這個文檔的后綴名為.pu,同時由一個數(shù)據(jù)文件定義了該模版的顯示內(nèi)容,里面定義了一個安卓界面的所有元素與交互,主要包含的屬性見下表:
3.2 類庫設(shè)計
(1)自定義控件
為了完成智能表單引擎,需要對Android類庫進行二次封裝,以便于與引擎進行整合。自定義控件主要包括DataGrid(網(wǎng)格控件)、DropdownLis(下拉框控件)、ElecSignature(電子簽名控件)、GraphicsView(繪圖控件)、TreeViewNode(樹形控件)。
(2)引擎核心類庫設(shè)計,見表2。
4 結(jié)束語
本文主要介紹了安卓開發(fā)環(huán)境下智能表單引擎開發(fā)技術(shù),包括表單格式制定,類庫設(shè)計,系統(tǒng)設(shè)計原則等。該平臺開發(fā)后,大大提高了Android應(yīng)用的開發(fā)速度,由于引擎具有較強的穩(wěn)定性,開發(fā)出來的產(chǎn)品具有可擴展性,健壯性等優(yōu)點,具有一定的實用價值。
參考文獻:
[1]Mike O’Docherty.面向?qū)ο蠓治雠c設(shè)計[M].北京:清華大學(xué)出版社,2006.
[2]明日科技.Android從入門到精通[M].北京:清華大學(xué)出版社,2012.
[3]唐文忠,莫偉棟.面向領(lǐng)域的模型驅(qū)動智能表單系統(tǒng)的框架設(shè)計[N].北京航天大學(xué)學(xué)報,2007.
[4]茍園捷,莫蓉,常智勇.面向企業(yè)管理系統(tǒng)的動態(tài)表單技術(shù)研究[J].航空計算技術(shù),2006.
作者簡介:羅凌云(1978.11-),男,江西高安人,教師,講師,碩士,研究方向:面向?qū)ο笤O(shè)計。
作者單位:江西信息應(yīng)用職業(yè)技術(shù)學(xué)院,南昌 330043