基于原生開發(fā)語言實現(xiàn)跨平臺應(yīng)用開發(fā)的系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計算機軟件技術(shù)領(lǐng)域,尤其涉及企業(yè)移動應(yīng)用技術(shù)領(lǐng)域,具體是指一 種基于原生開發(fā)語言實現(xiàn)跨平臺應(yīng)用開發(fā)的系統(tǒng)及方法。
【背景技術(shù)】
[0002] 隨著智能移動設(shè)備高速發(fā)展和普及,移動網(wǎng)絡(luò)技術(shù)的不斷突破,移動互聯(lián)網(wǎng)已經(jīng) 深刻地影響了人們的生活方式,移動應(yīng)用程序已經(jīng)逐漸取代一些電腦的程序,甚至有部分 人士已經(jīng)完全脫離臺式電腦,移動智能設(shè)備已經(jīng)超越了傳統(tǒng)的PC,成為最主要的上網(wǎng)方式。
[0003] 現(xiàn)在,每臺移動設(shè)備上運行著數(shù)以百計的移動應(yīng)用,諸如交友、娛樂、購物、工作等 很多簡單的生活行為都可以逐漸通過移動設(shè)備上的各類應(yīng)用得到滿足。從移動市場下載安 裝各種移動應(yīng)用已經(jīng)為一種習慣,微信,微博等移動應(yīng)用的下載和安裝量已經(jīng)達到的數(shù)億 的規(guī)模。
[0004] 統(tǒng)計表明,在應(yīng)用市場中,每天都有數(shù)以萬計新應(yīng)用上架,移動應(yīng)用也成為了互聯(lián) 網(wǎng)時代下一大熱點。
[0005] 目前,移動應(yīng)用開發(fā)主要有兩種方式:第一種是使用原生技術(shù)開發(fā)。第二種是使用 web技術(shù)開發(fā)。
[0006] 使用原生技術(shù)開發(fā)是指,針對移動操作系統(tǒng)使用其提供的開發(fā)語言和技術(shù)進行移 動應(yīng)用開發(fā)。目前,Apple的I0S操作系統(tǒng)和Google的Android操作系統(tǒng)占移動操作系統(tǒng) 95%以上的市場份額。在I0S移動操作系統(tǒng)上開發(fā)原生移動需要使用I0S提供的開發(fā)工 具Xcode和開發(fā)語言O(shè)bject-c。在Android移動操作系統(tǒng)上進行原生應(yīng)用開發(fā)需要使用 eclipse開發(fā)工具和Android開發(fā)語言。I0S和Android提供的各自的移動應(yīng)用打包工具, 應(yīng)用開發(fā)完成后,需要使用各自的打包工具進行打包,然后發(fā)布到應(yīng)用市場。使用原生開發(fā) 可以獲得最佳的性能和用戶體驗,更好的貼合操作系統(tǒng),最充分的使用操作系統(tǒng)的能力。
[0007] 使用web技術(shù)開發(fā)是指使用Html、Javscript、CSS語言進行移動應(yīng)用開發(fā)。Web 開發(fā)技術(shù)復雜度比較低,學習和使用相對比較簡單。使用Web技術(shù)開發(fā)的移動應(yīng)用可以部 署在Web服務(wù)器上,通過移動設(shè)備上的瀏覽器或者通過使用WebView等組件進行訪問。
[0008] 使用原生技術(shù)開發(fā)移動應(yīng)用主要不足之處在于:第一,技術(shù)復雜度高,針對不同的 移動操作系統(tǒng)需要使用不同的開發(fā)工具和開發(fā)語言,開發(fā)工具的使用方式和語言的技術(shù)細 節(jié)以及操作系統(tǒng)的特性都不一樣,比如Object-C是屬于C系列的語言,而Anroid是屬于 java系統(tǒng)的開發(fā)語言,這極大的增加了開發(fā)人員的學習成本。第二,開發(fā)維護工作量大,一 個移動應(yīng)用需要針對不同操作系統(tǒng)開發(fā)和測試,開發(fā)和維護的工作量成倍增加。
[0009] 使用Web技術(shù)開發(fā)移動應(yīng)用主要的不足之處在于:第一,開發(fā)的移動應(yīng)用性能和 用戶體驗存在問題。第二,不能使用移動設(shè)備提供的能力,如攝像頭,定位等。
【發(fā)明內(nèi)容】
[0010] 本發(fā)明的目的是克服了上述現(xiàn)有技術(shù)的原生應(yīng)用開發(fā)技術(shù)復雜度高、開發(fā)和維護 工作量大的缺點,提供了一種能夠?qū)崿F(xiàn)于移動操作系統(tǒng)、原生開發(fā)語言無關(guān)、開發(fā)簡單、效 率高、系統(tǒng)架構(gòu)簡單、穩(wěn)定可靠、使用維護方便快捷、應(yīng)用范圍廣泛的基于原生開發(fā)語言實 現(xiàn)跨平臺應(yīng)用開發(fā)的系統(tǒng)及方法。
[0011] 為了實現(xiàn)上述目的,本發(fā)明的基于原生開發(fā)語言實現(xiàn)跨平臺應(yīng)用開發(fā)的系統(tǒng)及方 法具有如下構(gòu)成:
[0012] 該基于原生開發(fā)語言實現(xiàn)跨平臺應(yīng)用開發(fā)的系統(tǒng),其主要特點是,所述的系統(tǒng)包 括:
[0013] 圖形化移動應(yīng)用開發(fā)工具,用以進行移動應(yīng)用的開發(fā)和移動應(yīng)用的編譯導出;
[0014] 移動應(yīng)用發(fā)布平臺,用以將移動應(yīng)用向外發(fā)布;
[0015] 移動客戶端,用以運行移動應(yīng)用。
[0016] 較佳地,所述的圖形化移動應(yīng)用開發(fā)工具包括:
[0017] 移動應(yīng)用項目管理模塊,用以進行移動應(yīng)用的創(chuàng)建、修改和刪除;
[0018] HTML文件管理模塊,用以進行HTML格式文件的創(chuàng)建、修改和刪除;
[0019] Javascript文件管理模塊,用以進行Javascript格式文件的創(chuàng)建、修改和刪除;
[0020] CSS文件管理模塊,用以進行CSS代碼的錄入、修改和保存;
[0021] 移動應(yīng)用編譯引擎模塊,用以在移動應(yīng)用導出時對移動應(yīng)用項目進行編譯;
[0022] 移動應(yīng)用導出模塊,用以將移動應(yīng)用導出成移動應(yīng)用部署包。
[0023] 較佳地,所述的移動應(yīng)用發(fā)布平臺包括:
[0024] 移動應(yīng)用上傳模塊,用以基于Web將移動應(yīng)用上傳;
[0025] 移動應(yīng)用管理模塊,用以對上傳的移動應(yīng)用進行管理;
[0026] 移動應(yīng)用發(fā)布模塊,用以對外提供移動應(yīng)用的下載渠道。
[0027] 較佳地,所述的移動客戶端包括:
[0028] 更新引擎模塊,用以從所述的移動應(yīng)用發(fā)布平臺下載移動應(yīng)用到客戶端;
[0029] Javscript引擎模塊,用以解析、加載和運行Javascript代碼;
[0030] CSS引擎模塊,用以解析、加載CSS代碼;
[0031] Bridge模塊,用以進行Javascript代碼和原生代碼之間的通訊;
[0032] Widget管理器,用以加載和管理Widget ;
[0033] n模型模塊,用以對移動應(yīng)用的界面進行描述;
[0034] n渲染引擎模塊,用以根據(jù)n模型,原生的n控件,渲染出原生的n界面。
[0035] 本發(fā)明還涉及一種通過所述的系統(tǒng)基于原生開發(fā)語言實現(xiàn)跨平臺應(yīng)用開發(fā)的方 法,其特征在于,所述的方法包括以下步驟:
[0036] (1)所述的圖形化移動應(yīng)用開發(fā)工具進行移動應(yīng)用的開發(fā);
[0037] (2)所述的圖形化移動應(yīng)用開發(fā)工具進行移動應(yīng)用的編譯導出;
[0038] (3)所述的移動應(yīng)用發(fā)布平臺將移動應(yīng)用向外發(fā)布;
[0039] (4)所述的移動客戶端從所述的移動應(yīng)用發(fā)布平臺上下載并運行移動應(yīng)用。
[0040] 較佳地,所述的圖形化移動應(yīng)用開發(fā)工具進行移動應(yīng)用的開發(fā),包括以下步驟:
[0041] (1-1)圖形化移動應(yīng)用開發(fā)工具讀取控件提示配置文件后使用xml格式解析器對 所述的提示配置文件進行解析并于內(nèi)存中創(chuàng)建控件提示屬性和接口提示模型;
[0042] (1-2)圖形化移動應(yīng)用開發(fā)工具讀取控件編譯配置文件后使用xml格式解析器對 所述的編譯配置文件進行解析生成控件編譯模型;
[0043] (1-3)開發(fā)人員進行移動應(yīng)用開發(fā);
[0044] (1-4)圖形化移動應(yīng)用開發(fā)工具根據(jù)用戶創(chuàng)建項目操作在磁盤上創(chuàng)建移動項目錄 結(jié)構(gòu);
[0045] (1-5)圖形化移動應(yīng)用開發(fā)工具根據(jù)用戶創(chuàng)建文件創(chuàng)造在移動項目錄中創(chuàng)建相應(yīng) 的文件。
[0046] 較佳地,所述的圖形化移動應(yīng)用開發(fā)工具進行移動應(yīng)用的編譯導出,包括以下步 驟:
[0047] (2-1)圖形化移動應(yīng)用開發(fā)工具根據(jù)用戶導出操作請求獲取待編譯移動應(yīng)用項目 的存放目錄;
[0048] (2-2)圖形化移動應(yīng)用開發(fā)工具創(chuàng)建臨時目錄以存放編譯的中間產(chǎn)物;
[0049] (2-3)圖形化移動應(yīng)用開發(fā)工具遍歷項目目錄,在臨時目錄中創(chuàng)建相同的目錄結(jié) 構(gòu),并且把移動項目中除HTML文件和Css文件外的其余文件拷貝到對應(yīng)的臨時目錄中;
[0050] (2-4)圖形化移動應(yīng)用開發(fā)工具對HTML文件和CSS文件進行編譯操作;
[0051] (2-5)圖形化移動應(yīng)用開發(fā)工具對編譯臨時目錄進行壓縮生成可用于發(fā)布的移動 應(yīng)用發(fā)布文件。
[0052] 較佳地,所述的移動應(yīng)用發(fā)布平臺將移動應(yīng)用向外發(fā)布,包括以下步驟:
[0053] (3-1)用戶訪問所述的移動應(yīng)用發(fā)布平臺的移動應(yīng)用上傳界面;
[0054] (3-2)移動應(yīng)用發(fā)布平臺接收上傳文件并在磁盤上保存上傳文件;
[0055] (3-3)移動應(yīng)用發(fā)布平臺在數(shù)據(jù)庫表中記錄發(fā)布移動應(yīng)用的信息。
[0056] 較佳地,所述的移動客戶端下載并運行移動應(yīng)用,包括以下步驟:
[0057] (4-1)移動客戶端從所述的移動應(yīng)用發(fā)布平臺下載移動應(yīng)用文件;
[0058] (4-2)移動客戶端對下載的移動應(yīng)用文件進行解壓至移動應(yīng)用端應(yīng)用目錄;
[0059] (4-3)移動客戶端解析CSS編譯文件并在內(nèi)存中形成CSS模型;
[0060] (4-4)移動客戶端讀取移動應(yīng)用配置文件,從配置文件中獲取移動應(yīng)用的首頁 URL;
[0061] (4-5)移動客戶端對首頁URL進行轉(zhuǎn)換,轉(zhuǎn)換成移動客戶端本地的文件路徑;
[0062] (4-6)移動客戶端根據(jù)首頁文件路徑讀取移動客戶端文件中的代碼;
[0063] (4-7)移動客戶端運行讀取的文件中的代碼,在Javascript引擎模塊中形成界面 控件模型樹;
[0064] (4-8)移動客戶端在Javascript引擎模塊中把界面控件模型樹通過JS0N序列化 成字符串并調(diào)用bridge通道,把序列化的字符串傳遞給原生渲染引擎;
[0065] (4-9)移動客戶端對json字串符反序列化,在原生端形成界面控件模型樹;
[0066] (4-10)移動客戶端采用原生渲染引擎模塊遍歷控件模型樹,依次創(chuàng)建原生控件;
[0067] (4-11)移動客戶端采用原生渲染引擎模塊調(diào)用