基于模板的BREW應(yīng)用可視化界面設(shè)計(jì)及代碼生成
(作者未知) 2011/6/23
(接上頁(yè))的參數(shù)。
在本文中,用戶界面XML中定義了每一種界面元素的名稱、類(lèi)型、所屬窗口、尺寸、坐標(biāo)等等信息。例如:
3.4 BREW應(yīng)用代碼自動(dòng)生成引擎
代碼自動(dòng)生成引擎用于解析XML定義文件和讀取指定的模板文件,并將定義文件中解析得來(lái)的數(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é)束語(yǔ)
本文提出了一種基于XML模板的BREW代碼自動(dòng)生成技術(shù)。在本系統(tǒng)中,通過(guò)對(duì)BREW接口的封裝,為BREW手機(jī)應(yīng)用開(kāi)發(fā)提供一個(gè)可視化的設(shè)計(jì)環(huán)境。利用該系統(tǒng),開(kāi)發(fā)人員可以進(jìn)行“所見(jiàn)即所得”的應(yīng)用程序界面設(shè)計(jì),并根據(jù)BREW程序框架模板生成相應(yīng)的源代碼。該系統(tǒng)可使BREW應(yīng)用開(kāi)發(fā)由過(guò)去的手工書(shū)寫(xiě)源代碼變?yōu)榭梢暬O(shè)計(jì)、源代碼自動(dòng)生成,促進(jìn)BREW應(yīng)用開(kāi)發(fā)的標(biāo)準(zhǔn)化和工業(yè)化,大幅度提高開(kāi)發(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]李賀,尹國(guó)強(qiáng),蔣亮.BREW技術(shù)開(kāi)發(fā)與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2006.
[4]郭金發(fā),張龍.短信與BREW開(kāi)發(fā)技術(shù)及實(shí)踐[M].西安:西安電子科技大學(xué)出版社,2005.
[5]卜佳俊,張海翔,陳天洲.深入BREW手機(jī)游戲開(kāi)發(fā)[M].北京:清華大學(xué)出版社,2004.
|