• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于應用描述的Android代碼自動生成

    2016-12-26 08:14:42江逸舟沈立煒趙文耘
    計算機應用與軟件 2016年11期
    關鍵詞:安卓代碼框架

    江逸舟 沈立煒 彭 鑫 趙文耘

    (復旦大學軟件學院 上海 201203)(上海市數(shù)據(jù)科學重點實驗室(復旦大學) 上海 201203)

    ?

    基于應用描述的Android代碼自動生成

    江逸舟 沈立煒 彭 鑫 趙文耘

    (復旦大學軟件學院 上海 201203)(上海市數(shù)據(jù)科學重點實驗室(復旦大學) 上海 201203)

    在移動開發(fā)領域,安卓應用的開發(fā)吸引著廣大移動終端廠商和開發(fā)者的加入。目前,開發(fā)者大多采用傳統(tǒng)的方式,基于集成開發(fā)環(huán)境為安卓應用的每一項組成部分進行設置或編碼,這些工作可能花費開發(fā)者較多的時間。然而,與應用框架相關的部分代碼與配置文件具有類似的模式,通過復用及定制的方式可以有效提高應用的整體開發(fā)效率。為了實現(xiàn)這一目標,提出一套借鑒MDA(Model-Driven Architecture)思想的方法,基于安卓應用的描述來完成安卓代碼框架部分的自動生成。該方法包括一種描述安卓應用基本元素及其關聯(lián)關系的元模型,以及一套可復用且支持定制的應用代碼模版?;谠P蜆藴实奶囟ò沧繎玫拿枋隹梢则寗踊谀0娴陌沧靠蚣艽a的自動生成。在該方法基礎上,開發(fā)Android應用框架自動生成工具,并以一個實例展示了方法與工具的可用性。

    Android 模型驅動架構 代碼自動生成 元模型

    0 引 言

    當前,智能終端的普及使得移動應用的需求量不斷增長。安卓作為免費、開源的手機平臺受到廣大開發(fā)人員及用戶的青睞。安卓應用開發(fā)者大多采用傳統(tǒng)的方式(由設計至編碼),基于集成開發(fā)環(huán)境(例如Eclipse、Android Studio、Visual Studio等)完成應用的開發(fā)工作。在這些工具中,開發(fā)者需要為安卓應用的每一項組成部分進行設置或編碼,包括應用界面的設計(編寫layout文件,或直接通過可視化開發(fā)方式進行設計)、核心配置文件的定義(填充Androidmanifest.xml文件)、組成應用的構件的開發(fā)(Activity、Service等代碼的編寫)、構件間跳轉關系的實現(xiàn)(Intent代碼的編寫)等。這些工作可能花費開發(fā)者較多的時間。然而,與應用框架相關的部分代碼與配置文件具有類似的模式,我們認為這部分的開發(fā)工作可以通過復用及定制的方式從而提高應用的開發(fā)效率。

    針對以上目標,本文提出一套借鑒MDA思想的方法,基于安卓應用的描述來完成安卓代碼框架部分的自動生成。MDA指首先建立抽象的、與具體技術無關的模型,隨后從抽象模型自動生成應用程序的過程[1]。遵循該過程,本文首先提出一種描述安卓應用的元模型,元模型定義了組成安卓應用的各類元素及其依賴關系。特定安卓應用的模型基于元模型標準,定義了應用的架構,包括名稱、屬性以及約束關系等。同時,本文方法還提出了一套應用代碼模版,其中內(nèi)嵌了與特定應用相關的可變、可定制的代碼部分。在描述應用的模型以及代碼模板的基礎上本方法涵蓋了從元模型所描述元素到代碼模版中可變部分的映射過程,支持通過代碼生成器自動生成安卓應用的框架,隨后開發(fā)者可將精力投入在應用業(yè)務邏輯的代碼編寫上。基于本方法,我們實現(xiàn)了安卓應用框架自動生成工具,工具采用GMF[2]圖形框架支持用戶以可視化的方式設計應用框架,Apache Freemarker[3]代碼生成器負責定制模版,生成應用代碼框架。

    1 相關工作

    近年來,針對基于MDA的代碼自動生成技術的研究主要包括UML模型的代碼自動生成、模型驅動的安卓界面(Graphical user interface)自動生成、基于DSL(Domain Specific Language)元模型以及采用BPMN模型的代碼自動生成。

    為了提高GUI的開發(fā)效率,Silva等[4-10]提出了面向安卓界面自動生成的模型。他們?yōu)榘沧繎玫目丶?、窗口、事件監(jiān)聽器等建立抽象模型,再將模型轉換為代碼,自動生成安卓應用界面的代碼。本文的研究重點在于創(chuàng)建描述安卓應用的模型,自動生成應用的代碼框架,而界面自動生成并非本文考慮的重點。本文僅通過配置實現(xiàn)了簡單的線性布局。

    在基于UML模型驅動的代碼自動生成方面,Parada等[11]采用了UML類圖和順序圖為安卓應用建立模型,并建立類圖與順序圖的對應關系,然后結合兩者自動生成安卓應用代碼框架。Kraemer等[12,13]采用UML活動圖描述安卓應用,將活動圖轉換為可執(zhí)行的狀態(tài)機,再自動生成安卓應用的代碼。由于安卓應用的領域特征,UML統(tǒng)一建模語言不能很好地描述安卓應用,因此本文采用了領域特定的元模型定義組成安卓應用的各類元素。

    在DSL的元模型的模型驅動技術方面,Lachga等[6-10]借鑒MDA思想,提出了DSL的建模語言,并開發(fā)了安卓界面代碼自動生成工具。Madari等[8]為應用的GUI和頁面跳轉做詳細設計,建立了應用整體與不同頁面的模型,再將頁面之間的跳轉通過CR模型(UML活動圖)聯(lián)系起來。本文的元模型定義了組成安卓應用的各類元素,如Activity、Service、BroadcastReceiver等,并通過描述應用的模型為安卓應用的框架建模。

    其他研究人員采用BPMN建模語言為應用建模,例如Solis-Martinez等采用BPMN建模語言來描述業(yè)務流程,然后生成跨平臺的應用[14,15]。模型通過XML格式定義流程模型,經(jīng)過一定步驟的配置后,實現(xiàn)了與平臺無關的應用(Android、IOS)。但他們并沒有對具體的應用開發(fā)做出詳細闡述,僅提出了平臺無關的模型。

    此外,一些知名公司開發(fā)了圖形化工具為開發(fā)人員帶來便利。例如,谷歌與MIT聯(lián)合開發(fā)的一款安卓快速開發(fā)工具App Inventor[16],該工具可以使用戶通過基于瀏覽器的工具開發(fā)手機應用。用戶可以方便地拖放代碼塊,通過mushup的方式將它們放在一起,產(chǎn)生一個應用程序。由于是由特定的模塊組成的,所以具有一定限制性。IBM公司的Rational Rhapsody[17]提供了用于安卓代碼框架生成的Eclipse插件,該工具采用UML類圖、順序圖為應用建模。但是,該工具的模型配置比較復雜,與代碼開發(fā)幾乎是一一對應的。相比而言,本文提出了領域特定的元模型,并通過描述應用的模型為安卓應用建模,建模過程更加簡單直觀。

    2 描述安卓應用框架的元模型

    2.1 元模型適用范圍

    由于安卓四大組件包括Activity、Service、BroadcastReceiver和Contentprovider[18],每種組件都具有自己的生命周期,承擔不同的職責。對于多數(shù)應用開發(fā)層的應用而言,都由以上四大組件構成,例如業(yè)務信息類應用、社交軟件、新聞應用等。本文提出的元模型將安卓組件設計為元模型的元素,可適用于多數(shù)安卓應用開發(fā)程序。而本文提出的元模型對于諸如框架開發(fā)類應用(基于安卓操作平臺做定制化開發(fā))、底層開發(fā)類(驅動開發(fā)、JNI)等尚不適用。具體來說,本文提出的元模型可適用于具有以下特征的應用:

    (1) 安卓應用包含許多Activity。Activity主要用于顯示界面、與用戶交互;應用需要實現(xiàn)導航功能,導航指Activity之間的跳轉。

    (2) 安卓應用需啟動后臺服務。Activity是安卓應用的主線程,為了保證用戶交互流暢,Service可以用于完成長時間執(zhí)行的后臺服務,例如下載文件、播放背景音樂等。

    (3) 安卓應用需要監(jiān)聽全局廣播。例如,應用需要監(jiān)聽系統(tǒng)廣播,如檢測WiFi、開機啟動、sms消息等。

    (4) 安卓應用需要實現(xiàn)組件間通信,我們可以通過綁定服務、動態(tài)廣播實現(xiàn)組件間的通信功能。

    2.2 元模型定義

    描述安卓應用的元模型定義了描述安卓應用框架的各個元素及其依賴關系,如圖1所示。

    圖1 描述安卓應用的元模型(類圖)

    表1給出了具體的元模型的定義,我們將元模型元素按照類別分為組件類、Widget類、事件監(jiān)聽器類、關聯(lián)類和權限類。

    表1 元模型定義表

    2.3 元模型依賴關系定義

    元模型的依賴關系主要分為以下五個方面:

    (1) Transition與EventListener、Intent依賴關系定義

    安卓應用組件之間的轉移是由事件驅動并由Intent負責傳遞消息,因此Transition與Intent、EventListener具有關聯(lián)關系。

    (2) Component轉移依賴關系定義

    我們把Component元素之間的依賴關系定義為Transition元素。Activity元素可以跳轉到多個其他的Activity;Activity可以啟動多個Service;Component元素可以向多個廣播發(fā)送通知。Transition必須設置好相應廣播的action屬性,否則廣播將接收不到通知。

    (3) Activity、Widget、EventListener依賴關系定義

    Activity可以包含多個Widget組件,所以Activity與Widget具有一對多的聚合關系。同樣,Widget組件可以觸發(fā)不同的事件,因此Widget與EventListener也具有一對多聚合關系。

    (4) Activity與BroadcastReceiver依賴關系定義

    動態(tài)廣播是安卓應用開發(fā)中實現(xiàn)跨進程通信的常用技術。在Activity中可以動態(tài)注冊BroadcastReceiver。Activity元素與動態(tài)的BroadcastReceiver元素具有一對多聚合關系。

    (5) Widget與相應的常用事件監(jiān)聽器依賴關系定義

    每種安卓控件都具有與常用事件監(jiān)聽器。

    3 基于模版的框架代碼生成

    3.1 基于Freemarker的代碼模板

    本文采用Freemarker模板引擎自動生成安卓應用的代碼模板。Freemarker遵循MVC(model view controller)模式,是一款輕量級的代碼生成引擎。Freemarker模板引擎的語法規(guī)則類似于腳本語言,本身也具有一些編程能力,例如條件判斷、循環(huán)嵌套、集合等概念類似于其他編程語言。例如,${}指令表示可以替換為某個變量的值,if/elseif/else表示條件判斷,list指令表示循環(huán)遍歷對象集合,include指令表示嵌套子模板等。本文按照Freemarker的語法規(guī)則定義了源代碼、布局、配置模板。其中,源代碼模板包含了Activity模板、Service模板、BroadcastReceiver模板。在這些模板中,還可以設置內(nèi)嵌子模板,例如控件模板、Intent模板、bindService模板等。圖2展示了上述模板和各個模板之間的依賴關系。

    圖2 模板類圖

    本文定義的模板類型非常多,由于篇幅的限制,我們僅展示了其中的一個模板。圖3展示了Activity模板,Activity模板主要用于生成Activity類的代碼框架,包括引入包、繼承Android.app.Activity類、重寫Activity的生命周期方法。同時,在onCreate方法中設置該Activity的布局文件、注冊動態(tài)廣播。在onDestory方法中,釋放綁定的Service,并且取消注冊動態(tài)廣播。圖中的高亮區(qū)域顯示了代碼模板的可變部分。Activity模板中可以包含多個widget、動態(tài)廣播,還可以綁定多個Service。我們將這部分可嵌套的模板定義為子模板,實現(xiàn)了模板之間的包含關系。例如,在onCreate方法中調用<#include "/Button.ftl">可以在Activity模板中嵌套Button模板。此外,在事件中還可以嵌套Intent模板從而實現(xiàn)Component元素之間的關聯(lián)關系。

    圖3 Activity模板

    3.2 基于描述模型的代碼模板定制

    在前文所提出的元模型與代碼模板的基礎上,我們按照以下轉換過程實現(xiàn)框架代碼的自動生成,如圖4所示。首先,創(chuàng)建基于元模型標準的描述應用的模型,得到模型的XML描述文件?;贔reemarker的模板規(guī)則定義一組代碼模板,包括安卓應用的源代碼、布局、配置文件、子模板等。接著,將XML描述文件和代碼模板作為代碼生成器的輸入。隨后,將描述應用的模型映射到代碼模板的可變部分,最后生成應用的代碼框架。

    圖4 描述應用的模型到應用代碼框架轉換圖

    其中,應用的源代碼是應用程序的主體,根據(jù)模型和代碼映射規(guī)則生成的源代碼包括用戶定制的Activity類、Service類、 BroadcastReceiver類。AndroidManifest.xml配置文件可以定義用戶所配置的版本,注冊Activity、Service、BroadcastReceiver、Permission等。Layout布局文件是安卓應用程序的界面。我們的工具會根據(jù)模型和屬性配置,自動為Activity生成相應的布局文件。 圖5展示了一個簡單的示例,形象地展示了從特定模型到模板中可變部分的映射過程。

    圖5 Activity綁定Service元模型與模板映射過程圖

    由于模型的XML定義文件是XML DOM樹形式的,我們引入了Dom4j API解析該模型的定義文件,遍歷讀取該定義文件中的各個節(jié)點、屬性。同時,為其中的節(jié)點建立了Java模型與之一一對應。通過遍歷該XML文件,可以得到模型所創(chuàng)建的所有節(jié)點。根據(jù)Node節(jié)點的類型分類,將每個Node節(jié)點獨立作為一個源文件的輸出。例如,XML文件中包含BroadcastReceiver元素,將它注入BroadcastReceiver對象,然后生成對應的java源文件。對于類型是Activity的元素,生成它所包含的組件、事件監(jiān)聽器、布局文件以及生命周期等。如果元素的類型是Service,那么根據(jù)他的啟動類型,判斷是否要綁定Service。對于BroadcastReceiver,判斷它是否是靜態(tài)等還是動態(tài)的。如果是靜態(tài)的廣播,那么需生成獨立的BroadcastReceiver文件,并在配置文件中注冊,否則在代碼中動態(tài)注冊。

    4 工具實現(xiàn)與實驗

    基于上述元模型,實現(xiàn)了Android應用框架自動生成工具。本節(jié)首先介紹了工具的架構設計。接著,我們使用該工具實現(xiàn)了一個具體的安卓應用“EBook”,并且展示了運行效果。

    4.1 Android應用框架自動生成工具

    Android應用框架自動生成工具的主要任務是開發(fā)一套能為安卓應用創(chuàng)建描述應用的模型的圖形編輯器和自動生成應用代碼框架的功能。工具架構主要分為五層,分別為Eclipse Platform、Platform Runtime、Tool Framework、工具層和應用層,如圖6所示。

    圖6 Android應用框架自動生成工具架構圖

    最底層的Eclipse Platform層代表Eclipse運行時環(huán)境。Eclipse是一個開源的平臺,可以使各種功能以插件的形式自由組裝的IDE,例如GMF、Draw2D、AndroidADT等。Android ADT[19]為開發(fā)安卓項目提供了運行時環(huán)境。工具框架層提供了圖形工具框架、Dom4j XML API、Android SDK所提供的API、代碼生成器。本文采用了Apache Freemarker代碼生成技術定制代碼模板,并且在運行時動態(tài)輸入數(shù)據(jù)模型自動生成不同的代碼。工具層包括了圖形編輯器,該圖形編輯器是在GMF的基礎上生成的,可以利用該編輯器創(chuàng)建描述安卓應用的模型。工具層還包括我們定義的代碼模板、元模型所描述元素到代碼模板中可變部分的映射過程、Android工程。我們首先通過EMF[20]創(chuàng)建描述應用的EMF元模型,為了使工具建模更加方便、形象,在元模型的基礎上加入了描述流程的節(jié)點如Process、Node、Start、End、Edge、Permissions。我們會在模型映射到代碼模板的定制過程中,從中提取出符合元模型定義的元素,再將模型轉換為最終的代碼。然后利用GMF圖形框架自動生成描述安卓應用的編輯器。隨后,按照Freemarker的模板語法規(guī)則定義好安卓應用的代碼框架、布局、配置文件。接著,將特定的模型與代碼模板的可變部分做映射,完成模型到代碼的轉換。工具架構圖的最上層是應用層,通過該工具,可以快速為安卓應用建模。

    4.2 實驗案例

    EBook是一個簡易的電子書應用,提供書籍列表、下載書籍、我的書籍、查看書籍內(nèi)容的功能。EBook的架構包括手機客戶端和服務器端。用戶可以在手機客戶端下載、翻閱電子書。服務器端則為客戶端提供書籍的下載。

    我們將使用Android應用框架自動生成工具生成應用的基本框架,再手動編寫具體的業(yè)務邏輯代碼以及服務器代碼等。應用包括三個界面BookListActivity、MyBookActivity、BookContentActivity。BookListActivity頁面提供許多未下載的書籍,通過列表的形式列出,用戶可以點擊列表中的書進行下載。進入MyBookActivity可以查看已下載的書籍列表。點擊已下載的書籍列表可以查看書籍的內(nèi)容和信息。

    4.3 實 驗

    實例應用需將BookListActivity設置為起始界面,在BookListActivity中實現(xiàn)Button、List、Menu、TextView以及動態(tài)廣播。然后,為Button、List加入點擊事件監(jiān)聽器。在點擊List時啟動一個后臺的DownLoadService來完成下載書籍的工作。下載完成之后發(fā)送Intent到動態(tài)廣播,告知用戶下載已完成。在點擊該Button之后跳轉到MyBookActivity界面。MyBookActivity包括一個TextView和一個List。List列出了所有已下載的書籍,點擊List可以進入第三個界面BookContentActivity。此外,我們還為實例應用添加了安卓應用的常用權限存儲卡訪問權限、震動權限、Internet訪問權限。存儲卡訪問權限用于保存、讀取已下載的書籍。Internet訪問權限主要用于下載書籍時訪問互聯(lián)網(wǎng)。震動權限用于發(fā)送消息給用戶時震動提示用戶下載完成。

    使用Android應用框架自動生成工具生成實例需要創(chuàng)建一個新的Android工程,并在工程目錄下創(chuàng)建應用的模型文件。然后拖拽右側工具欄的模型元素,定義應用的模型節(jié)點和關聯(lián)關系,例如設置組件之間的跳轉,以何種方式啟動Service,實現(xiàn)發(fā)送廣播等。隨后,在屬性視圖完成每個節(jié)點的屬性定義。最后,使用代碼自動生成功能將模型轉換為代碼,從而得到應用的代碼框架,如圖7所示。

    圖7 Android應用框架自動生成工具模型編輯界面

    在完成了上述配置后,通過代碼自動生成功能可以得到工具自動生成的應用代碼框架。我們在該框架的基礎上手動添加了業(yè)務邏輯代碼并且美化了界面。圖8顯示了EBook的運行效果,圖中展示了應用的界面,包括書籍列表、我的書籍、查看書籍內(nèi)容和版本信息界面。查看書籍內(nèi)容界面則顯示了某一本圖書的內(nèi)容。

    圖8 示例應用運行圖

    5 結 語

    本文借鑒MDA思想提出了描述應用的元模型。同時,我們定義了代碼框架模板并且提出了從元模型所描述元素到代碼模板中可變部分的映射方法?;诒疚奶岢龅脑P停瑢崿F(xiàn)了Android應用框架自動生成工具。該工具可以為安卓應用創(chuàng)建描述應用的模型,生成應用程序的框架,包括源代碼、配置文件、布局文件。實驗部分通過一個實例演示了Android應用框架自動生成工具的功能。通過實驗,體現(xiàn)了Android應用框架自動生成工具可以為開發(fā)人員快速構建應用模型,自動生成應用的代碼框架。在此框架的基礎上繼續(xù)開發(fā)能夠有效提高應用開發(fā)效率。

    在未來的工作中準備為元模型加入ContentProvider元素,使元模型更加完善。其次,本文將Widget與EventListener定義為抽象類型以便后續(xù)擴展。因此,可以為Android應用框架自動生成工具添加更多的控件使工具提供更強大的功能。

    [1] Kleppe A,Warmer J,Bast W.解析MDA[M].人民郵電出版社,2004.

    [2] The Eclipse Foundation.Graphical Modeling Project(GMP)[EB/OL].http://www.eclipse.org/modeling/gmp/.

    [3] The Apache Software Foundation.Apache Freemarker[EB/OL].http://fre-emarker.incubator.apache.org/.

    [4] Silva L P D,Fernando B E A.Model-Driven GUI Generation and Navigation for Android BIS Apps[C]//Model-Driven Engineering and Software Development (MODELSWARD),2014:400-407.

    [5] Sabraoui A,Koutbi M E,Khriss I.GUI code generation for Android applications using a MDA approach[C]//Morocco Complex Systems (ICCS),2012:1-6.

    [6] Lachgar M,Abdali A.Generating Android graphical user interfaces using an MDA approach[C]//Information Science and Technology (CIST),2014:80-85.

    [7] Sabraoui A,Koutbi M E,Khriss I.A MDA-Based Model-Driven Approach to Generate GUI for Mobile Applications[J].International Review on Computers & Software,2013,8(3):844-852.

    [8] Mannadiar R,Vangheluwe H.Modular Synthesis of Mobile Device Applications from Domain-Specific Models[C]//Automated Software Engineering(ASE),2010:21-28.

    [9] Madari I,Lengyel L,Levendovszky T.Modeling the User Interface of Mobile Devices with DSLs[C]//8th International Symposium of Hungarian Researchers on Computational Intelligence and Informatics,2007:583-589.

    [10] Lachgar M,Abdali A.Modeling and Generating the User Interface of Mobile Devices and Web Development with DSL[J].Journal of Theoretical and Applied Information Technology,2015,72(1):124-132.

    [11] Parada A G,Brisolara L B D.A Model Driven Approach for Android Applications Development[C]//Computing System Engineering (SBESC),2012:192-197.

    [12] Kraemer F A.Engineering Android Applications Based on UML Activities[M].Model Driven Engineering Languages and Systems,2011,6981:183-197.

    [13] Le Goaer O,Barbier F,Cariou E,et al.Android Executable Modeling:Beyond Android Programming[C]//Future Internet of Things and Cloud (FiCloud),2014:411-414.

    [14] Solis-Martinez J,Garcia-Menendez N,Bustelo C P G,et al.BPLOM:BPM Level-Oriented Methodology for Incremental Business Process Modeling and Code Generation on Mobile Platforms[J].International Journal of Interactive Multimedia and Artificial Intelligence,2013,2(2):13-27.

    [15] SolisMartinez J,Espada J P,GarciaMenendez N,et al.VGPM:Using Business Process Modeling for Videogame Modeling and Code Generation in Multiple Platforms[J].Computer Standards & Interfaces,2015,42:42-52.

    [16] AppInventor[EB/OL].http://code.google.com/p/app-invento r-releases/.

    [17] RationalRhapsody[EB/OL].http://www.ibm.com/ developerworks/cn/ra-tional/model-driven-development-speed-delivery/index.html.

    [18] Application Fundamentals Quickview[EB/OL].http://developer. android.com.

    [19] Android Development Tools(ADT) Plugin[EB/OL].http://web.mit.edu/hychenj/MacData/afs/sipb/project/android/docs/tools/sdk/eclipse-adt.html.

    [20] Eclipse Modeling Framework(EMF)[EB/OL].http://www.eclipse.rg/mo-deling/emf/o.

    ANDROID CODE AUTOMATIC GENERATION BASED ON APPLICATION DESCRIPTION

    Jiang Yizhou Shen Liwei Peng Xin Zhao Wenyun

    (SchoolofSoftwareEngineering,FudanUniversity,Shanghai201203,China)(ShanghaiKeyLaboratoryofDataScience,FudanUniversity,Shanghai201203,China)

    In the field of mobile development, Android application development has attracted many mobile manufacturers and developers. At present, most of the developers use a traditional way to code and configure for each part of the Android application based on the integrated development environments, which takes much time. However, part of the code and configuration files related to application framework may have a similar pattern, and software reuse and customizing can effectively improve the overall development efficiency of application. In order to achieve this goal, this paper puts forward a collection of method making reference to the thought of MDA (Model-Driven Architecture). Within this method, automatically generating android code framework is based on the description of the Android application. The method includes a meta-model which describes elements and associated relationships of Android applications as well as a set of reusable and customization supported code template. Based on the standard of the meta-model, description of a specific android application can drive the android framework to generate automatically based on the code template. Based on the method, this paper developed Android code framework automatic generation tool, and an example is carried out to show the availability of the method and tool.

    Android MDA(Model-Driven Architecture) Automatic code generation Meta-model

    2016-05-09。國家自然科學基金項目(61402113);國家高技術研究發(fā)展計劃項目(2013AA01A605)。江逸舟,碩士生,主研領域:軟件工程。沈立煒,副教授。彭鑫,教授。趙文耘,教授。

    TP311.5

    A

    10.3969/j.issn.1000-386x.2016.11.040

    猜你喜歡
    安卓代碼框架
    框架
    廣義框架的不相交性
    文物表情包
    創(chuàng)世代碼
    動漫星空(2018年11期)2018-10-26 02:24:02
    創(chuàng)世代碼
    動漫星空(2018年2期)2018-10-26 02:11:00
    創(chuàng)世代碼
    動漫星空(2018年9期)2018-10-26 01:16:48
    創(chuàng)世代碼
    動漫星空(2018年5期)2018-10-26 01:15:02
    WTO框架下
    法大研究生(2017年1期)2017-04-10 08:55:06
    一種基于安卓系統(tǒng)的手機側抓包分析方法
    一種基于OpenStack的云應用開發(fā)框架
    精品国产乱子伦一区二区三区| 日韩精品免费视频一区二区三区| aaaaa片日本免费| 最近最新中文字幕大全免费视频| 女性生殖器流出的白浆| 亚洲欧美日韩无卡精品| 成人特级黄色片久久久久久久| 咕卡用的链子| 午夜久久久久精精品| 99香蕉大伊视频| 欧美成人一区二区免费高清观看 | 国产亚洲精品一区二区www| 精品久久久久久久久久免费视频| 国产精品秋霞免费鲁丝片| 国产熟女午夜一区二区三区| 欧美日韩一级在线毛片| 禁无遮挡网站| 激情视频va一区二区三区| 黄色a级毛片大全视频| 精品国内亚洲2022精品成人| 精品一区二区三区av网在线观看| 久久国产精品人妻蜜桃| 婷婷丁香在线五月| 国产成人啪精品午夜网站| 国产亚洲欧美精品永久| 欧美国产日韩亚洲一区| 伦理电影免费视频| 国产99久久九九免费精品| 欧美一级a爱片免费观看看 | 久久久久亚洲av毛片大全| 亚洲精品一区av在线观看| 成人国产一区最新在线观看| 99国产精品99久久久久| 亚洲一区二区三区不卡视频| 又黄又爽又免费观看的视频| 欧美精品亚洲一区二区| 女同久久另类99精品国产91| 亚洲中文日韩欧美视频| 黄色a级毛片大全视频| 国产激情欧美一区二区| 欧美人与性动交α欧美精品济南到| 叶爱在线成人免费视频播放| 亚洲视频免费观看视频| 国产黄a三级三级三级人| АⅤ资源中文在线天堂| 久久中文看片网| 国产91精品成人一区二区三区| 精品人妻在线不人妻| 国产成人欧美| 999久久久国产精品视频| 亚洲国产欧美日韩在线播放| 久久欧美精品欧美久久欧美| 亚洲欧美日韩无卡精品| 久久狼人影院| 亚洲国产看品久久| 黄片小视频在线播放| 国产一区二区在线av高清观看| 在线天堂中文资源库| 国产成年人精品一区二区| 亚洲无线在线观看| 成在线人永久免费视频| av视频在线观看入口| 大型av网站在线播放| 亚洲一码二码三码区别大吗| 最近最新免费中文字幕在线| 人成视频在线观看免费观看| cao死你这个sao货| 亚洲精品久久国产高清桃花| 久9热在线精品视频| 日本一区二区免费在线视频| 极品人妻少妇av视频| 自拍欧美九色日韩亚洲蝌蚪91| 亚洲av电影不卡..在线观看| 日本在线视频免费播放| 高潮久久久久久久久久久不卡| 丁香六月欧美| 超碰成人久久| av免费在线观看网站| 亚洲五月色婷婷综合| 久久久久国产精品人妻aⅴ院| 精品福利观看| 黄色 视频免费看| 婷婷精品国产亚洲av在线| 亚洲国产看品久久| 久热这里只有精品99| 99精品欧美一区二区三区四区| 亚洲片人在线观看| 午夜免费观看网址| 人人妻人人爽人人添夜夜欢视频| 亚洲成av片中文字幕在线观看| 久久久久久大精品| 一夜夜www| 国产高清有码在线观看视频 | 69精品国产乱码久久久| 三级毛片av免费| 成年女人毛片免费观看观看9| 亚洲精品国产一区二区精华液| 久久影院123| 最近最新中文字幕大全电影3 | 99精品久久久久人妻精品| 一进一出抽搐动态| 亚洲免费av在线视频| 亚洲国产精品久久男人天堂| av天堂久久9| 精品国产乱子伦一区二区三区| 男男h啪啪无遮挡| 国产成+人综合+亚洲专区| 又黄又爽又免费观看的视频| 亚洲国产高清在线一区二区三 | 美女扒开内裤让男人捅视频| 久久伊人香网站| 天天躁夜夜躁狠狠躁躁| 天天一区二区日本电影三级 | 天堂√8在线中文| 十八禁网站免费在线| 国产av精品麻豆| 最近最新中文字幕大全免费视频| 桃红色精品国产亚洲av| 国产成人欧美在线观看| √禁漫天堂资源中文www| 丝袜美足系列| 又黄又爽又免费观看的视频| 亚洲五月色婷婷综合| 97碰自拍视频| 国产真人三级小视频在线观看| 国产一区二区三区综合在线观看| 亚洲七黄色美女视频| 亚洲人成电影观看| 久久草成人影院| 91老司机精品| 国产熟女xx| 黑人巨大精品欧美一区二区mp4| ponron亚洲| 在线观看免费视频网站a站| 免费高清视频大片| 欧美日韩亚洲综合一区二区三区_| 国产成人精品久久二区二区91| 免费在线观看黄色视频的| 午夜久久久在线观看| 黄色毛片三级朝国网站| 无限看片的www在线观看| 久久香蕉精品热| 亚洲 国产 在线| 一级a爱片免费观看的视频| 免费av毛片视频| 亚洲av电影在线进入| 欧美在线一区亚洲| 如日韩欧美国产精品一区二区三区| 精品日产1卡2卡| 国内精品久久久久精免费| 中文字幕精品免费在线观看视频| 国产精品免费视频内射| 日韩欧美国产一区二区入口| 日本 av在线| 亚洲av美国av| 亚洲人成77777在线视频| 日韩大码丰满熟妇| 免费不卡黄色视频| 久久人妻av系列| 香蕉久久夜色| 欧美亚洲日本最大视频资源| 欧美一区二区精品小视频在线| 好男人电影高清在线观看| 国产91精品成人一区二区三区| 黄色视频不卡| 香蕉丝袜av| 非洲黑人性xxxx精品又粗又长| 91大片在线观看| 757午夜福利合集在线观看| 自线自在国产av| 亚洲av成人av| 母亲3免费完整高清在线观看| 午夜老司机福利片| av天堂久久9| 欧美国产精品va在线观看不卡| 女人被躁到高潮嗷嗷叫费观| 少妇被粗大的猛进出69影院| 香蕉丝袜av| 精品无人区乱码1区二区| 欧洲精品卡2卡3卡4卡5卡区| 精品卡一卡二卡四卡免费| 色播在线永久视频| 18禁观看日本| 国产aⅴ精品一区二区三区波| 每晚都被弄得嗷嗷叫到高潮| 成人免费观看视频高清| 欧美av亚洲av综合av国产av| 国产精品免费一区二区三区在线| 日韩免费av在线播放| 日韩精品青青久久久久久| 亚洲全国av大片| 女人被躁到高潮嗷嗷叫费观| 成人av一区二区三区在线看| 亚洲专区中文字幕在线| 国产精品综合久久久久久久免费 | 久久中文看片网| 国产xxxxx性猛交| 涩涩av久久男人的天堂| 在线观看舔阴道视频| 一区二区三区精品91| 久久人妻福利社区极品人妻图片| 天堂√8在线中文| 国产高清有码在线观看视频 | 97人妻精品一区二区三区麻豆 | 午夜久久久在线观看| 色综合欧美亚洲国产小说| 美女扒开内裤让男人捅视频| 久久国产亚洲av麻豆专区| 男男h啪啪无遮挡| 好看av亚洲va欧美ⅴa在| 久久国产亚洲av麻豆专区| 精品高清国产在线一区| 国产乱人伦免费视频| 国产乱人伦免费视频| 亚洲国产高清在线一区二区三 | 欧美乱妇无乱码| 久久久久久亚洲精品国产蜜桃av| e午夜精品久久久久久久| 无人区码免费观看不卡| 欧洲精品卡2卡3卡4卡5卡区| 日韩欧美国产在线观看| 婷婷丁香在线五月| 亚洲男人的天堂狠狠| 国产激情久久老熟女| 国产激情欧美一区二区| 男男h啪啪无遮挡| 又黄又粗又硬又大视频| 精品福利观看| 女人被躁到高潮嗷嗷叫费观| 亚洲精品在线观看二区| 波多野结衣av一区二区av| 波多野结衣av一区二区av| 中文字幕人妻丝袜一区二区| 欧美激情极品国产一区二区三区| 亚洲三区欧美一区| 精品电影一区二区在线| 日本五十路高清| 丁香欧美五月| 国产不卡一卡二| 国产欧美日韩精品亚洲av| 日韩欧美免费精品| 久久久久久国产a免费观看| 久久人妻福利社区极品人妻图片| 亚洲国产精品成人综合色| 免费看十八禁软件| 女人被狂操c到高潮| 亚洲avbb在线观看| 久久影院123| 黑人欧美特级aaaaaa片| 欧美乱色亚洲激情| 国产精品一区二区精品视频观看| 亚洲中文字幕日韩| 免费在线观看日本一区| 亚洲欧美精品综合一区二区三区| 一边摸一边抽搐一进一出视频| 黑人巨大精品欧美一区二区mp4| 午夜福利欧美成人| av欧美777| 日本精品一区二区三区蜜桃| 人人妻人人澡欧美一区二区 | 美女高潮到喷水免费观看| 亚洲精品国产精品久久久不卡| 老鸭窝网址在线观看| 大香蕉久久成人网| 日韩有码中文字幕| 欧美日韩一级在线毛片| 伦理电影免费视频| 国产成人精品久久二区二区免费| 在线十欧美十亚洲十日本专区| 亚洲一区二区三区不卡视频| 欧美 亚洲 国产 日韩一| 三级毛片av免费| 久久人妻av系列| 欧美日本视频| 在线观看免费视频日本深夜| 久久久久久免费高清国产稀缺| 韩国精品一区二区三区| 看黄色毛片网站| 国产成人系列免费观看| 久久精品亚洲熟妇少妇任你| 美女高潮到喷水免费观看| 性少妇av在线| 男女之事视频高清在线观看| 欧美丝袜亚洲另类 | 国产伦一二天堂av在线观看| 亚洲欧美日韩高清在线视频| 久99久视频精品免费| 国产一区二区三区在线臀色熟女| 色在线成人网| 亚洲欧美日韩无卡精品| 国产精品一区二区三区四区久久 | 狂野欧美激情性xxxx| 又紧又爽又黄一区二区| 国产激情欧美一区二区| 国产亚洲精品av在线| 大码成人一级视频| 亚洲最大成人中文| 成人特级黄色片久久久久久久| 中文字幕人成人乱码亚洲影| 亚洲片人在线观看| 欧美在线黄色| 宅男免费午夜| 一级,二级,三级黄色视频| 黄片大片在线免费观看| 亚洲成av人片免费观看| 精品日产1卡2卡| 看免费av毛片| 亚洲一区二区三区不卡视频| 中文字幕精品免费在线观看视频| 国产人伦9x9x在线观看| av天堂久久9| 又黄又爽又免费观看的视频| 侵犯人妻中文字幕一二三四区| 亚洲中文字幕一区二区三区有码在线看 | 免费一级毛片在线播放高清视频 | 悠悠久久av| 精品国产超薄肉色丝袜足j| 国产又色又爽无遮挡免费看| 欧美日本中文国产一区发布| 亚洲一码二码三码区别大吗| 一进一出抽搐动态| 欧美国产精品va在线观看不卡| 久久国产精品男人的天堂亚洲| videosex国产| 天堂影院成人在线观看| 国产一区二区三区视频了| 国产伦人伦偷精品视频| 精品一区二区三区av网在线观看| 久久婷婷人人爽人人干人人爱 | 亚洲三区欧美一区| 久久久水蜜桃国产精品网| av天堂久久9| 波多野结衣高清无吗| tocl精华| 欧美精品啪啪一区二区三区| 欧美激情高清一区二区三区| 亚洲国产中文字幕在线视频| 一区二区日韩欧美中文字幕| 国产极品粉嫩免费观看在线| 久久久久久人人人人人| 性色av乱码一区二区三区2| 在线国产一区二区在线| 国产精品香港三级国产av潘金莲| 国产欧美日韩综合在线一区二区| 韩国av一区二区三区四区| 亚洲视频免费观看视频| 欧美色视频一区免费| 天天一区二区日本电影三级 | 99国产综合亚洲精品| 老司机福利观看| 久久国产乱子伦精品免费另类| cao死你这个sao货| 97人妻天天添夜夜摸| 欧美午夜高清在线| 久久久国产成人精品二区| 国产视频一区二区在线看| 国产精品久久久人人做人人爽| 国产野战对白在线观看| 欧美 亚洲 国产 日韩一| 国产高清videossex| 色综合亚洲欧美另类图片| 国产精品日韩av在线免费观看 | 国产高清有码在线观看视频 | 又黄又粗又硬又大视频| 亚洲国产高清在线一区二区三 | 精品熟女少妇八av免费久了| 熟妇人妻久久中文字幕3abv| 国产精品影院久久| 久久久久久免费高清国产稀缺| 亚洲男人天堂网一区| 老鸭窝网址在线观看| 亚洲色图 男人天堂 中文字幕| 桃色一区二区三区在线观看| 精品一区二区三区av网在线观看| 国产精品电影一区二区三区| 老司机深夜福利视频在线观看| 一a级毛片在线观看| 国产精品日韩av在线免费观看 | 免费在线观看亚洲国产| 国产精品98久久久久久宅男小说| 免费少妇av软件| 亚洲无线在线观看| 校园春色视频在线观看| 久久 成人 亚洲| 一本大道久久a久久精品| 日韩成人在线观看一区二区三区| 中文字幕人成人乱码亚洲影| 亚洲成人精品中文字幕电影| 国产亚洲欧美在线一区二区| 国产精品自产拍在线观看55亚洲| 欧美av亚洲av综合av国产av| 伊人久久大香线蕉亚洲五| 美女高潮喷水抽搐中文字幕| 男人的好看免费观看在线视频 | 欧美一级a爱片免费观看看 | 又紧又爽又黄一区二区| 欧美午夜高清在线| 老鸭窝网址在线观看| 欧洲精品卡2卡3卡4卡5卡区| 亚洲精品中文字幕在线视频| 97人妻精品一区二区三区麻豆 | 亚洲天堂国产精品一区在线| 日韩精品中文字幕看吧| 精品国产美女av久久久久小说| 日本免费a在线| 日本撒尿小便嘘嘘汇集6| 人人澡人人妻人| 久久久国产欧美日韩av| 久久久国产精品麻豆| 一边摸一边抽搐一进一小说| 一级毛片女人18水好多| 黄色 视频免费看| 国产精品二区激情视频| 97超级碰碰碰精品色视频在线观看| 精品不卡国产一区二区三区| 淫秽高清视频在线观看| 黄片播放在线免费| 国产精品九九99| 9色porny在线观看| 黄色视频不卡| 91大片在线观看| 天堂动漫精品| 91大片在线观看| 久久精品影院6| 50天的宝宝边吃奶边哭怎么回事| 国产精品国产高清国产av| 伊人久久大香线蕉亚洲五| 又大又爽又粗| 久久午夜综合久久蜜桃| 免费在线观看视频国产中文字幕亚洲| 他把我摸到了高潮在线观看| 国产精品 国内视频| 极品人妻少妇av视频| 亚洲av片天天在线观看| 乱人伦中国视频| 亚洲精品国产精品久久久不卡| 精品欧美国产一区二区三| 亚洲最大成人中文| 巨乳人妻的诱惑在线观看| 两个人免费观看高清视频| 免费观看人在逋| 非洲黑人性xxxx精品又粗又长| 欧美国产日韩亚洲一区| 99国产精品一区二区三区| 亚洲精品一区av在线观看| 成人亚洲精品一区在线观看| 一级作爱视频免费观看| 亚洲色图av天堂| 欧美av亚洲av综合av国产av| 性欧美人与动物交配| 成人av一区二区三区在线看| 亚洲欧美激情综合另类| 91字幕亚洲| 女人被狂操c到高潮| 欧美亚洲日本最大视频资源| 国产麻豆69| 国产一级毛片七仙女欲春2 | 日本a在线网址| av电影中文网址| 亚洲一区二区三区不卡视频| 国产精品免费视频内射| 亚洲av成人av| 99riav亚洲国产免费| 精品欧美一区二区三区在线| 男人舔女人的私密视频| 51午夜福利影视在线观看| 1024视频免费在线观看| 一本大道久久a久久精品| 亚洲视频免费观看视频| 成人三级做爰电影| 亚洲欧美激情在线| 亚洲人成77777在线视频| 亚洲在线自拍视频| 午夜影院日韩av| 99久久国产精品久久久| 岛国在线观看网站| 少妇裸体淫交视频免费看高清 | 亚洲熟妇熟女久久| 国产亚洲av嫩草精品影院| 精品午夜福利视频在线观看一区| 波多野结衣巨乳人妻| 一级a爱片免费观看的视频| 午夜福利在线观看吧| 国产成人免费无遮挡视频| 国产精品综合久久久久久久免费 | 国产精品 欧美亚洲| 看片在线看免费视频| 亚洲 欧美 日韩 在线 免费| 免费高清视频大片| 精品熟女少妇八av免费久了| 国产亚洲精品久久久久久毛片| 国产私拍福利视频在线观看| 男女下面插进去视频免费观看| 一区二区三区国产精品乱码| 免费看a级黄色片| 久久人妻福利社区极品人妻图片| 国产99久久九九免费精品| 日韩免费av在线播放| 免费女性裸体啪啪无遮挡网站| 9191精品国产免费久久| 男女做爰动态图高潮gif福利片 | 级片在线观看| 大型黄色视频在线免费观看| 亚洲成av人片免费观看| 亚洲最大成人中文| 国产亚洲精品久久久久5区| 九色国产91popny在线| 黑人巨大精品欧美一区二区蜜桃| 亚洲人成电影免费在线| 日日摸夜夜添夜夜添小说| 国产亚洲欧美在线一区二区| 国产激情久久老熟女| 女人高潮潮喷娇喘18禁视频| 婷婷丁香在线五月| 午夜福利,免费看| 高清在线国产一区| 亚洲中文av在线| 91精品国产国语对白视频| а√天堂www在线а√下载| 在线国产一区二区在线| a级毛片在线看网站| 欧美性长视频在线观看| 久久午夜亚洲精品久久| 亚洲国产精品合色在线| 精品久久久久久久毛片微露脸| 成年版毛片免费区| 啪啪无遮挡十八禁网站| 久久婷婷成人综合色麻豆| 十八禁人妻一区二区| 日韩中文字幕欧美一区二区| 一区二区三区精品91| 久久 成人 亚洲| 欧美日韩中文字幕国产精品一区二区三区 | 十八禁人妻一区二区| 久久国产精品影院| 日韩一卡2卡3卡4卡2021年| 欧美+亚洲+日韩+国产| 日韩欧美在线二视频| 黄色女人牲交| 亚洲国产欧美网| 18禁国产床啪视频网站| 国产成+人综合+亚洲专区| 一边摸一边抽搐一进一小说| 精品不卡国产一区二区三区| 亚洲成a人片在线一区二区| 村上凉子中文字幕在线| 久久人妻av系列| 色综合亚洲欧美另类图片| 色播在线永久视频| АⅤ资源中文在线天堂| 熟妇人妻久久中文字幕3abv| 一区在线观看完整版| 身体一侧抽搐| 亚洲avbb在线观看| 亚洲男人天堂网一区| 一级毛片精品| 视频在线观看一区二区三区| 亚洲一区二区三区不卡视频| 后天国语完整版免费观看| 国产在线观看jvid| 欧美中文综合在线视频| 亚洲人成77777在线视频| 久久久久久久久中文| 中亚洲国语对白在线视频| 欧美激情久久久久久爽电影 | 免费一级毛片在线播放高清视频 | 久久 成人 亚洲| 久久精品人人爽人人爽视色| 麻豆成人av在线观看| 国产精华一区二区三区| 美女免费视频网站| 操美女的视频在线观看| 亚洲久久久国产精品| 亚洲国产精品合色在线| 18美女黄网站色大片免费观看| 国产三级在线视频| 无人区码免费观看不卡| 他把我摸到了高潮在线观看| 亚洲专区字幕在线| av视频在线观看入口| 嫩草影视91久久| 欧美日韩福利视频一区二区| 一区福利在线观看| 免费一级毛片在线播放高清视频 | 色老头精品视频在线观看| 狠狠狠狠99中文字幕| 老熟妇仑乱视频hdxx| 后天国语完整版免费观看| 91字幕亚洲| 亚洲天堂国产精品一区在线| 亚洲精品国产精品久久久不卡| 麻豆成人av在线观看| 亚洲人成伊人成综合网2020| 国产一区在线观看成人免费| 久久久久久久久中文| 欧美午夜高清在线| 亚洲va日本ⅴa欧美va伊人久久| 亚洲精华国产精华精| 欧美久久黑人一区二区| 亚洲精品美女久久久久99蜜臀| 精品乱码久久久久久99久播| 欧美中文日本在线观看视频| 成人特级黄色片久久久久久久| 国产av精品麻豆| 黄色a级毛片大全视频| 日韩三级视频一区二区三区| 九色国产91popny在线| 国产一区二区激情短视频| 狂野欧美激情性xxxx| 黄色女人牲交| 熟女少妇亚洲综合色aaa.| 亚洲视频免费观看视频| 欧美日韩亚洲国产一区二区在线观看| 国产亚洲精品第一综合不卡| 久久久国产成人免费|