999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于模板的BREW應(yīng)用可視化界面設(shè)計(jì)及代碼生成

2010-01-01 00:00:00孫斌董悅麗
軟件工程 2010年3期

摘要:本文提出了一種基于模板技術(shù)的BREW應(yīng)用程序可視化用戶界面設(shè)計(jì)以及代碼自動(dòng)生成的方法,從而改變了手工編寫B(tài)REW應(yīng)用的現(xiàn)狀。本系統(tǒng)為提供一個(gè)可視化的圖形界面設(shè)計(jì)工具,開發(fā)人員可以進(jìn)行所見即所得的界面設(shè)計(jì),同時(shí)根據(jù)用戶的設(shè)計(jì)生成XML文件,接下來利用該XML文件及BREW程序框架模板自動(dòng)生成應(yīng)用代碼??梢暬慕缑嬖O(shè)計(jì)及自動(dòng)代碼生成提高BREW應(yīng)用的開發(fā)效率。

關(guān)鍵詞:模板;自動(dòng)代碼生成;可視化

1 引言

隨著時(shí)代的發(fā)展,手機(jī)用戶群體越來越大,人們對(duì)手機(jī)應(yīng)用軟件的需求也隨之增大。2008年我國電信行業(yè)重組、以及3G牌照的發(fā)放,標(biāo)志這3G時(shí)代的到來。手機(jī)應(yīng)用程序的開發(fā)面臨著更為巨大的市場??焖僮兓氖袌鲆箝_發(fā)人員能夠快速開發(fā)出豐富多彩的應(yīng)用程序。以往BREW應(yīng)用程序的開發(fā)仍然處于手工編寫的狀態(tài)。當(dāng)開發(fā)人員開發(fā)應(yīng)用的界面部分時(shí),需要在編輯環(huán)境中將代碼寫好,經(jīng)過編譯鏈接后在模擬器中執(zhí)行以觀察界面實(shí)際效果,如若不滿意,需要再回來修改源代碼,如此反復(fù),效率非常低下。

可視化的開發(fā)環(huán)境在目前已經(jīng)較為普遍,但在BREW應(yīng)用開發(fā)中還屬空白。本文提出一個(gè)可視化用戶界面設(shè)計(jì)及基于模板的代碼自動(dòng)生成的方法。在可視化的圖形用戶界面設(shè)計(jì)環(huán)境中,開發(fā)人員可以為自己的應(yīng)用程序設(shè)定一個(gè)圖形手機(jī)屏幕進(jìn)行界面設(shè)計(jì)。我們將BREW中主要界面接口進(jìn)行封裝,以界面元素控件的形式提供給用戶。用戶可以通過鼠標(biāo)拖拽將各種圖形界面元素控件添加到手機(jī)屏幕的相應(yīng)位置,通過調(diào)整達(dá)到理想的效果,同時(shí)在該環(huán)境中對(duì)個(gè)控件的相關(guān)屬性進(jìn)行設(shè)置,完成“所見即所得”的界面設(shè)計(jì)。

在完成可視化的、所見即所得的界面設(shè)計(jì)后,系統(tǒng)根據(jù)用戶設(shè)計(jì)的結(jié)果生成一個(gè)XML文件。該XML文件記錄的用戶所設(shè)計(jì)界面的各種參數(shù)。接下來根據(jù)XML文件及BREW應(yīng)用程序模板文件自動(dòng)生成BREW應(yīng)用框架代碼。用戶即開發(fā)人員可以在生成的代碼上進(jìn)行進(jìn)一步的完善,得到最優(yōu)的代碼。

2 系統(tǒng)總體設(shè)計(jì)

本系統(tǒng)包括一個(gè)可視化的用戶界面設(shè)計(jì)工具和一個(gè)代碼自動(dòng)生成引擎。如圖1所示。

