本發(fā)明涉及移動(dòng)互聯(lián)網(wǎng)領(lǐng)域,具體地說(shuō)是一種持續(xù)集成的混生移動(dòng)應(yīng)用在線生成服務(wù)。
背景技術(shù):
隨著智能移動(dòng)終端的普及和移動(dòng)互聯(lián)網(wǎng)的飛速發(fā)展,移動(dòng)應(yīng)用的市場(chǎng)需求不斷擴(kuò)大,PC上的應(yīng)用和功能開(kāi)始往移動(dòng)終端擴(kuò)展。而面對(duì)眾多的同質(zhì)化移動(dòng)應(yīng)用,用戶對(duì)移動(dòng)應(yīng)用的品質(zhì)要求也在逐步提升。對(duì)于移動(dòng)開(kāi)發(fā)者來(lái)說(shuō),要從PC軟件開(kāi)發(fā)向移動(dòng)開(kāi)發(fā)過(guò)渡,一方面要熟悉移動(dòng)終端的諸多新功能,另一方面也要考慮多系統(tǒng)多屏幕尺寸的兼容性。若采用原生語(yǔ)言開(kāi)發(fā),則存在以下幾個(gè)問(wèn)題:
(1)針對(duì)多個(gè)操作系統(tǒng)的多種原生語(yǔ)言的學(xué)習(xí)成本高,人力資源需求大;
(2)同一軟件在多個(gè)操作系統(tǒng)下的開(kāi)發(fā)過(guò)程重復(fù),開(kāi)發(fā)成本浪費(fèi);
(3)多版本的迭代過(guò)程緩慢,需求無(wú)法快速得到響應(yīng)和滿足;
在這樣的情況下,業(yè)界開(kāi)發(fā)了許多跨平臺(tái)的移動(dòng)應(yīng)用開(kāi)發(fā)框架與開(kāi)發(fā)系統(tǒng),其基本的實(shí)現(xiàn)方式為:允許用戶通過(guò)HTML、CSS和JavaScript搭建前端功能,然后將其封裝入不同平臺(tái)的底層容器中,實(shí)現(xiàn)多平臺(tái)的分發(fā)。
然而當(dāng)前混生應(yīng)用開(kāi)發(fā)的發(fā)布與更新應(yīng)用流程中存在較大不便。一方面,應(yīng)用的開(kāi)發(fā)測(cè)試流程復(fù)雜,開(kāi)發(fā)過(guò)程涉及許多重復(fù)作業(yè),影響開(kāi)發(fā)效率;另一方面,應(yīng)用的發(fā)布和更新流程復(fù)雜,各應(yīng)用市場(chǎng)的審核與響應(yīng)時(shí)間長(zhǎng),容易造成版本不一致,最終導(dǎo)致迭代過(guò)程緩慢,需求無(wú)法快速得到響應(yīng)和滿足。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的技術(shù)任務(wù)是針對(duì)以上不足之處,提供一種持續(xù)集成的混生移動(dòng)應(yīng)用在線生成服務(wù),用以高效快速的開(kāi)發(fā)和發(fā)布混生應(yīng)用,同時(shí)解決當(dāng)前移動(dòng)開(kāi)發(fā)和現(xiàn)有移動(dòng)應(yīng)用開(kāi)發(fā)系統(tǒng)所遇到的審核時(shí)間長(zhǎng)、版本不統(tǒng)一等問(wèn)題。
一種持續(xù)集成的混生移動(dòng)應(yīng)用在線生成服務(wù),其實(shí)現(xiàn)過(guò)程為:
一種持續(xù)集成的混生移動(dòng)應(yīng)用在線生成服務(wù),包括前端應(yīng)用層、底層運(yùn)行環(huán)境和后臺(tái)支撐系統(tǒng);
前端應(yīng)用層通過(guò)HTML、CSS、JavaScript所構(gòu)成的工程實(shí)現(xiàn)混生移動(dòng)應(yīng)用主體開(kāi)發(fā),支持與底層運(yùn)行環(huán)境交互以實(shí)現(xiàn)對(duì)設(shè)備功能的調(diào)用,支持與底層運(yùn)行環(huán)境交互以實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)數(shù)據(jù)的訪問(wèn);
底層運(yùn)行環(huán)境通過(guò)通信組件與后臺(tái)支撐系統(tǒng)交互、通過(guò)下載器模塊進(jìn)行前端應(yīng)用層壓縮包或編碼包的下載與更新、通過(guò)解釋器模塊對(duì)已壓縮或編碼的前端應(yīng)用層進(jìn)行解壓縮或解碼、通過(guò)運(yùn)行時(shí)環(huán)境為前端應(yīng)用層開(kāi)放數(shù)據(jù)與功能接口以實(shí)現(xiàn)對(duì)設(shè)備功能的調(diào)用;
后臺(tái)支撐系統(tǒng)通過(guò)發(fā)布系統(tǒng)實(shí)現(xiàn)對(duì)前端應(yīng)用層壓縮包或編碼包的分發(fā)、通過(guò)數(shù)據(jù)接口支撐底層運(yùn)行環(huán)境進(jìn)行數(shù)據(jù)查詢(xún)與前端應(yīng)用層壓縮包或編碼包的下載。
其中,前端應(yīng)用層由HTML負(fù)責(zé)主體內(nèi)容呈現(xiàn),CSS負(fù)責(zé)頁(yè)面樣式調(diào)整、JavaScript負(fù)責(zé)前端邏輯的處理。三者確保了應(yīng)用的主體功能是跨平臺(tái)的,并且系統(tǒng)內(nèi)采用響應(yīng)式的前端布局設(shè)計(jì),可自動(dòng)適應(yīng)多種不同屏幕尺寸。同時(shí),通過(guò)底層運(yùn)行環(huán)境暴露的JavaScript接口,前端組件可以直接調(diào)用移動(dòng)終端的原生功能。
進(jìn)一步的,底層運(yùn)行環(huán)境由原生語(yǔ)言編寫(xiě),其中安卓(Android)對(duì)應(yīng)Java,蘋(píng)果操作系統(tǒng)(IOS)對(duì)應(yīng)Objective-C或Swift。系統(tǒng)底層原生層通過(guò)通信組件與后臺(tái)支撐系統(tǒng)交互,以獲取應(yīng)用更新信息、下載信息等;同時(shí)通過(guò)下載器模塊從后臺(tái)支持系統(tǒng)下載前端應(yīng)用層壓縮包或編碼包;通過(guò)解釋器模塊對(duì)已壓縮或編碼的前端應(yīng)用層進(jìn)行解壓縮或解碼;同時(shí)通過(guò)運(yùn)行時(shí)環(huán)境為前端應(yīng)用層開(kāi)放數(shù)據(jù)與功能接口以實(shí)現(xiàn)對(duì)設(shè)備功能的調(diào)用,另外,運(yùn)行時(shí)也負(fù)責(zé)對(duì)以解碼或解壓縮的前端應(yīng)用的清理,應(yīng)用信息請(qǐng)求、更新請(qǐng)求的發(fā)起,以及當(dāng)前應(yīng)用與后臺(tái)系統(tǒng)中應(yīng)用的完整性校驗(yàn)和一致性校驗(yàn)。
進(jìn)一步的,后臺(tái)支撐系統(tǒng)對(duì)實(shí)現(xiàn)語(yǔ)言沒(méi)有特殊要求,可使用Java、PHP、ASP.NET等語(yǔ)言編寫(xiě),同時(shí),傳遞的參數(shù)格式支持字符串、數(shù)組、XML和JSON字符串。開(kāi)發(fā)者可在發(fā)布系統(tǒng)中將前端應(yīng)用層的壓縮包或編碼包(以下簡(jiǎn)稱(chēng)應(yīng)用包)發(fā)布至發(fā)布系統(tǒng)的存儲(chǔ)中,供下載和更新。數(shù)據(jù)接口位底層運(yùn)行環(huán)境提供:1)應(yīng)用一致性校驗(yàn)、2)應(yīng)用完整性校驗(yàn)、3)應(yīng)用包下載、4)應(yīng)用信息(含應(yīng)用包下載地址)獲取等數(shù)據(jù)訪問(wèn)服務(wù)。
本發(fā)明的一種持續(xù)集成的混生移動(dòng)應(yīng)用在線生成服務(wù),具有以下優(yōu)點(diǎn):
在保證體驗(yàn)和安全性的同時(shí),移動(dòng)應(yīng)用開(kāi)發(fā)者可迅速、高效的完成混生應(yīng)用的開(kāi)發(fā)與測(cè)試,并可以縮短發(fā)布流程,降低了開(kāi)發(fā)人員的開(kāi)發(fā)、測(cè)試成本,縮短了開(kāi)發(fā)周期、提高了移動(dòng)應(yīng)用的開(kāi)發(fā)、測(cè)試、發(fā)布效率;
基于上述發(fā)明所述系統(tǒng),可實(shí)現(xiàn)混生應(yīng)用的快速開(kāi)發(fā)和測(cè)試,開(kāi)發(fā)測(cè)試階段的調(diào)試工作無(wú)需再反復(fù)進(jìn)行應(yīng)用打包過(guò)程;同時(shí),混生應(yīng)用在各種發(fā)布渠道發(fā)布時(shí),可實(shí)現(xiàn)一次發(fā)布、多次更新,更新時(shí)無(wú)需進(jìn)行二次審核,加快更新速度;第三,通過(guò)底層運(yùn)行環(huán)境的綜合協(xié)調(diào),可實(shí)現(xiàn)應(yīng)用的自動(dòng)校驗(yàn)、更新、清理和使用,優(yōu)化使用體驗(yàn);第四,原有的混生應(yīng)用可快速遷移至此種生成服務(wù)下,無(wú)需做過(guò)多的改造,方便開(kāi)發(fā)模式的變更。
綜合以上幾點(diǎn),在保證體驗(yàn)和安全性的同時(shí),移動(dòng)應(yīng)用開(kāi)發(fā)者可迅速、高效的完成混生應(yīng)用的開(kāi)發(fā)與測(cè)試,并可以縮短發(fā)布流程,降低了開(kāi)發(fā)人員的開(kāi)發(fā)、測(cè)試成本,縮短了開(kāi)發(fā)周期、提高了移動(dòng)應(yīng)用的開(kāi)發(fā)、測(cè)試、發(fā)布效率。
附圖說(shuō)明
圖1是本發(fā)明對(duì)應(yīng)用發(fā)布使用的全流程示意圖。
具體實(shí)施方式
下面結(jié)合具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明。
一種持續(xù)集成的混生移動(dòng)應(yīng)用在線生成服務(wù),包括前端應(yīng)用層、底層運(yùn)行環(huán)境和后臺(tái)支撐系統(tǒng);
前端應(yīng)用層通過(guò)HTML、CSS、JavaScript所構(gòu)成的工程實(shí)現(xiàn)混生移動(dòng)應(yīng)用主體開(kāi)發(fā),支持與底層運(yùn)行環(huán)境交互以實(shí)現(xiàn)對(duì)設(shè)備功能的調(diào)用,支持與底層運(yùn)行環(huán)境交互以實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)數(shù)據(jù)的訪問(wèn);
底層運(yùn)行環(huán)境通過(guò)通信組件與后臺(tái)支撐系統(tǒng)交互、通過(guò)下載器模塊進(jìn)行前端應(yīng)用層壓縮包或編碼包的下載與更新、通過(guò)解釋器模塊對(duì)已壓縮或編碼的前端應(yīng)用層進(jìn)行解壓縮或解碼、通過(guò)運(yùn)行時(shí)環(huán)境為前端應(yīng)用層開(kāi)放數(shù)據(jù)與功能接口以實(shí)現(xiàn)對(duì)設(shè)備功能的調(diào)用;
后臺(tái)支撐系統(tǒng)通過(guò)發(fā)布系統(tǒng)實(shí)現(xiàn)對(duì)前端應(yīng)用層壓縮包或編碼包的分發(fā)、通過(guò)數(shù)據(jù)接口支撐底層運(yùn)行環(huán)境進(jìn)行數(shù)據(jù)查詢(xún)與前端應(yīng)用層壓縮包或編碼包的下載。
其中,前端應(yīng)用層由HTML負(fù)責(zé)主體內(nèi)容呈現(xiàn),CSS負(fù)責(zé)頁(yè)面樣式調(diào)整、JavaScript負(fù)責(zé)前端邏輯的處理。三者確保了應(yīng)用的主體功能是跨平臺(tái)的,并且系統(tǒng)內(nèi)采用響應(yīng)式的前端布局設(shè)計(jì),可自動(dòng)適應(yīng)多種不同屏幕尺寸。同時(shí),通過(guò)底層運(yùn)行環(huán)境暴露的JavaScript接口,前端組件可以直接調(diào)用移動(dòng)終端的原生功能。
底層運(yùn)行環(huán)境由原生語(yǔ)言編寫(xiě),其中安卓(Android)對(duì)應(yīng)Java,蘋(píng)果操作系統(tǒng)(IOS)對(duì)應(yīng)Objective-C或Swift。系統(tǒng)底層原生層通過(guò)通信組件與后臺(tái)支撐系統(tǒng)交互,以獲取應(yīng)用更新信息、下載信息等;同時(shí)通過(guò)下載器模塊從后臺(tái)支持系統(tǒng)下載前端應(yīng)用層壓縮包或編碼包;通過(guò)解釋器模塊對(duì)已壓縮或編碼的前端應(yīng)用層進(jìn)行解壓縮或解碼;同時(shí)通過(guò)運(yùn)行時(shí)環(huán)境為前端應(yīng)用層開(kāi)放數(shù)據(jù)與功能接口以實(shí)現(xiàn)對(duì)設(shè)備功能的調(diào)用,另外,運(yùn)行時(shí)也負(fù)責(zé)對(duì)以解碼或解壓縮的前端應(yīng)用的清理,應(yīng)用信息請(qǐng)求、更新請(qǐng)求的發(fā)起,以及當(dāng)前應(yīng)用與后臺(tái)系統(tǒng)中應(yīng)用的完整性校驗(yàn)和一致性校驗(yàn)。
后臺(tái)支撐系統(tǒng)對(duì)實(shí)現(xiàn)語(yǔ)言沒(méi)有特殊要求,可使用Java、PHP、ASP.NET等語(yǔ)言編寫(xiě),同時(shí),傳遞的參數(shù)格式支持字符串、數(shù)組、XML和JSON字符串。開(kāi)發(fā)者可在發(fā)布系統(tǒng)中將前端應(yīng)用層的壓縮包或編碼包(以下簡(jiǎn)稱(chēng)應(yīng)用包)發(fā)布至發(fā)布系統(tǒng)的存儲(chǔ)中,供下載和更新。數(shù)據(jù)接口位底層運(yùn)行環(huán)境提供:1)應(yīng)用一致性校驗(yàn)、2)應(yīng)用完整性校驗(yàn)、3)應(yīng)用包下載、4)應(yīng)用信息(含應(yīng)用包下載地址)獲取等數(shù)據(jù)訪問(wèn)服務(wù)。
為了更好的了解本發(fā)明的實(shí)現(xiàn)方式,特說(shuō)明應(yīng)用發(fā)布使用全流程的實(shí)施方式如下,參考圖1:
步驟1:在后臺(tái)支撐系統(tǒng)中,通過(guò)發(fā)布系統(tǒng)將前端應(yīng)用層壓縮包或編碼包(以下簡(jiǎn)稱(chēng)應(yīng)用包)發(fā)布至系統(tǒng)存儲(chǔ)中;
步驟2:底層運(yùn)行環(huán)境的下載器發(fā)起對(duì)應(yīng)用下載和使用的請(qǐng)求;
步驟3:后臺(tái)接口層接收請(qǐng)求,從數(shù)據(jù)存儲(chǔ)中將應(yīng)用包提取并回傳;
步驟4:下載器接收應(yīng)用包并發(fā)送給解釋器;
步驟5:解釋器將應(yīng)用包解碼或解壓縮為前端應(yīng)用代碼;
步驟6:運(yùn)行時(shí)運(yùn)行該代碼,實(shí)現(xiàn)應(yīng)用使用。
上述具體實(shí)施方式僅是本發(fā)明的具體個(gè)案,本發(fā)明的專(zhuān)利保護(hù)范圍包括但不限于上述具體實(shí)施方式,任何符合本發(fā)明的一種持續(xù)集成的混生移動(dòng)應(yīng)用在線生成服務(wù)的權(quán)利要求書(shū)的且任何所述技術(shù)領(lǐng)域的普通技術(shù)人員對(duì)其所做的適當(dāng)變化或替換,皆應(yīng)落入本發(fā)明的專(zhuān)利保護(hù)范圍。