本發(fā)明屬于涉及信息技術(shù)領(lǐng)域,尤其涉及一種HTML5格式移動應(yīng)用開發(fā)平臺的代碼自動生成方法。
背景技術(shù):
隨著信息技術(shù)的在廣泛的運用,越來越多的工作可以通過智能移動終端來完成,這也徹底改變了人們生活和工作的方式?,F(xiàn)有很多企業(yè)為了方便員工,將很多原來必須由計算機完成的工作遷移到智能移動終端上;在遷移時大多是將計算機版本的應(yīng)用程序直接轉(zhuǎn)換為智能終端版本的應(yīng)用程序。但是這種遷移存在著以下的缺陷:
1、難以應(yīng)對的終端多樣性的問題面對眾多的移動操作系統(tǒng):如何解決多平臺開發(fā)的技術(shù)差異性,如何降低移動應(yīng)用開發(fā)的復(fù)雜度,如何在提高移動應(yīng)用的交付速度的同時又保證高質(zhì)的用戶體驗?
2、企業(yè)業(yè)務(wù)系統(tǒng)的集成問題:后端的集成問題,一直是企業(yè)領(lǐng)域傳統(tǒng)難題,如何利用已有資源,快速的集成各種異構(gòu)系統(tǒng)?
3、移動應(yīng)用更新發(fā)布的問題:如何快速的同步的發(fā)布應(yīng)用,如何做到應(yīng)用無感知更新,如何做到應(yīng)用增量更新,如果避免應(yīng)用被第三方審核?
4、移動互聯(lián)網(wǎng)特有的安全問題:如何避免移動終端易丟失造成的企業(yè)數(shù)據(jù)安全問題,如何防止無線網(wǎng)絡(luò)的開放性易竊聽問題,如何解決移動終端公私混用的造成的安全問題
針對上述問題,目前國際國內(nèi)的解決方案層出不窮,方法都是一個,即使用HTML5來替代原生代碼,并再此基礎(chǔ)上建立一個移動應(yīng)用開發(fā)平臺?;贖TML5的移動應(yīng)用開發(fā)平臺雖然解決了上述諸多的問題,但其本身的問題也迅速爆發(fā)出來,包括:
1、性能問題:HTML5開發(fā)的APP使用時的流程度明顯較原生APP慢;
2、功能問題:部分原生的功能無法調(diào)用。
HTML5應(yīng)用APP雖然統(tǒng)一了代碼標準,大幅降低了開發(fā)成本,但是由于HTML5的開發(fā)人員水平參差不齊,造成了產(chǎn)品性能和功能嚴重滯后的問題。
技術(shù)實現(xiàn)要素:
針對現(xiàn)有技術(shù)中采用HTML5的應(yīng)用APP存在的問題,本發(fā)明要解決的技術(shù)問題是提供一種有效且高效的面HTML5格式移動應(yīng)用開發(fā)平臺的代碼自動生成方法,能夠提高應(yīng)用程序在遷移到智能終端時的效率。
為了解決上述問題,本發(fā)明實施例提出了一種HTML5格式移動應(yīng)用開發(fā)平臺的代碼自動生成方法,包括:
生成可運行代碼模板,并將多個可運行代碼模板生成一個源庫;
對待遷移的應(yīng)用程序的源代碼進行分析以將其中固定代碼段和動態(tài)代碼段進行分離;將其中的固定代碼段保留,并將其中的每一動態(tài)代碼段分別生成其對應(yīng)的基于Freemarker模板引擎的變量表達式;
利用Freemarker模板引擎以及預(yù)生成的可運行代碼模板,將固定代碼段和根據(jù)動態(tài)代碼段生成的變量表達式,生成可執(zhí)行代碼。
其中,所述對待遷移的應(yīng)用程序的源代碼進行分析以將其中固定代碼段和動態(tài)代碼段進行分離,具體包括:
利于預(yù)存儲的固定代碼庫對所述待遷移的應(yīng)用程序的源代碼進行分析以將其中固定代碼段和動態(tài)代碼段進行分離,其中所述固定代碼庫內(nèi)設(shè)有根據(jù)歷史數(shù)據(jù)提取出的固定代碼段樣本。
其中,所述方法中利用開源的eclipse開發(fā)平臺生成可運行代碼模板,所述可運行代碼模板是基于HTML5和/或Java代碼算法。
本發(fā)明的上述技術(shù)方案的有益效果如下:上述的技術(shù)方案對提高項目建設(shè)效率和質(zhì)量、提升項目建設(shè)管理水平起到積極的推動作用,其直接和間接效益如下所述:
1、直接效益分析
通過高質(zhì)量的代碼模板自動生成代碼,統(tǒng)一了HTML5和Java等代碼的編寫標準,這樣就解決了因為程序員水平參差不齊導(dǎo)致的代碼質(zhì)量和性能低下的問題,同時也大大提高了開發(fā)人員的工作效率,進一步的降低了HTML5移動應(yīng)用的開發(fā)成本。
2、間接效益分析
通過長時間的模板積累,可以期待能形成一套完備的產(chǎn)品模板庫,產(chǎn)品代碼的開發(fā)和維護不再過度依賴高水平的開發(fā)人員,開發(fā)人員的交接成本就大幅降低,企業(yè)也不用擔心項目組研發(fā)人員過于頻繁的流動了。
附圖說明
圖1為本發(fā)明實施例的待遷移的應(yīng)用程序的源代碼的示意圖;
圖2為將圖1中的源代碼分離為固定代碼和業(yè)務(wù)相關(guān)代碼后的代碼段示意圖;
圖3為本發(fā)明實施例的流程示意圖。
具體實施方式
為使本發(fā)明要解決的技術(shù)問題、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖及具體實施例進行詳細描述。
本發(fā)明實施例提出了一種如圖3所示的HTML5格式移動應(yīng)用開發(fā)平臺的代碼自動生成方法,能夠?qū)Υa進行分析以提取代碼的結(jié)構(gòu),并根據(jù)預(yù)設(shè)的代碼模板自動生成代碼。具體包括:
生成可運行代碼模板,并將多個可運行代碼模板生成一個源庫;
對待遷移的應(yīng)用程序的源代碼進行分析以將其中固定代碼段和動態(tài)代碼段進行分離;將其中的固定代碼段保留,并將其中的每一動態(tài)代碼段分別生成其對應(yīng)的基于Freemarker模板引擎的變量表達式;
利用Freemarker模板引擎以及預(yù)生成的可運行代碼模板,將固定代碼段和根據(jù)動態(tài)代碼段生成的變量表達式,生成可執(zhí)行代碼。
其中,所述對待遷移的應(yīng)用程序的源代碼進行分析以將其中固定代碼段和動態(tài)代碼段進行分離,具體包括:
利于預(yù)存儲的固定代碼庫對所述待遷移的應(yīng)用程序的源代碼進行分析以將其中固定代碼段和動態(tài)代碼段進行分離,其中所述固定代碼庫內(nèi)設(shè)有根據(jù)歷史數(shù)據(jù)提取出的固定代碼段樣本。
其中,所述方法中利用開源的eclipse開發(fā)平臺生成可運行代碼模板,所述可運行代碼模板是基于HTML5和/或Java代碼算法。
具體的,本發(fā)明實施例同時將代碼分析提取功能和自動身材代碼算法結(jié)合起來,具體功能如下:
1、代碼模板的導(dǎo)入功能:本專利使用開源的eclipse開發(fā)平臺,編寫高質(zhì)量的可運行代碼,然后將其導(dǎo)入到模板庫成為一鍵生成代碼的源庫;
2、自動代碼分析功能:通過源庫代碼分析算法引擎,算法會分析和剝離源庫代碼中固定代碼片段和動態(tài)代碼片段,然后將剝離出來的動態(tài)代碼片段生成各自對應(yīng)的Freemarker模板語言變量表達式,最后生成完整的Freemarker最終可運行模板代碼;
3、模板到正式代碼的生成功能:通過使用FreeMarker,結(jié)合移動應(yīng)用開發(fā)平臺的實際結(jié)構(gòu)和環(huán)境,生成對應(yīng)的最終代碼。
其中,自動代碼分析可以采用以下方法:
代碼分析是自動提取已有代碼中的固定代碼和業(yè)務(wù)相關(guān)代碼,并將固定代碼保留,將業(yè)務(wù)相關(guān)代碼變?yōu)榭勺冏兞啃问?,如下圖1。已有代碼經(jīng)過分析提取固定代碼和業(yè)務(wù)代碼后,可生成如圖2所示的代碼。由圖1和圖2可看出,代碼分析和提取的重點在于區(qū)分固定代碼和業(yè)務(wù)相關(guān)代碼,這個功能需要長期的實踐和修改才能日趨完善和穩(wěn)定。
其中,自動代碼生成方案可以采用以下方法:
使用FreeMarker,通過引用模板文件(.ftl)與模板數(shù)據(jù),自動生成對應(yīng)的可執(zhí)行代碼。
以上所述是本發(fā)明的優(yōu)選實施方式,應(yīng)當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明所述原理的前提下,還可以作出若干改進和潤飾,這些改進和潤飾也應(yīng)視為本發(fā)明的保護范圍。