基于代碼片段復(fù)用的安卓應(yīng)用組裝技術(shù)研究
【圖文】:
輯以及兩者的關(guān)聯(lián)關(guān)系。將界面元素和業(yè)務(wù)邏輯的實(shí)現(xiàn)代碼以代碼片段的形式提取出來(lái),并保存在代碼庫(kù)中。開(kāi)發(fā)人員依據(jù)結(jié)構(gòu)模型編寫(xiě)配置文件對(duì)應(yīng)用模塊的界面和業(yè)務(wù)邏輯進(jìn)行描述,然后使用代碼組裝工具對(duì)代碼片段進(jìn)行組裝,生成安卓應(yīng)用框架代碼。開(kāi)發(fā)人員在此基礎(chǔ)上完善核心代碼,最終得到可運(yùn)行的安卓應(yīng)用。需要注意的是本文方法關(guān)注于安卓應(yīng)用中的特定模塊,即單個(gè)Activity所包含的界面和業(yè)務(wù)邏輯。并且生成的是應(yīng)用模塊的框架代碼,,具體的業(yè)務(wù)邏輯還需要開(kāi)發(fā)人員手工實(shí)現(xiàn)。1.2安卓應(yīng)用結(jié)構(gòu)模型安卓應(yīng)用結(jié)構(gòu)模型如圖1所示。圖1安卓應(yīng)用結(jié)構(gòu)模型圖1中的安卓應(yīng)用結(jié)構(gòu)模型描述了應(yīng)用模塊中可能包含的界面元素和業(yè)務(wù)邏輯,以及兩者之間的關(guān)系。下面對(duì)結(jié)構(gòu)模型中的關(guān)鍵元素進(jìn)行介紹:UI:界面元素的總稱。用name來(lái)唯一表示該元素,并且有一組屬性attrs集合用于對(duì)界面元素進(jìn)行描述,map中第一個(gè)string表示屬性名,第二個(gè)string表示屬性值。界面元素又可以分為可見(jiàn)的界面元素和不可見(jiàn)的界面元素。InvisibleComponent:不可見(jiàn)的界面元素,是界面元素的容器,構(gòu)成模塊界面的框架。不可見(jiàn)的界面元素主要有Container。VisibleComponent:可見(jiàn)的界面元素。是界面中與用戶進(jìn)行交互的基本單位?梢(jiàn)的界面元素要嵌入不可見(jiàn)的界面元素中才能展示出來(lái),這符合安卓應(yīng)用開(kāi)發(fā)的習(xí)慣?梢(jiàn)的界面元素包括Button(按鈕)、Input(輸入框)、List(列表)、GesturePass-word(手勢(shì)密碼)、EncryptInput(加密輸入框)、PhoneCode(手機(jī)驗(yàn)證碼輸入框)、PicCode(圖片驗(yàn)證碼輸入框)等。BusinessLogic:業(yè)務(wù)邏輯。負(fù)責(zé)處理用戶與界面元素的交互以及相關(guān)的業(yè)務(wù)。有StoreToLocal(存儲(chǔ)到本地)、ValidateInput(對(duì)輸入的內(nèi)容進(jìn)行驗(yàn)證)和ClickEvent(處理點(diǎn)擊事件)等。Dependen
對(duì)模塊實(shí)現(xiàn)的功能進(jìn)行描述。Constraint:約束條件。對(duì)模塊中界面元素的組合嵌套規(guī)則進(jìn)行描述,比如最基本的規(guī)則是可見(jiàn)的界面元素要嵌入容器中才能展示出來(lái),具體的規(guī)則還要根據(jù)模塊所要實(shí)現(xiàn)功能的業(yè)務(wù)約束來(lái)制定。Configuration:配置文件。表示某一個(gè)模塊的具體實(shí)現(xiàn),反映出模塊的實(shí)現(xiàn)包含了哪些界面元素和業(yè)務(wù)邏輯,以及界面元素和業(yè)務(wù)邏輯之間的關(guān)聯(lián)。配置文件中activity和layout分別是需要生成的Activity和布局文件名稱,description是相關(guān)描述信息。1.3代碼組裝流程基于代碼片段復(fù)用的安卓應(yīng)用組裝流程示意如圖2所示。其中視圖代碼片段、業(yè)務(wù)代碼片段、代碼庫(kù)、配置文件分別對(duì)應(yīng)于安卓應(yīng)用結(jié)構(gòu)模型中的相應(yīng)元素。圖2代碼組裝流程示意圖
【相似文獻(xiàn)】
相關(guān)期刊論文 前10條
1 ;書(shū)摘[J];程序員;2002年03期
2 楊浪;張濤川;;代碼復(fù)用中的方法研究與應(yīng)用[J];電腦知識(shí)與技術(shù);2009年12期
3 魏峰;李銀鎖;;C#調(diào)用非托管代碼[J];電腦編程技巧與維護(hù);2013年04期
4 簡(jiǎn)勇;;團(tuán)隊(duì)開(kāi)發(fā)中的代碼復(fù)用淺談[J];常州信息職業(yè)技術(shù)學(xué)院學(xué)報(bào);2007年01期
5 陳林博;江建慧;張丹青;;利用返回地址保護(hù)機(jī)制防御代碼復(fù)用類攻擊[J];計(jì)算機(jī)科學(xué);2013年09期
6 郭穎;陳峰宏;周明輝;;大規(guī)模代碼克隆的檢測(cè)方法[J];計(jì)算機(jī)科學(xué)與探索;2014年04期
7 李天盟;劉鳳芹;;TML語(yǔ)言簡(jiǎn)介[J];軟件;2013年11期
8 張藍(lán)博;張善從;陳蔚薇;;嵌入式系統(tǒng)中的代碼動(dòng)態(tài)鏈接模型[J];計(jì)算機(jī)工程與設(shè)計(jì);2008年16期
9 李葆華,霍有亮;適用于面向?qū)ο蠓缎偷拇a復(fù)用技術(shù)[J];西北大學(xué)學(xué)報(bào)(自然科學(xué)版);2000年01期
10 何淼;崔松健;;一種基于隨機(jī)文件的C#與非托管C代碼交互模式[J];信息化研究;2011年02期
相關(guān)博士學(xué)位論文 前1條
1 陳平;代碼復(fù)用攻擊與防御技術(shù)研究[D];南京大學(xué);2012年
相關(guān)碩士學(xué)位論文 前7條
1 于浩;Android平臺(tái)JNI代碼單元測(cè)試方法研究[D];西南交通大學(xué);2015年
2 莊軼;繞開(kāi)細(xì)粒度地址隨機(jī)化的實(shí)時(shí)代碼復(fù)用攻擊框架[D];南京大學(xué);2014年
3 朱曉倩;一種基于圖結(jié)構(gòu)的Java代碼存取方法[D];南京大學(xué);2016年
4 劉超;基于動(dòng)態(tài)二進(jìn)制翻譯框架的代碼復(fù)用攻擊檢測(cè)與防御[D];湖南大學(xué);2012年
5 李建忠;重復(fù)代碼檢測(cè)技術(shù)的研究[D];汕頭大學(xué);2005年
6 邱慧風(fēng);基于關(guān)系復(fù)用的代碼構(gòu)建自動(dòng)化的研究[D];南昌大學(xué);2012年
7 周波;用代碼緩存復(fù)用技術(shù)提升Android即時(shí)編譯器效率[D];復(fù)旦大學(xué);2012年
本文編號(hào):2700199
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/2700199.html