BREW應(yīng)用的代碼有其自身特點(diǎn),其代碼的自動(dòng)生成是由代碼自動(dòng)生成引擎根據(jù)BREW應(yīng)用程序框架模板文件和用于描述界面信息的XML文件進(jìn)行的。其中BREW應(yīng)用程序框架模板文件是事先根據(jù)BREW應(yīng)用代碼的特點(diǎn)設(shè)計(jì)而成的XML文件;用戶通過使用一個(gè)可視化的用戶界面設(shè)計(jì)工具對(duì)用戶界面進(jìn)行設(shè)計(jì),該工具包括各種界面控件,用戶通過鼠標(biāo)拖拽對(duì)界面布局進(jìn)行設(shè)計(jì)并對(duì)空間屬性進(jìn)行設(shè)置。該圖形設(shè)計(jì)工具最終生成一個(gè)XML文件,該文件描述了用戶界面的各種信息。

代碼自動(dòng)生成引擎根據(jù)XML文件的信息在BREW應(yīng)用程序框架模板文件中搜索相應(yīng)的標(biāo)簽,并根據(jù)界面控件的屬性在模板文件中添加相應(yīng)代碼,從而生成BREW程序。

3 BREW應(yīng)用的可視化界面設(shè)計(jì)及代碼自動(dòng)生成

3.1 圖形界面控件的封裝及可視化設(shè)計(jì)環(huán)境

目前BREW應(yīng)用的用戶界面設(shè)計(jì)仍然是手工編寫代碼的方式,編程人員需要多次運(yùn)行修改才能達(dá)到滿意的效果,效率十分低。

本文開發(fā)一個(gè)包含有界面設(shè)計(jì)環(huán)境及多種圖形界面控件的可視化界面設(shè)計(jì)工具。利用該工具,開發(fā)人員可以為自己的應(yīng)用程序創(chuàng)建一個(gè)圖形手機(jī)屏幕,并可以通過鼠標(biāo)拖拽將各種圖形界面元素添加到手機(jī)屏幕的相應(yīng)位置,進(jìn)行“所見即所得”的界面設(shè)計(jì)。

該工具實(shí)現(xiàn)的關(guān)鍵是將BREW中相關(guān)接口進(jìn)行抽象并封裝為圖形界面元素控件。例如將BREW中的IImage接口封裝為圖片控件,將ITextCtl控件封裝為文本框控件等等。當(dāng)用戶將該控件拖拽到屏幕區(qū)域并進(jìn)行調(diào)整時(shí),需要記錄下該控件對(duì)應(yīng)接口的各種表象屬性參數(shù),如x、y坐標(biāo),寬、高等。此外,對(duì)于控件對(duì)應(yīng)接口的其他屬性需要用戶進(jìn)行設(shè)置。

本系統(tǒng)中的可視化界面設(shè)計(jì)工具可以使人們從從繁瑣的界面設(shè)計(jì)編碼工作中解脫出來,從而將主要精力放在應(yīng)用程序業(yè)務(wù)邏輯的設(shè)計(jì)與實(shí)現(xiàn)上,從而提高了開發(fā)效率。

3.2 用戶界面XML文件

可視化界面設(shè)計(jì)工具根據(jù)用戶的設(shè)計(jì)要生成一個(gè)XML文件,該文件記錄了程序界面的各種設(shè)計(jì)信息,是自動(dòng)代碼生成中數(shù)據(jù)來源之一,代碼自動(dòng)生成引擎根據(jù)該文件及程序模板生成最終代碼。在這里,用戶界面信息是以XML文件的格式保存用戶在向?qū)е休斎氲男畔ⅰV圆捎肵ML文件的格式保存用戶輸入的信息,是由XML文件的特點(diǎn)決定的。XML是被設(shè)計(jì)用來存儲(chǔ)數(shù)據(jù)、攜帶數(shù)據(jù)和交換數(shù)據(jù),并且XML可以從多種類型的數(shù)據(jù)存儲(chǔ)方式中分離數(shù)據(jù)。

XML數(shù)據(jù)定義文件中的標(biāo)簽名為待替換的參數(shù),也是模板文件中的特殊的標(biāo)簽,標(biāo)簽值為用戶輸入的信息,用于代替模板中的待替換的參數(shù)。

在本文中,用戶界面XML中定義了每一種界面元素的名稱、類型、所屬窗口、尺寸、坐標(biāo)等等信息。例如:

mainform

form01

128

160

