本申請涉技涉及計算機(jī)技術(shù),尤其涉及一種視圖體系的生成方法、裝置及系統(tǒng)。
背景技術(shù):
在設(shè)計移動終端應(yīng)用時,通常采用MVC(Model View Controller,模型-視圖-控制器)框架模式。其中,模型是應(yīng)用程序中用于處理應(yīng)用程序數(shù)據(jù)邏輯的部分,通常負(fù)責(zé)在數(shù)據(jù)庫中存取數(shù)據(jù);視圖是依據(jù)模型數(shù)據(jù)創(chuàng)建的,用于處理數(shù)據(jù)顯示;控制器是應(yīng)用程序中處理用戶交互的部分,負(fù)責(zé)從視圖讀取數(shù)據(jù),控制用戶輸入,并向模型發(fā)送數(shù)據(jù)。
對于MVC模式中視圖的構(gòu)建,很重要的一部分工作就是如何快速構(gòu)建對應(yīng)操作系統(tǒng)的對應(yīng)視圖布局結(jié)構(gòu)。
視圖體系的構(gòu)建是指在分配的窗口上繪制UI(User Interface,用戶界面),一個UI界面會包含很多控件,這些控件之間以父子兄弟關(guān)系進(jìn)行布局,最后構(gòu)成一個視圖體系。
傳統(tǒng)的生成視圖體系的方法有兩種:第一種是通過系統(tǒng)可執(zhí)行代碼創(chuàng)建各個控件節(jié)點(diǎn),然后設(shè)置各控件節(jié)點(diǎn)的尺寸信息、該控制節(jié)點(diǎn)的父節(jié)點(diǎn)及與其他控件節(jié)點(diǎn)的位置關(guān)系等;第二種方案是通過結(jié)構(gòu)性語言文件(如可擴(kuò)展標(biāo)記語言xml等)來表示各個控件的屬性及控件之間的父子、相對位置等關(guān)系,然后在運(yùn)行時解析該文件,以生成視圖體系中各個視圖中控件的尺寸、及與其他控件的父子、位置關(guān)系等。
采用現(xiàn)有技術(shù)中的這兩種方案,第一種方案在當(dāng)控件節(jié)點(diǎn)很多時,不能清 晰的了解各個控件節(jié)點(diǎn)之間的關(guān)系,不便于如研發(fā)人員的用戶進(jìn)行視圖設(shè)計;第二種方案在運(yùn)行時,需要先將結(jié)構(gòu)性語言文件解析成系統(tǒng)可執(zhí)行代碼文件,效率較低。
技術(shù)實(shí)現(xiàn)要素:
本申請實(shí)施例中提供了一種視圖體系的生成方法、裝置及系統(tǒng),用于解決現(xiàn)有技術(shù)中不便于用戶進(jìn)行視圖設(shè)計及運(yùn)行效率較低的問題。
根據(jù)本申請實(shí)施例的第一個方面,提供了一種視圖體系的生成方法,包括:獲取用于生成視圖體系的系統(tǒng)可執(zhí)行代碼文件,其中,系統(tǒng)可執(zhí)行代碼文件是由結(jié)構(gòu)性語言文件轉(zhuǎn)換得到的;執(zhí)行系統(tǒng)可執(zhí)行代碼文件;生成視圖體系。
根據(jù)本申請實(shí)施例的第二個方面,提供了一種視圖體系的生成方法,包括:生成用于生成視圖體系的結(jié)構(gòu)性語言文件;將結(jié)構(gòu)性語言文件轉(zhuǎn)換為腳本型操作系統(tǒng)的系統(tǒng)可執(zhí)行代碼文件;根據(jù)待生成視圖體系的終端的操作系統(tǒng)類型,將結(jié)構(gòu)性語言文件或系統(tǒng)可執(zhí)行代碼文件發(fā)送至終端,操作系統(tǒng)類型包括腳本型操作系統(tǒng)和編譯型操作系統(tǒng)。
根據(jù)本申請實(shí)施例的第三個方面,提供了一種視圖體系的生成裝置,包括:獲取模塊,用于獲取用于生成視圖體系的系統(tǒng)可執(zhí)行代碼文件,其中,系統(tǒng)可執(zhí)行代碼文件是由結(jié)構(gòu)性語言文件轉(zhuǎn)換得到的;執(zhí)行模塊,用于執(zhí)行系統(tǒng)可執(zhí)行代碼文件;體系視圖生成模塊,用于生成視圖體系。
根據(jù)本申請實(shí)施例的第四個方面,提供了一種視圖體系的生成裝置,包括:文件生成模塊,用于生成用于生成視圖體系的結(jié)構(gòu)性語言文件;轉(zhuǎn)換模塊,用于將結(jié)構(gòu)性語言文件轉(zhuǎn)換為腳本型操作系統(tǒng)的系統(tǒng)可執(zhí)行代碼文件;發(fā)送模塊,用根據(jù)待生成視圖體系的終端的操作系統(tǒng)類型,將結(jié)構(gòu)性語言文件或系統(tǒng)可執(zhí)行代碼文件發(fā)送至終端,操作系統(tǒng)類型包括腳本型操作系統(tǒng)和編譯型操作系統(tǒng)。
根據(jù)本申請實(shí)施例的第五個方面,提供了一種視圖體系的生成系統(tǒng),包括:終端,包括如上述的視圖體系生成裝置;服務(wù)器,包括如上述的視圖體系生成 裝置。
采用本申請實(shí)施例中的視圖體系生成方法、裝置及系統(tǒng),能夠獲取由結(jié)構(gòu)性語言文件轉(zhuǎn)換得到的系統(tǒng)可執(zhí)行代碼文件,并運(yùn)行該系統(tǒng)可執(zhí)行代碼以生成視圖體系,使得終端在運(yùn)行時,可直接運(yùn)行系統(tǒng)可執(zhí)行代碼以生成視圖體系,效率較高;并且用戶能夠使用結(jié)構(gòu)性語言文件進(jìn)行視圖體系的設(shè)計,方便了用戶。
附圖說明
此處所說明的附圖用來提供對本申請的進(jìn)一步理解,構(gòu)成本申請的一部分,本申請的示意性實(shí)施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當(dāng)限定。在附圖中:
圖1為本申請實(shí)施例一所示的視圖體系的生成方法流程圖;
圖2為本申請實(shí)施例二所示的視圖體系的生成方法流程圖;
圖3為本申請實(shí)施例三所示視圖體系的生成裝置的結(jié)構(gòu)示意圖;
圖4為本申請實(shí)施例四所示視圖體系的生成裝置的結(jié)構(gòu)示意圖;
圖5為本申請實(shí)施例五所示視圖體系的生成系統(tǒng)的結(jié)構(gòu)示意圖;
圖6為本申請實(shí)施例六所示視圖體系的生成方法的流程示意圖。
具體實(shí)施方式
為了使本申請實(shí)施例中的技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖對本申請的示例性實(shí)施例進(jìn)行進(jìn)一步詳細(xì)的說明,顯然,所描述的實(shí)施例僅是本申請的一部分實(shí)施例,而不是所有實(shí)施例的窮舉。需要說明的是,在不沖突的情況下,本申請中的實(shí)施例及實(shí)施例中的特征可以相互組合。
在實(shí)施本申請的過程中,發(fā)明人發(fā)現(xiàn),相關(guān)技術(shù)中生成視圖體系的方法有兩種,第一種是通過系統(tǒng)可執(zhí)行代碼挨個布局各個控件,設(shè)置控件的屬性及他與其他控件的關(guān)系,但是由于通過代碼編寫不直觀,當(dāng)控件較多時,容易混淆控件之間的關(guān)系,給編程工作帶來較大麻煩,而且代碼也不利于其他開發(fā)人員 的閱讀;第二種方案是通過結(jié)構(gòu)性語言定義,結(jié)構(gòu)性語言能較好的反應(yīng)各個控件之間的關(guān)系,方便得知道控件在終端的展示效果,其他開發(fā)人員也很容易熟悉別人開發(fā)的代碼,但是存在的問題是運(yùn)行時需要對該結(jié)構(gòu)性語言文件進(jìn)行解析,對代碼的效率有很大影響,特別是在高級語言中比如java和javascript,代碼的效率本身比較低,如果需要在運(yùn)行時進(jìn)行解析,將影響程序的運(yùn)行效果。
針對上述問題,本申請實(shí)施例中提供了一種視圖體系的生成方法和裝置,核心思想在于,在用戶在服務(wù)器側(cè)進(jìn)行視圖設(shè)計時,采用結(jié)構(gòu)性語言,然后在程序在終端側(cè)運(yùn)行之前,提前將結(jié)構(gòu)性語言文件轉(zhuǎn)換成操作系統(tǒng)可直接執(zhí)行的代碼文件,從而在進(jìn)行視圖體系生成時,可以直接獲取并運(yùn)行系統(tǒng)可執(zhí)行代碼文件,從而達(dá)到既方便了用戶,又提高了視圖體系的生成效率的效果。
本申請實(shí)施例中的方案可應(yīng)用于如互聯(lián)網(wǎng)汽車等移動終端的應(yīng)用的視圖體系生成,例如,音樂播放器的視圖體系生成,也可以應(yīng)用于其他終端的應(yīng)用的視圖體系生成,本申請對此均不作限制。
圖1為本申請實(shí)施例一所示的視圖體系的生成方法流程圖。
如圖1所示,根據(jù)本申請實(shí)施例一所示的視圖體系的生成方法包括以下步驟:
S102,獲取用于生成視圖體系的系統(tǒng)可執(zhí)行代碼文件,其中,系統(tǒng)可執(zhí)行代碼文件是由結(jié)構(gòu)性語言文件轉(zhuǎn)換得到的;
S104,執(zhí)行系統(tǒng)可執(zhí)行代碼文件;
S106,生成視圖體系。
在具體實(shí)施時,將結(jié)構(gòu)性語言文件轉(zhuǎn)換為系統(tǒng)可執(zhí)行代碼文件的轉(zhuǎn)換方式可以是后臺服務(wù)器預(yù)先執(zhí)行該結(jié)構(gòu)性語言文件,以解析為系統(tǒng)可執(zhí)行代碼文件;也可以是由終端執(zhí)行該結(jié)構(gòu)性語言文件以生成視圖體系后,所保存的作為運(yùn)行結(jié)果的系統(tǒng)可執(zhí)行代碼文件,本申請對此不作限制。
在具體實(shí)施時,該系統(tǒng)可執(zhí)行代碼可以是如java、javascript、python等的系統(tǒng)編程語言;也可以是二進(jìn)制代碼;本申請對此不作限制。
在具體實(shí)施時,該結(jié)構(gòu)性語言可以是如可擴(kuò)展標(biāo)記語言xml、json(JavaScript Object Notation,javascript對象符號)等結(jié)構(gòu)性語言。
以操作系統(tǒng)為javascript為例,視圖設(shè)計的用戶,例如,研發(fā)人員在服務(wù)器使用json語言設(shè)計視圖體系后,IDE(Integrated Development Environment,集成開發(fā)環(huán)境)后臺讀取json文件,解析得到對應(yīng)的javascript文件,當(dāng)終端需要展示這個json文件對應(yīng)的視圖時,終端從服務(wù)器直接獲取對應(yīng)的javascript的文件。因此,用戶可以撰寫json等具有一定結(jié)構(gòu)的文件,而終端最終代碼執(zhí)行的時候可直接讀取系統(tǒng)可執(zhí)行代碼文件,這樣兼顧了方便,易讀,友好的編程方法,同時保障了代碼的運(yùn)行效率。
優(yōu)選地,在獲取用于生成視圖體系的系統(tǒng)可執(zhí)行代碼文件之前,還包括:判斷本地是否存在用于生成視圖體系的系統(tǒng)可執(zhí)行代碼文件。
優(yōu)選地,若存在,則獲取用于生成視圖體系的系統(tǒng)可執(zhí)行代碼文件具體包括:從本地獲取系統(tǒng)可執(zhí)行代碼文件。
優(yōu)選地,若不存在,則進(jìn)一步判斷本地操作系統(tǒng)類型,類型包括腳本型操作系統(tǒng)和編譯型操作系統(tǒng)。
若為腳本型操作系統(tǒng),則獲取用于生成視圖體系的系統(tǒng)可執(zhí)行代碼文件具體包括:向服務(wù)器發(fā)送文件獲取請求,請求中攜帶本地操作系統(tǒng)類型;從服務(wù)器接收系統(tǒng)可執(zhí)行代碼文件。
在具體實(shí)施時,對于腳本型操作系統(tǒng),如javascript,python等;服務(wù)器可以預(yù)先將用戶編寫的用于生成視圖體系的結(jié)構(gòu)性語言文件轉(zhuǎn)換為系統(tǒng)可執(zhí)行代碼文件。例如,IDE后臺在獲取到用戶設(shè)計好的結(jié)構(gòu)性語言json文件后,預(yù)先運(yùn)行該json文件以轉(zhuǎn)換為javascript文件,在后續(xù)終端需要生成視圖時,直接向服務(wù)器請求獲取該javascript文件即可。
在具體實(shí)施時,對于腳本型操作系統(tǒng),如為javascript,本申請實(shí)施例中的系統(tǒng)可執(zhí)行代碼文件可以是javascript文件;如為python,本申請實(shí)施例中的系統(tǒng)可執(zhí)行代碼文件可以是python文件;對于編譯型操作系統(tǒng),如android, 本申請實(shí)施例中的系統(tǒng)可執(zhí)行代碼文件可以是二進(jìn)制代碼文件,本申請對此不作限制。
優(yōu)選地,若為編譯型操作系統(tǒng),則獲取用于生成視圖體系的系統(tǒng)可執(zhí)行代碼文件具體包括:向服務(wù)器發(fā)送文件獲取請求,請求中攜帶本地操作系統(tǒng)類型;從服務(wù)器接收用于生成視圖體系的結(jié)構(gòu)性語言文件;調(diào)用本地解析程序?qū)Y(jié)構(gòu)性語言文件進(jìn)行解析,得到系統(tǒng)可執(zhí)行代碼文件。
在具體實(shí)施時,對于編譯型系統(tǒng),服務(wù)器可能不能將結(jié)構(gòu)性語言文件直接轉(zhuǎn)換成系統(tǒng)可執(zhí)行代碼文件,那么,需要由終端運(yùn)行該結(jié)構(gòu)性語言文件,調(diào)用本地解析程序?qū)Y(jié)構(gòu)性語言文件進(jìn)行解析,然后再執(zhí)行解析得到的系統(tǒng)可執(zhí)行代碼文件以生成視圖體系。
優(yōu)選地,在生成視圖體系之后還包括:保存系統(tǒng)可執(zhí)行代碼文件。
腳本型操作系統(tǒng)和編譯型操作系統(tǒng)均可以將生成視圖體系的系統(tǒng)可執(zhí)行代碼文件保存起來,然后在下次運(yùn)行時,直接從本地獲取該系統(tǒng)可執(zhí)行代碼文件,并生成對應(yīng)的視圖體系,從而提升生成視圖體系的效率。
優(yōu)選地,該結(jié)構(gòu)性語言文件是xml或json文件。
可擴(kuò)展標(biāo)記語言xml是標(biāo)準(zhǔn)通用標(biāo)記語言的子集,是一種用于標(biāo)記電子文件使其具有結(jié)構(gòu)性的標(biāo)記語言。在電子計算機(jī)中,標(biāo)記指計算機(jī)所能理解的信息符號,通過此種標(biāo)記,計算機(jī)之間可以處理包含各種的信息比如文章等。它可以用來標(biāo)記數(shù)據(jù)、定義數(shù)據(jù)類型,是一種允許用戶對自己的標(biāo)記語言進(jìn)行定義的源語言。Xml非常適合萬維網(wǎng)傳輸,提供統(tǒng)一的方法來描述和交換獨(dú)立于應(yīng)用程序或供應(yīng)商的結(jié)構(gòu)化數(shù)據(jù)。是Internet環(huán)境中跨平臺的、依賴于內(nèi)容的技術(shù),也是當(dāng)今處理分布式結(jié)構(gòu)信息的有效工具。
json是一種輕量級的數(shù)據(jù)交換格式,是基于ECMAScript的一個子集。json采用完全獨(dú)立于語言的文本格式,但是也使用了類似于C語言家族的習(xí)慣(包括C、C++、C#、Java、JavaScript、Perl、Python等)。這些特性使json成為理想的數(shù)據(jù)交換語言。易于人閱讀和編寫,同時也易于機(jī)器解析和生成(網(wǎng)絡(luò)傳 輸速率)。
優(yōu)選地,系統(tǒng)可執(zhí)行代碼文件是javascript文件。
javascript是一種直譯式腳本語言,是一種動態(tài)類型、弱類型、基于原型的語言,內(nèi)置支持類型。它的解釋器被稱為JavaScript引擎,為瀏覽器的一部分,是廣泛用于客戶端的腳本語言。
除javascript以外,系統(tǒng)可執(zhí)行代碼文件也可以是python文件、java文件、二進(jìn)制代碼文件等,本申請對此不作限制。
采用本申請實(shí)施例中的視圖體系生成方法,如果結(jié)構(gòu)性語言文件已經(jīng)轉(zhuǎn)化為系統(tǒng)可執(zhí)行代碼文件,則可直接執(zhí)行系統(tǒng)可執(zhí)行代碼文件,得到對應(yīng)的視圖體系;否則解析結(jié)構(gòu)性語言文件,得到對應(yīng)的視圖體系,并將解析結(jié)果保存起來,這樣第二次執(zhí)行時,可直接執(zhí)行生成的系統(tǒng)可執(zhí)行代碼文件,獲得對應(yīng)的視圖體系。
采用本申請實(shí)施例中的視圖體系生成方法,先獲取由結(jié)構(gòu)性語言文件轉(zhuǎn)換得到的系統(tǒng)可執(zhí)行代碼文件,并運(yùn)行該系統(tǒng)可執(zhí)行代碼以生成視圖體系,使得終端側(cè)能夠直接運(yùn)行系統(tǒng)可執(zhí)行代碼以生成視圖體系,效率較高;并且用戶在服務(wù)器側(cè)能夠使用結(jié)構(gòu)性語言文件進(jìn)行視圖體系的設(shè)計,方便了用戶。
圖2為本申請實(shí)施例二所示的視圖體系的生成方法流程圖。
如圖2所示,根據(jù)本申請實(shí)施例二所示的視圖體系的生成方法包括以下步驟:
S202,生成用于生成視圖體系的結(jié)構(gòu)性語言文件;
S204,將結(jié)構(gòu)性語言文件轉(zhuǎn)換為腳本型操作系統(tǒng)的系統(tǒng)可執(zhí)行代碼文件;
S206,根據(jù)待生成視圖體系的終端的操作系統(tǒng)類型,將結(jié)構(gòu)性語言文件或系統(tǒng)可執(zhí)行代碼文件發(fā)送至終端,操作系統(tǒng)類型包括腳本型操作系統(tǒng)和編譯型操作系統(tǒng)。
在具體實(shí)施時,對于腳本型操作系統(tǒng),如javascript,python等;服務(wù)器可 以預(yù)先將用戶編寫的用于生成視圖體系的結(jié)構(gòu)性語言文件轉(zhuǎn)換為系統(tǒng)可執(zhí)行代碼文件。例如,IDE后臺在獲取到用戶設(shè)計好的結(jié)構(gòu)性語言json文件后,預(yù)先運(yùn)行該json文件以轉(zhuǎn)換為javascript文件,在后續(xù)終端需要生成視圖時,直接將該javascript文件發(fā)送到終端執(zhí)行即可。
在具體實(shí)施時,對于腳本型操作系統(tǒng),如為javascript,本申請實(shí)施例中的系統(tǒng)可執(zhí)行代碼文件可以是javascript文件;如為python,本申請實(shí)施例中的系統(tǒng)可執(zhí)行代碼文件可以是python文件;對于編譯型操作系統(tǒng),如android,本申請實(shí)施例中的系統(tǒng)可執(zhí)行代碼文件可以是二進(jìn)制代碼文件,本申請對此不作限制。
在具體實(shí)施時,根據(jù)待生成視圖體系的終端的操作系統(tǒng)類型,將所述結(jié)構(gòu)性語言文件或系統(tǒng)可執(zhí)行代碼文件發(fā)送至所述終端可以是將結(jié)構(gòu)性語言文件發(fā)送給編譯型操作系統(tǒng),將系統(tǒng)可執(zhí)行代碼文件發(fā)送給腳本型操作系統(tǒng)。
優(yōu)選地,將結(jié)構(gòu)性語言文件轉(zhuǎn)換為腳本型操作系統(tǒng)的系統(tǒng)可執(zhí)行代碼文件具體包括:調(diào)用腳本型操作系統(tǒng)對應(yīng)的解析程序;觸發(fā)解析程序?qū)Y(jié)構(gòu)性語言文件進(jìn)行解析,得到操作系統(tǒng)對應(yīng)的系統(tǒng)可執(zhí)行代碼文件。
以操作系統(tǒng)為javascript為例,視圖設(shè)計的用戶使用json語言設(shè)計視圖體系,IDE后臺讀取json文件,調(diào)用javascript的解析程序,解析得到對應(yīng)的javascript文件。
在具體實(shí)施時,將結(jié)構(gòu)性語言文件轉(zhuǎn)換為系統(tǒng)可執(zhí)行代碼文件時,也可以將結(jié)構(gòu)性語言文件轉(zhuǎn)換為多種腳本型操作系統(tǒng)的系統(tǒng)可執(zhí)行代碼文件;例如,將json文件分別轉(zhuǎn)換為javascript文件、python文件、java文件、二進(jìn)制代碼文件等;如果待生成視圖體系的操作系統(tǒng)是python平臺,則發(fā)送python文件;待生成視圖體系的操作系統(tǒng)是javascript平臺,則發(fā)送javascript文件;待生成視圖體系的操作系統(tǒng)是java平臺,則發(fā)送java文件;待生成視圖體系的操作系統(tǒng)是android平臺,則發(fā)送二進(jìn)制代碼文件;本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,上述內(nèi)容僅用于示例的目的,并不用于限制本申請。
優(yōu)選地,在將結(jié)構(gòu)性語言文件或系統(tǒng)可執(zhí)行代碼文件發(fā)送至終端之前,還包括:接收終端的文件獲取請求,請求攜帶終端操作系統(tǒng)類型。
在具體實(shí)施時,服務(wù)器可以是根據(jù)終端的文件獲取請求向終端發(fā)送文件,并根據(jù)文件獲取請求中攜帶的終端操作系統(tǒng)類型向發(fā)送系統(tǒng)可執(zhí)行代碼文件或結(jié)構(gòu)性語言文件。
在具體實(shí)施時,服務(wù)器還可以主動向終端發(fā)送系統(tǒng)可執(zhí)行代碼文件或結(jié)構(gòu)性語言文件。
采用本申請實(shí)施例中的視圖體系生成方法,服務(wù)器生成用于生成視圖體系的結(jié)構(gòu)性語言文件;將結(jié)構(gòu)性語言文件轉(zhuǎn)換為腳本型操作系統(tǒng)的系統(tǒng)可執(zhí)行代碼文件;根據(jù)待生成視圖體系的終端的操作系統(tǒng)類型,將結(jié)構(gòu)性語言文件或系統(tǒng)可執(zhí)行代碼文件發(fā)送至終端,使得用戶在服務(wù)器側(cè)能夠使用結(jié)構(gòu)性語言文件進(jìn)行視圖體系的設(shè)計,方便了用戶;并且終端側(cè)能夠直接運(yùn)行系統(tǒng)可執(zhí)行代碼以生成視圖體系,效率較高。
基于同一發(fā)明構(gòu)思,本申請實(shí)施例中還提供了一種視圖體系的生成裝置,由于該裝置解決問題的原理與本申請實(shí)施例所提供的方法相似,因此該裝置的實(shí)施可以參見方法的實(shí)施,重復(fù)之處不再贅述。
圖3為本申請實(shí)施例三所示視圖體系的生成裝置的結(jié)構(gòu)示意圖。
如圖3所示,根據(jù)本申請實(shí)施例三所示視圖體系的生成裝置300,包括:獲取模塊302,用于獲取用于生成視圖體系的系統(tǒng)可執(zhí)行代碼文件,其中,系統(tǒng)可執(zhí)行代碼文件是由結(jié)構(gòu)性語言文件轉(zhuǎn)換得到的;執(zhí)行模塊304,用于執(zhí)行系統(tǒng)可執(zhí)行代碼文件;視圖生成模塊306,用于生成視圖體系。
優(yōu)選地,本申請實(shí)施例二所示視圖體系的生成裝置300還包括:判斷模塊,用于判斷本地是否存在用于生成視圖體系的系統(tǒng)可執(zhí)行代碼文件。
優(yōu)選地,若判斷模塊的判斷結(jié)果為存在,則獲取模塊具體用于從本地獲取系統(tǒng)可執(zhí)行代碼文件。
優(yōu)選地,若判斷模塊的判斷結(jié)果為不存在,則判斷模塊進(jìn)一步用于判斷本地操作系統(tǒng)類型,類型包括腳本型操作系統(tǒng)和編譯型操作系統(tǒng)。
優(yōu)選地,若本地操作系統(tǒng)為腳本型操作系統(tǒng),則獲取模塊具體包括:請求發(fā)送子模塊,用于向服務(wù)器發(fā)送文件獲取請求,請求中攜帶本地操作系統(tǒng)類型;第一文件接收子模塊,用于從服務(wù)器接收系統(tǒng)可執(zhí)行代碼文件。
優(yōu)選地,若本地操作系統(tǒng)為編譯型操作系統(tǒng),則獲取模塊具體包括:請求發(fā)送子模塊,用于向服務(wù)器發(fā)送文件獲取請求,請求中攜帶本地操作系統(tǒng)類型;第二文件接收子模塊,用于從服務(wù)器接收用于生成視圖體系的結(jié)構(gòu)性語言文件;解析子模塊,用于調(diào)用本地解析程序?qū)Y(jié)構(gòu)性語言文件進(jìn)行解析,得到系統(tǒng)可執(zhí)行代碼文件。
優(yōu)選地,本申請實(shí)施例二所示視圖體系的生成裝置還包括:保存模塊,用于保存系統(tǒng)可執(zhí)行代碼文件。
優(yōu)選地,該結(jié)構(gòu)性語言文件是xml或json文件。
優(yōu)選地,系統(tǒng)可執(zhí)行代碼文件是javascript文件。
為了描述的方便,以上各裝置的各部分以功能分為各種部件或單元分別描述。當(dāng)然,在實(shí)施本申請時可以把各部件或單元的功能在同一個或多個軟件或硬件中實(shí)現(xiàn)。
采用本申請實(shí)施例中的視圖體系生成裝置,先獲取由結(jié)構(gòu)性語言文件轉(zhuǎn)換得到的系統(tǒng)可執(zhí)行代碼文件,并運(yùn)行該系統(tǒng)可執(zhí)行代碼以生成視圖體系,使得終端側(cè)能夠直接運(yùn)行系統(tǒng)可執(zhí)行代碼以生成視圖體系,效率較高;并且用戶在服務(wù)器側(cè)能夠使用結(jié)構(gòu)性語言文件進(jìn)行視圖體系的設(shè)計,方便了用戶。
圖4為本申請實(shí)施例四所示視圖體系的生成裝置的結(jié)構(gòu)示意圖。
如圖4所示,根據(jù)本申請實(shí)施例四所示視圖體系的生成裝置400,包括:文件生成模塊402,用于生成用于生成視圖體系的結(jié)構(gòu)性語言文件;轉(zhuǎn)換模塊404,用于將結(jié)構(gòu)性語言文件轉(zhuǎn)換為腳本型操作系統(tǒng)的系統(tǒng)可執(zhí)行代碼文件; 發(fā)送模塊406,用根據(jù)待生成視圖體系的終端的操作系統(tǒng)類型,將結(jié)構(gòu)性語言文件或系統(tǒng)可執(zhí)行代碼文件發(fā)送至終端,操作系統(tǒng)類型包括腳本型操作系統(tǒng)和編譯型操作系統(tǒng)。
優(yōu)選地,轉(zhuǎn)換模塊具體包括:調(diào)用子模塊,用于調(diào)用腳本型操作系統(tǒng)對應(yīng)的解析程序;觸發(fā)子模塊,用于觸發(fā)解析程序?qū)Y(jié)構(gòu)性語言文件進(jìn)行解析,得到操作系統(tǒng)對應(yīng)的系統(tǒng)可執(zhí)行代碼文件。
優(yōu)選地,本申請實(shí)施例四所示視圖體系的生成裝置還包括:請求接收模塊,用于接收終端的文件獲取請求,請求攜帶所述終端操作系統(tǒng)類型。
采用本申請實(shí)施例中的視圖體系生成裝置,能夠?qū)⒔Y(jié)構(gòu)性語言文件轉(zhuǎn)換為腳本型操作系統(tǒng)的系統(tǒng)可執(zhí)行代碼文件;再根據(jù)待生成視圖體系的終端的操作系統(tǒng)類型,將結(jié)構(gòu)性語言文件或系統(tǒng)可執(zhí)行代碼文件發(fā)送至終端,使得用戶在服務(wù)器側(cè)能夠使用結(jié)構(gòu)性語言文件進(jìn)行視圖體系的設(shè)計,方便了用戶;并且終端側(cè)能夠直接運(yùn)行系統(tǒng)可執(zhí)行代碼以生成視圖體系,效率較高。
基于同一發(fā)明構(gòu)思,本申請實(shí)施例中還提供了一種視圖體系的生成系統(tǒng),由于該系統(tǒng)解決問題的原理與本申請實(shí)施例所提供的方法相似,因此該系統(tǒng)的實(shí)施可以參見方法的實(shí)施,重復(fù)之處不再贅述。
圖5為本申請實(shí)施例五所示視圖體系的生成系統(tǒng)的結(jié)構(gòu)示意圖。
如圖5所示,根據(jù)本申請實(shí)施例五所示視圖體系的生成系統(tǒng)500,包括:終端502,包括視圖體系生成裝置300;服務(wù)器504,包括視圖體系生成裝置400。
采用本申請實(shí)施例中的視圖體系生成系統(tǒng),使得用戶在服務(wù)器側(cè)能夠使用結(jié)構(gòu)性語言文件進(jìn)行視圖體系的設(shè)計,方便了用戶;并且終端側(cè)能夠直接運(yùn)行系統(tǒng)可執(zhí)行代碼以生成視圖體系,效率較高。
圖6為本申請實(shí)施例六所示視圖體系的生成方法的流程示意圖。
如圖6所示,根據(jù)本申請實(shí)施例六所示視圖體系的生成方法包括以下步驟:
S602,用戶編寫xml/json等結(jié)構(gòu)性布局文件;
S604,IDE后臺判斷是否能夠生成對應(yīng)的系統(tǒng)可執(zhí)行代碼文件,如果是,則執(zhí)行S606,如果否,則執(zhí)行S608;
S606,生成對應(yīng)的系統(tǒng)可執(zhí)行代碼文件,并執(zhí)行S608;比如當(dāng)系統(tǒng)開發(fā)語言為javascript時,將視圖體系以json對象的方式表示,編程軟件IDE后臺讀取這個json文件,將其轉(zhuǎn)化為javascript代碼文件;
S608,打包成安裝文件;如果不能生成對應(yīng)的系統(tǒng)可執(zhí)行代碼文件,則直接打包成安裝文件;
S610,在第一次執(zhí)行安裝文件時,首先判斷結(jié)構(gòu)性語言文件是否已經(jīng)轉(zhuǎn)化為系統(tǒng)可執(zhí)行代碼文件,如果是,則執(zhí)行S612,如果否,則執(zhí)行S614;
S612,執(zhí)行生成的系統(tǒng)可執(zhí)行代碼文件,得到對應(yīng)的視圖體系;
S614,操作系統(tǒng)調(diào)用解析程序解析結(jié)構(gòu)性語言文件;
S616,保存解析結(jié)果。
采用本申請實(shí)施例中的視圖體系生成方法,用戶能夠使用結(jié)構(gòu)性語言文件進(jìn)行視圖體系的設(shè)計,方便了用戶;并且在運(yùn)行時,可直接運(yùn)行系統(tǒng)可執(zhí)行代碼以生成視圖體系,效率較高。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請的實(shí)施例可提供為方法、系統(tǒng)、或計算機(jī)程序產(chǎn)品。因此,本申請可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請可采用在一個或多個其中包含有計算機(jī)可用程序代碼的計算機(jī)可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實(shí)施的計算機(jī)程序產(chǎn)品的形式。
本申請是參照根據(jù)本申請實(shí)施例的方法、設(shè)備(系統(tǒng))、和計算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/ 或方框的結(jié)合??商峁┻@些計算機(jī)程序指令到通用計算機(jī)、專用計算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機(jī)器,使得通過計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機(jī)程序指令也可存儲在能引導(dǎo)計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機(jī)可讀存儲器中,使得存儲在該計算機(jī)可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機(jī)程序指令也可裝載到計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機(jī)實(shí)現(xiàn)的處理,從而在計算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
盡管已描述了本申請的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本申請范圍的所有變更和修改。
顯然,本領(lǐng)域的技術(shù)人員可以對本申請進(jìn)行各種改動和變型而不脫離本申請的精神和范圍。這樣,倘若本申請的這些修改和變型屬于本申請權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本申請也意圖包含這些改動和變型在內(nèi)。