本發(fā)明涉及軟件工程,屬于模型驅(qū)動工程技術(shù)領(lǐng)域。本發(fā)明尤其涉及一種基于模型驅(qū)動對Android移動應(yīng)用進(jìn)行抽象提取交互流模型,使用針對Android平臺擴(kuò)展的IFML對其進(jìn)行建模。
背景技術(shù):
移動應(yīng)用市場現(xiàn)如今蓬勃發(fā)展,發(fā)展速度極其迅速,移動終端及其應(yīng)用徹底地改變了人們的生活方式,移動應(yīng)用本身呈現(xiàn)出多平臺、多版本的態(tài)勢,具有平臺多,版本演化快的特點(diǎn),如何更好并高效地支持多平臺、多版本的開發(fā)是一個備受關(guān)注的問題。Android是由Google發(fā)布,為移動終端打造的開放移動開發(fā)平臺,短短幾年間Android原生系統(tǒng)便從1.1版本發(fā)展到目前(2016年5月)的5.1版本,隨著市場需求增長和智能終端市場的快速成長,Android系統(tǒng)的更新迭代速度也會相應(yīng)加快以更好地適應(yīng)市場需求,此外,基于Android系統(tǒng)源碼進(jìn)行的二次開發(fā),深度定制改版的移動平臺操作系統(tǒng)也是Android發(fā)展的一個顯著趨勢,因此可見Android系統(tǒng)版本演化之快之繁雜,各版本間的差異性非常復(fù)雜,Android移動應(yīng)用也會隨著系統(tǒng)的變更不斷地進(jìn)行更新演化。模型是對具體實(shí)現(xiàn)的一種抽象,能夠有效地屏蔽各系統(tǒng)版本間的差異性,對一個移動應(yīng)用抽象出模型并使用適當(dāng)?shù)慕UZ言刻畫描述,從而幫助開發(fā)人員完成Android移動應(yīng)用從一個版本向另外一個版本的遷移。
Android移動應(yīng)用的開發(fā)是基于MVC(模型-視圖-控制器)設(shè)計(jì)模式,移動應(yīng)用項(xiàng)目源代碼中所有對象也是按照這三類劃分為三部分,視圖層主要負(fù)責(zé)應(yīng)用的可視內(nèi)容呈現(xiàn)以及提供用戶操作的場所;控制器層和視圖層建立聯(lián)系,負(fù)責(zé)處理視圖層中用戶的操作,模型層中存放整個應(yīng)用的數(shù)據(jù)。
移動應(yīng)用最大的特點(diǎn)就是可視化和頻繁的人機(jī)交互,移動應(yīng)用是基于UI事件驅(qū)動的,整個運(yùn)行流程主要是基于界面上的事件驅(qū)動完成的,在Android系統(tǒng)各版本中都具有這個特點(diǎn)。移動應(yīng)用的界面中包含了這個應(yīng)用的整體運(yùn)行控制流程,應(yīng)用都由若干界面組成,界面間存在一定的跳轉(zhuǎn)關(guān)系,每個界面中有若干可視化控件元素,用戶和這些可視化控件元素進(jìn)行人機(jī)交互,由此觸發(fā)事件,系統(tǒng)完成對事件的監(jiān)聽處理從而完成用戶的交互意圖,事件的處理或者完成一定的業(yè)務(wù)邏輯運(yùn)算,或者觸發(fā)了界面間的跳轉(zhuǎn)。
IFML(The Interaction Flow Modeling Language)交互流建模語言,由OMG(Object Management Group)制定的用于描述軟件應(yīng)用前端的內(nèi)容、用戶交互以及行為的建模語言。IFML作為OMG標(biāo)準(zhǔn)交互流建模語言,提供了擴(kuò)展機(jī)制,通過擴(kuò)展IFML使其能夠更好地用于描述移動應(yīng)用的用戶界面及交互行為。
IFML建立的交互流模型只能夠描述最通用的前端交互流信息,后來對其進(jìn)行的針對移動平臺的擴(kuò)展,能夠用來刻畫描述與移動平臺相關(guān)的模型,移動平臺相關(guān)的模型能夠初步描述移動平臺中的通用信息。為此,需要進(jìn)一步對其進(jìn)行針對Android平臺的擴(kuò)展,從而建立Android平臺相關(guān)的模型,開發(fā)人員基于屏蔽了版本差異的Android平臺相關(guān)模型,再結(jié)合開發(fā)時Android版本,完成Android應(yīng)用的開發(fā),后期隨著版本演化,基于模型可以完成從一個版本到另外一個版本的遷移。
技術(shù)實(shí)現(xiàn)要素:
發(fā)明目的,針對目前移動應(yīng)用開發(fā)領(lǐng)域具有版本演化快的特點(diǎn),演化的深度會體現(xiàn)到API層次,甚至造成新老版本之間的API無法兼容的情況,這給程序員的開發(fā)實(shí)現(xiàn)帶來了巨大的挑戰(zhàn)。本發(fā)明目的是,針對Android平臺擴(kuò)展了IFML,并基于擴(kuò)展的IFML對Android應(yīng)用進(jìn)行抽象建立交互流模型,屏蔽各Android系統(tǒng)不同版本的復(fù)雜差異性,描述Android移動應(yīng)用的整體運(yùn)行控制流程,開發(fā)人員基于建立的交互流模型,結(jié)合實(shí)際開發(fā)需求及Android具體版本信息,完成Android應(yīng)用開發(fā)。本發(fā)明的主要目的還在于,基于模型驅(qū)動,針對Android平臺的框架特點(diǎn)擴(kuò)展了IFML建模規(guī)范,并基于該擴(kuò)展提出一種用于Android移動開發(fā)進(jìn)行建模的方法??傊?,提供新的技術(shù)和方法來適應(yīng)這種系統(tǒng)平臺級別的快速演化,成為學(xué)術(shù)界和工業(yè)界都共同關(guān)注的問題。傳統(tǒng)軟件開發(fā)方式對此支持不夠,MDE通過劃分不同抽象層次的模型能有效地支持版本間的演化和遷移。IFML交互流建模語言是OMG提出的前端交互流建模規(guī)范。
本發(fā)明首先Android開發(fā)人員確定將要開發(fā)的Android應(yīng)用由多少界面組成以及界面間的跳轉(zhuǎn)關(guān)系,確定每個界面中包括了哪些Android控件,哪些控件需要綁定事件并且進(jìn)行事件處理,事件處理完后是否進(jìn)行界面間的跳轉(zhuǎn)。對Android應(yīng)用的整體運(yùn)行流程確定后;初步地使用標(biāo)準(zhǔn)IFML對Android應(yīng)用的整體運(yùn)行流程中各種元素建立交互流模型,這個模型是粗粒度并且是高度抽象的,我們對標(biāo)準(zhǔn)IFML針對移動平臺進(jìn)行擴(kuò)展,使用擴(kuò)展后的IFML再對模型進(jìn)行細(xì)化,這樣得到的模型便具有了移動平臺的概念,體現(xiàn)出移動平臺的特點(diǎn)。這個模型中包含的元素信息不足夠支撐Android開發(fā),因此要進(jìn)一步針對Android平臺進(jìn)行IFML的擴(kuò)展,擴(kuò)展后對Android應(yīng)用運(yùn)行流程進(jìn)行描述刻畫,這一步得到的模型信息能夠幫助Android開發(fā)人員進(jìn)行應(yīng)用的開發(fā)。
為完成上述目的,本發(fā)明采用的技術(shù)方案如下:一種基于IFML的Android開發(fā)建模方法,其特征是包括如下步驟:
1)當(dāng)IFML針對移動平臺進(jìn)行擴(kuò)展,基于移動平臺的擴(kuò)展需要首先針對Android平臺進(jìn)行擴(kuò)展,確定并抽象出Android平臺應(yīng)用的整體運(yùn)行流程;
11)確定Android平臺應(yīng)用中整體運(yùn)行流程界面數(shù)量,界面間跳轉(zhuǎn)關(guān)系;
12)確定構(gòu)成整體運(yùn)行流程每個界面的控件類型;
13)確定所述控件是否綁定事件,并確定事件類型;
14)確定所述界面間跳轉(zhuǎn)由哪些控件觸發(fā)事件來完成;
2)使用交互流建模語言IFML針對移動平臺的擴(kuò)展,對步驟1)中Android平臺應(yīng)用中整體運(yùn)行流程進(jìn)行初步交互流建模;
21)對Android平臺應(yīng)用中整體運(yùn)行流程的界面,使用擴(kuò)展IFML中ViewContainer得到的Screen表示;
22)對整體運(yùn)行流程界面中的控件,使用擴(kuò)展IFML中ViewComponent得到的MobileComponent表示;
23)對表示整體運(yùn)行流程界面中的控件Mobile Component,如果控件MobileComponent上綁定了事件,擴(kuò)展IFML中Event得到MobileSystemEvent,進(jìn)一步對MobileSystemEvent擴(kuò)展得到具體事件類型,比如Click,使用具體事件類型放在MobileComponent元素邊界上;
24)從整體運(yùn)行流程界面中的控件的MobileComponent上綁定的事件引出一條Navigation Flow,指向IFML中的Action元素,表示事件觸發(fā)后進(jìn)行的業(yè)務(wù)邏輯,再從Action元素繼續(xù)引出Navigation Flow,指向目的界面Screen,表示處理完業(yè)務(wù)邏輯后跳轉(zhuǎn)到哪個界面;
3)IFML針對移動平臺擴(kuò)展,對Android平臺應(yīng)用進(jìn)行進(jìn)一步擴(kuò)展,使用針對Android平臺應(yīng)用擴(kuò)展的IFML,進(jìn)行面向?qū)崿F(xiàn)的交互流建模;
31)對Android平臺應(yīng)用中的界面,使用IFML擴(kuò)展了的Screen得到的Activity元素表示;
32)對界面中的控件,使用針對Android應(yīng)用平臺中基于MobileComponent元素?cái)U(kuò)展得到的各具體Android控件來表示,包括Button、TextView;
33)所述Android控件上綁定了事件,使用針對Android的基于MobileSystemEvent元素?cái)U(kuò)展得到的各具體Android事件來表示,包括Click、Touch、LongPress;
34)從所述Android控件上綁定的事件引出一條Navigation Flow,指向表示事件處理業(yè)務(wù)邏輯的Action元素,從Aciton元素引出Navigation Flow指向目的Activity;
35)界面Activity元素間跳轉(zhuǎn)關(guān)系已經(jīng)使用擴(kuò)展了的IFML表示出來,界面Activity元素間進(jìn)行跳轉(zhuǎn)時如果需要對涉及了跳轉(zhuǎn)的源Activity和目的Activity進(jìn)行生命周期方法的編碼,在源Activity和目的Activity的Navigation Flow間添加表示源Activity和目的Activity的UML類圖;
4)對步驟3)中的Android平臺應(yīng)用的交互流模型,結(jié)合項(xiàng)目需求和Android版本信息,完成應(yīng)用開發(fā);
41)對模型中表示界面的Activity元素,在項(xiàng)目中添加一個Java類,繼承自Android SDK中Activity類;模型中的Activity元素是用來表示Android應(yīng)用中的界面,給這個表示界面的元素命名為Activity;而這里的Activity類是Android官方提供給開發(fā)者、已經(jīng)存在的實(shí)實(shí)在在的一個Java類;
項(xiàng)目指的是要開發(fā)的Android App,根據(jù)模型中界面,相應(yīng)地在這個項(xiàng)目中添加一個Java類而不是Java類程序;
42)對界面中的Android控件,在項(xiàng)目布局資源目錄中添加各界面的布局文件,即在界面布局文件中添加Android控件;
43)步驟41)中的Java類,在其生命周期方法onCreate()中完成界面加載和初始化設(shè)置等編碼工作,獲取Android控件,為Android控件綁定事件,完成事件處理業(yè)務(wù)邏輯,添加界面跳轉(zhuǎn)代碼。
有益效果:本發(fā)明基于Android移動應(yīng)用的IFML擴(kuò)展模型,結(jié)合不同Android平臺版本的信息,清晰直觀地完成Android應(yīng)用的開發(fā),也很容易能夠完成從一個Android版本向另外一個版本的演化遷移。本發(fā)明模型能夠屏蔽Android平臺各版本間的復(fù)雜差異性,以直觀的方式展示Android移動應(yīng)用的整體運(yùn)行控制流程,開發(fā)人員可基于該模型結(jié)合不同的Android平臺版本進(jìn)行Android應(yīng)用開發(fā),也可以很容易地能夠?qū)ndroid移動應(yīng)用完成從一個版本向另外一個版本的遷移。
本發(fā)明通過對移動應(yīng)用進(jìn)行抽象建立模型的方法,不僅可以用來屏蔽Android系統(tǒng)不同版本間的差異性,同樣能夠用來屏蔽不同移動平臺間的差異性,從而幫助完成從一個移動平臺模型向另外一個移動平臺模型進(jìn)行轉(zhuǎn)換,再根據(jù)模型進(jìn)行代碼生成。
附圖說明
圖1所示為針對Android平臺擴(kuò)展的IFML元模型;
圖2所示為一個Android應(yīng)用實(shí)例使用IFML建立的模型;
圖3所示為同一個Android應(yīng)用實(shí)例使用針對移動平臺擴(kuò)展的IFML建立的模型;
圖4所示為針對Android平臺擴(kuò)展的IFML為Android應(yīng)用實(shí)例建立的交互流模型。
具體實(shí)施方式
下面對本發(fā)明做進(jìn)一步詳細(xì)說明。
首先Android開發(fā)人員確定將要開發(fā)的Android應(yīng)用由多少界面組成以及界面間的跳轉(zhuǎn)關(guān)系,確定每個界面中包括了哪些Android控件,哪些控件需要綁定事件并且進(jìn)行事件處理,事件處理完后是否進(jìn)行界面間的跳轉(zhuǎn)。對Android應(yīng)用的整體運(yùn)行流程確定后,初步地使用標(biāo)準(zhǔn)IFML對Android應(yīng)用的整體運(yùn)行流程中各種元素建立交互流模型,這個模型是粗粒度并且是高度抽象的,對標(biāo)準(zhǔn)IFML針對移動平臺進(jìn)行擴(kuò)展,使用擴(kuò)展后的IFML再對模型進(jìn)行細(xì)化,這樣得到的模型便具有了移動平臺的概念,體現(xiàn)出移動平臺的特點(diǎn)。這個模型中包含的元素信息不足夠支撐Android開發(fā),因此要進(jìn)一步針對Android平臺進(jìn)行IFML的擴(kuò)展,擴(kuò)展后對Android應(yīng)用運(yùn)行流程進(jìn)行描述刻畫,這一步得到的模型信息能夠幫助Android開發(fā)人員進(jìn)行應(yīng)用的開發(fā)。
1)確定并抽象出Android應(yīng)用的整體運(yùn)行流程。
Android應(yīng)用是UI和事件驅(qū)動的,Android開發(fā)人員在開發(fā)一個Android應(yīng)用時,首先要確定應(yīng)用的整體運(yùn)行流程,對Android應(yīng)用進(jìn)行抽象理解可以得知Android應(yīng)用以界面為單位,在各界面間進(jìn)行跳轉(zhuǎn)完成應(yīng)用的運(yùn)行流程,每個界面中放置合適的可視化控件元素呈現(xiàn)給用戶,用戶可以與界面中控件元素進(jìn)行交互,應(yīng)用會處理用戶的交互操作完成功能、實(shí)現(xiàn)效果,交互過程中可能會觸發(fā)界面的跳轉(zhuǎn)。
Android開發(fā)人員都知道Android應(yīng)用是使用面向?qū)ο笳Z言Java進(jìn)行開發(fā),基于模型-控制器-視圖的MVC架構(gòu)模式進(jìn)行設(shè)計(jì),應(yīng)用中的任何對象,歸根結(jié)底都屬于模型對象、視圖對象以及控制器對象中的一種。視圖對象用于呈現(xiàn)可視化內(nèi)容給用戶,并且和用戶進(jìn)行交互,響應(yīng)用戶的輸入,但是視圖對象不能夠處理用戶交互引發(fā)的事件,必須將視圖對象觸發(fā)的各類事件信息發(fā)送給控制器對象,委托控制器對象去處理各類事件。
Android中的控制器層是由Activity負(fù)責(zé)完成,每一個Activity都對應(yīng)一個Java文件。Activity的功能主要是:1.加載其關(guān)聯(lián)的視圖并且呈現(xiàn)給用戶;2.獲取其關(guān)聯(lián)的視圖中每個控件,并負(fù)責(zé)處理控件響應(yīng)用戶與控件交互的操作。應(yīng)用中每個頁面都有相關(guān)聯(lián)的Activity,Activity具體是由Java編程語言結(jié)合Android API實(shí)現(xiàn),Activity作為Android中的四大組件之一,Android系統(tǒng)為其提供了7個生命周期方法,應(yīng)用的狀態(tài)發(fā)生變化時,Android系統(tǒng)會自動調(diào)用Activity相應(yīng)的生命周期方法,開發(fā)人員可以在各個生命周期方法體中完成業(yè)務(wù)邏輯編碼便可以在生命周期方法被系統(tǒng)調(diào)用時實(shí)現(xiàn)預(yù)期的功能或效果。
移動應(yīng)用中視圖和控制器密不可分,Activity負(fù)責(zé)加載與其關(guān)聯(lián)的視圖,如果應(yīng)用需要控件和用戶進(jìn)行交互,便會在Activity中對該控件設(shè)置事件處理方法,Android對事件的處理機(jī)制都是相同的:監(jiān)聽事件源,為事件源綁定一個事件處理方法,事件發(fā)生則相應(yīng)的事件處理方法完成事件處理。此外,事件可能會引起界面間的跳轉(zhuǎn)。Android應(yīng)用是UI和事件驅(qū)動的,開發(fā)人員將為提供給用戶進(jìn)行交互的可視化控件綁定事件,系統(tǒng)會捕獲用戶交互產(chǎn)生的事件并對其進(jìn)行處理。
Android應(yīng)用的所有界面,界面中的控件,控件綁定事件及事件處理,界面間跳轉(zhuǎn)關(guān)系,這些信息就能夠清晰地表達(dá)出Android應(yīng)用的整體運(yùn)行流程,這個步驟得到的運(yùn)行控制流程和具體Android版本是無關(guān)的,屏蔽了各版本的復(fù)雜差異性。
2)使用IFML針對移動平臺的擴(kuò)展,對步驟1中Android應(yīng)用整體運(yùn)行流程進(jìn)行初步交互流建模。
IFML是通用的交互流建模語言,使用標(biāo)準(zhǔn)沒有經(jīng)過擴(kuò)展的IFML可以對步驟1中的運(yùn)行控制流程進(jìn)行建模,但該模型僅停留在最原始抽象的交互流層級,無法體現(xiàn)出移動平臺的特點(diǎn),也不能詳細(xì)描述應(yīng)用的信息,對開發(fā)人員的幫助不大。標(biāo)準(zhǔn)的IFML主要使用了以下元素進(jìn)行交互流建模:ViewContainer表示一個視圖容器,可用來容納可視化元素;ViewComponent表示可以存放于ViewContainer中的可視化元素,對用戶可見并且用戶可以與其進(jìn)行交互;Event表示交互流中的事件,通常附著在ViewComponent上表示該ViewComponent會產(chǎn)生事件,與Event緊密聯(lián)系在一起的是Action和Navigation Flow,Action表示事件產(chǎn)生后會進(jìn)行的業(yè)務(wù)邏輯,Navigation Flow表示了交互流的跳轉(zhuǎn)方向。當(dāng)使用標(biāo)準(zhǔn)IFML對Android應(yīng)用整體運(yùn)行流程進(jìn)行交互流建模時,IFML中ViewContainer表示Android應(yīng)用中的界面,界面中的Android控件使用ViewComponent表示,控件如果需要綁定事件,則在ViewComponent上添加Event,從Event引出Navigation Flow,如果事件處理方法需要完成業(yè)務(wù)邏輯,則Navigation Flow和一個Action進(jìn)行關(guān)聯(lián),否則指向目的ViewContainer。圖1所示為一個Android應(yīng)用實(shí)例使用IFML建立的模型,該模型比較抽象而且粗粒度地描述了Android應(yīng)用的界面間跳轉(zhuǎn)關(guān)系,界面中有多少構(gòu)成元素,部分構(gòu)成元素綁定了事件,事件或者觸發(fā)了界面的跳轉(zhuǎn),或者完成一部分業(yè)務(wù)邏輯。
對IFML進(jìn)行針對移動平臺的擴(kuò)展,使得IFML能夠進(jìn)行與移動平臺相關(guān)的建模,擴(kuò)展重點(diǎn)主要在具有移動平臺顯著特點(diǎn)的控件和事件類型方面,移動平臺的事件類型主要分為了三大類:1.移動終端所特有的傳感器引發(fā)的事件,比如晃動,加速器等;2.用戶使用移動終端的外設(shè)引發(fā)的事件,比如攝像頭拍照,麥克風(fēng)等;3.用戶直接操作界面上控件引發(fā)的事件,比如點(diǎn)擊,滑動等,可以基于Event擴(kuò)展出MobileSystemEvent,基于ViewContainer擴(kuò)展了Screen,這樣表述比較有移動平臺特點(diǎn),Screen表示移動應(yīng)用的界面,ViewComponent擴(kuò)展為具有移動平臺相關(guān)概念的控件MobileComponent,表示這是移動平臺的控件。使用針對移動平臺進(jìn)行擴(kuò)展的IFML對Android應(yīng)用進(jìn)行交互流建模時,Android應(yīng)用的界面使用Screen表示,界面中的Android控件使用MobileComponent表示,控件上綁定的事件則根據(jù)具體事件類型來表示,比如單擊Click。圖2所示為同一個Android應(yīng)用實(shí)例使用針對移動平臺擴(kuò)展的IFML建立的模型,這部分的擴(kuò)展能夠描述有移動平臺概念的信息。
3)針對IFML的移動平臺擴(kuò)展進(jìn)一步針對Android平臺進(jìn)行擴(kuò)展,使用針對Android擴(kuò)展的IFML進(jìn)行面向?qū)崿F(xiàn)的交互流建模。
步驟2)中的交互流模型能夠描述出移動應(yīng)用相關(guān)的運(yùn)行交互流過程,我們進(jìn)一步擴(kuò)展針對移動平臺的IFML使得能夠建立Android平臺相關(guān)的交互流模型。對比Android各版本中的控件類型和事件類型,發(fā)現(xiàn)控件和事件類型基本上沒有改變,因此我們可以擴(kuò)展IFML中的MobileComponent,在IFML中擴(kuò)充Android的控件,比如Button,TextView等。MobileComponent和Android控件的關(guān)系類似于面向?qū)ο笳Z言中父類和子類的關(guān)系,當(dāng)開發(fā)人員不確定某個界面中需要使用哪個控件時,完全可以先使用MobileComponent來代替,等最終開發(fā)確定時再用具體Android控件替換MobileComponent。擴(kuò)展MobileSystemEvent添加Android中的事件類型比如Click,Touch等。Android中Activity和視圖層是緊密聯(lián)系的,視圖層的業(yè)務(wù)邏輯都交由控制器Activity處理,因此我們將Screen擴(kuò)展為Activity。在步驟1)中我們提到,當(dāng)Activity進(jìn)行切換,應(yīng)用狀態(tài)發(fā)生改變時,Android系統(tǒng)會自動調(diào)用提供給Activity的7個生命周期方法,開發(fā)人員可以在生命周期方法體中完成業(yè)務(wù)邏輯編碼便能夠在生命周期方法被系統(tǒng)調(diào)用時實(shí)現(xiàn)預(yù)期功能。步驟2中的模型無法描述這部分與Android平臺緊密相關(guān)的信息,為此我們需要添加新元素刻畫這部分信息。IFML是可以結(jié)合UML(Unified Modeling Language)建模語言完成應(yīng)用中不能直接通過界面或交互流來表述的部分。我們選擇使用UML中的類圖和協(xié)作圖作為新元素,步驟1中提到Activity對應(yīng)Java文件,完全可以使用UML類圖和協(xié)作圖來在IFML中表示Activity中的生命周期方法。同樣地,由于Android控件綁定的事件引起的事件處理方法,也可以使用UML類圖和協(xié)作圖的新元素表述。
經(jīng)過針對Android平臺的IFML擴(kuò)展后,我們可以這樣來描述Android應(yīng)用的整體運(yùn)行控制流程:使用Activity表示應(yīng)用中的界面,在Activity中添加Android控件,給控件綁定Android事件,事件通過Navigation Flow和Action聯(lián)系起來,Action部分由開發(fā)人員具體去實(shí)現(xiàn),完成Action后,Navigation Flow要么指向原來的界面表示實(shí)現(xiàn)了功能、完成效果,要么指向Activity,如果指向其他的Activity,則需要添加Activity生命周期方法,生命周期方法體中的內(nèi)容交由開發(fā)人員決定是否添加。通過這些步驟,Android應(yīng)用的整體交互運(yùn)行流程便建模完成。圖3所示為針對Android平臺擴(kuò)展的IFML為Android應(yīng)用實(shí)例建立的交互流模型。
4)基于步驟3)中的Android交互流模型,結(jié)合Android具體版本,如有需要只對Android控件類型進(jìn)行調(diào)整,開發(fā)人員對照模型可以直接在Android項(xiàng)目源代碼中完成應(yīng)用的所有界面,界面中控件,界面對應(yīng)的Activity,控件綁定的事件,界面如何跳轉(zhuǎn)及跳轉(zhuǎn)關(guān)系。Android開發(fā)人員看到模型中的Activity,為此Activity在項(xiàng)目中添加一個Java類,看到模型中Activity里的控件可以在Activity關(guān)聯(lián)的界面中進(jìn)行添加,模型中控件上綁定了事件及進(jìn)行了事件處理,直接可以在Activity中捕獲控件并對控件進(jìn)行事件綁定。
術(shù)語對照表
英文術(shù)語 中文
ViewContainer 視圖容器;
Screen 移動端屏幕容器;
ViewComponent 視圖控件;
MobileComponent 移動端視圖控件;
Event 事件;
MobileSystemEvent 移動端系統(tǒng)事件;
Navigation Flow 導(dǎo)向流;
Action 邏輯處理操作;
Activity Android 平臺屏幕容器;
Button Android 平臺按鈕控件;
TextView Android 平臺文本框控件;
Click Andorid 平臺單擊事件;
Touch Android 平臺觸摸事件;
LongPress Android 平臺長按事件。