16

….

pic1

pic01

/pic/test1.jpg

50

70

20

10

….

上例中定義了一個(gè)名為mainform的主界面窗口和一個(gè)名為pic1的圖片控件。主界面窗口大小為128*160,顏色深度為16位。圖片對(duì)應(yīng)的文件時(shí)pic/test1.jpg,該圖片的大小為50*70,位于主界面窗口上(20,10)的位置。圖片其中的標(biāo)簽名,如FormName, ImageName, FormCX, FormCY, FormColorDepth,ImageFile等是模板中待替換的參數(shù),而標(biāo)簽值,如mainform, userid,pic1,128,160,16,/pic/test1.jpg等用于代替模板中待替換的參數(shù)。

3.3 BREW應(yīng)用程序框架模板文件

模板描述文件可以理解成是一種解釋型文件,需要模板引擎解析執(zhí)行,執(zhí)行的結(jié)果輸出是程序源代碼文本。模板描述文件實(shí)現(xiàn)了代碼框架、數(shù)據(jù)和流程分離,而且支持模板塊嵌套。

BREW應(yīng)用程序框架模板文件包括AEEApplet結(jié)構(gòu)體定義部分,入口函數(shù)AEEClsCreateInstance(),事件處理函數(shù)AEEApplet_HandelEvent(),初始化函數(shù)AEEApplet_InitAppData(),和系統(tǒng)終了函數(shù)AEEApplet_FreeAppData()四部分。

模板中入口函數(shù)AEEClsCreateInstance()采用固定的格式和內(nèi)容,一般不需要修改。事件處理函數(shù)AEEApplet_HandelEvent()包含EVT_APP_START、EVT_APP_STOP、EVT_APP_SUSPEND等小程序事件、按鍵事件EVT_KEY、EVT_COMMAND事件等的處理。這部分是BREW應(yīng)用的重要組成部分。初始化函數(shù)AEEApplet_InitAppData()主要完成應(yīng)用的初始化,包括變量的初始化、接口實(shí)例的創(chuàng)建及初始化等;系統(tǒng)終了函數(shù)AEEApplet_FreeAppData()主要完成接口實(shí)例的釋放,內(nèi)存變量的釋放等。

3.4 BREW應(yīng)用代碼自動(dòng)生成引擎

代碼自動(dòng)生成引擎用于解析XML定義文件和讀取指定的模板文件,并將定義文件中解析得來的數(shù)據(jù)信息,在引擎中進(jìn)行保存,然后對(duì)模板文檔中的標(biāo)記及變量進(jìn)行匹配及替換,從而產(chǎn)生源代碼輸出。根據(jù)上面的流程將引擎的設(shè)計(jì)分成三個(gè)步驟:

●解析XML數(shù)據(jù)文件,讀取其中相關(guān)的信息;

●解析模板文件,找到要添加代碼的位置并添加代碼;

●根據(jù)需要,對(duì)已替換的模板進(jìn)行總體的調(diào)整。

例如引擎對(duì)用戶界面XML文件分析得知在窗口上設(shè)計(jì)了一個(gè)圖片,引擎將在程序模板的結(jié)構(gòu)體初始化部分生成圖片實(shí)例指針的定義:

IImage*pIImage_pic1;

在初始化函數(shù)中生成圖片接口示例代碼:

pMe->pIImage_pic1 = ISHELL_LoadImage (pMe->pIshell, “/pic/test1.jpg”);

在事件處理函數(shù)的EVT_APP_START事件中生成加載圖片的代碼:

IIMAGE_Draw(pMe->pIImage_pic1,picX,picY);

在終了函數(shù)中生成釋放圖片實(shí)例的代碼:

if(pMe->pIImage_pic1 != NULL)

{

IIMAGE_Release(pMe->pIImage_pic1);

pMe->pIImage_pic1=NULL;

}

4 結(jié)束語

本文提出了一種基于XML模板的BREW代碼自動(dòng)生成技術(shù)。在本系統(tǒng)中,通過對(duì)BREW接口的封裝,為BREW手機(jī)應(yīng)用開發(fā)提供一個(gè)可視化的設(shè)計(jì)環(huán)境。利用該系統(tǒng),開發(fā)人員可以進(jìn)行“所見即所得”的應(yīng)用程序界面設(shè)計(jì),并根據(jù)BREW程序框架模板生成相應(yīng)的源代碼。該系統(tǒng)可使BREW應(yīng)用開發(fā)由過去的手工書寫源代碼變?yōu)榭梢暬O(shè)計(jì)、源代碼自動(dòng)生成,促進(jìn)BREW應(yīng)用開發(fā)的標(biāo)準(zhǔn)化和工業(yè)化,大幅度提高開發(fā)效率。

參考文獻(xiàn)

[1]R.J.Sanchez. CDMA Digital Cellular Overview and Field Trials Results[J].IEEE MTT-S International Topical Symposium,1995.

[2]ATTAR R, GHOSH D, LOTT C ,et al. Evolution of cdma2000 Cellular Networks: Multicarrier[J]. EV-DO.IEEE Communications Magazine,0163-6804/06,2006(3):46.

[3]李賀,尹國強(qiáng),蔣亮.BREW技術(shù)開發(fā)與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2006.

[4]郭金發(fā),張龍.短信與BREW開發(fā)技術(shù)及實(shí)踐[M].西安:西安電子科技大學(xué)出版社,2005.

[5]卜佳俊,張海翔,陳天洲.深入BREW手機(jī)游戲開發(fā)[M].北京:清華大學(xué)出版社,2004.

主站蜘蛛池模板: 天堂网亚洲系列亚洲系列| 久久人体视频| 精品国产香蕉在线播出| www欧美在线观看| 一本二本三本不卡无码| 欧美三級片黃色三級片黃色1| 国产成人超碰无码| 国产精品入口麻豆| 午夜精品福利影院| 日韩福利视频导航| 亚洲国产中文综合专区在| 国产在线观看91精品| 免费看a毛片| 99视频只有精品| 国产96在线 | 久久九九热视频| 亚洲第一中文字幕| 秘书高跟黑色丝袜国产91在线| 久热这里只有精品6| 日韩专区欧美| 欧美一区二区福利视频| 国产精品亚洲αv天堂无码| 福利姬国产精品一区在线| 色综合成人| 最近最新中文字幕在线第一页| 国产日韩欧美在线播放| 国产日韩丝袜一二三区| 手机成人午夜在线视频| 午夜色综合| 91小视频在线| 高清免费毛片| 国产激爽大片在线播放| 国产高清免费午夜在线视频| 三上悠亚在线精品二区| 沈阳少妇高潮在线| 免费高清a毛片| 亚洲久悠悠色悠在线播放| 在线视频精品一区| 国产真实乱子伦精品视手机观看 | 久久精品日日躁夜夜躁欧美| 毛片网站观看| 岛国精品一区免费视频在线观看| 亚洲欧美日韩精品专区| 国产精品女主播| 国产成人综合在线观看| 动漫精品啪啪一区二区三区| 国产无码网站在线观看| 99精品一区二区免费视频| 国产日本欧美亚洲精品视| 亚洲天堂视频在线播放| 91美女视频在线观看| 91www在线观看| 日本免费一级视频| 国产午夜福利亚洲第一| 少妇人妻无码首页| 国产午夜精品鲁丝片| www亚洲精品| 欧日韩在线不卡视频| 国产成年女人特黄特色毛片免| 亚洲男人的天堂视频| 四虎国产精品永久一区| 国产在线91在线电影| 91亚洲视频下载| 婷婷伊人五月| 全部毛片免费看| 欧美成人午夜影院| 热99re99首页精品亚洲五月天| 97无码免费人妻超级碰碰碰| 欧美区一区| 国产激情无码一区二区三区免费| 视频一本大道香蕉久在线播放| 色色中文字幕| 97国产精品视频人人做人人爱| 亚洲熟妇AV日韩熟妇在线| 中文字幕亚洲精品2页| www.狠狠| 免费无码网站| 91精品专区国产盗摄| 99久久精品国产麻豆婷婷| 色婷婷在线影院| 91外围女在线观看| 久久这里只有精品2|