本發(fā)明涉及終端應(yīng)用技術(shù)領(lǐng)域,更具體地說,涉及一種移動應(yīng)用界面動態(tài)生成方法及系統(tǒng)。
背景技術(shù):
目前,移動應(yīng)用要實現(xiàn)界面變動且無需重裝發(fā)布安裝,一般采用html5或者像phonegap等一些中間件的混合的方式,其本質(zhì)上是在使用android內(nèi)核webkit并在上面加個應(yīng)用殼,然后直接調(diào)用移動終端本地的webkit進行解析。
但是,上述方法存在如下問題:首先在界面兼容性方面,瀏覽器實現(xiàn)不標準,碎片化嚴重,且界面樣式與原生應(yīng)用樣式不一樣,顯得與系統(tǒng)本身格格不入;其次,在規(guī)范方面,相對于原生,html5作為頁面顯示,規(guī)范不完整,很多應(yīng)用需求無法實現(xiàn);最后,在靈活度方面,每次界面更新時,均需要重啟服務(wù)端。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題在于,針對現(xiàn)有技術(shù)中實現(xiàn)移動應(yīng)用的界面變動的上述不足,提供一種移動應(yīng)用界面動態(tài)生成方法及系統(tǒng)。
本發(fā)明解決上述問題的技術(shù)方案是提供了一種移動應(yīng)用界面動態(tài)生成方法,該方法包括以下步驟:
服務(wù)端生成所述移動應(yīng)用界面的原生xml文件,并將所述原生xml文件推送到所述移動應(yīng)用界面對應(yīng)的移動應(yīng)用中;
所述移動應(yīng)用下載所述原生xml文件,并解析所述原生xml文件動態(tài)獲取所述移動應(yīng)用界面的資源文件以生成所述移動應(yīng)用界面。
在上述的移動應(yīng)用界面動態(tài)生成方法中,所述解析所述原生xml文件動 態(tài)獲取所述移動應(yīng)用界面的資源文件以生成所述移動應(yīng)用界面的步驟包括:
通過解析引擎將所述原生xml文件解析到所述原生xml文件對應(yīng)的代碼;
根據(jù)所述代碼從所述服務(wù)端動態(tài)收集所述資源文件;
將所述資源文件與界面元素綁定以生成所述移動應(yīng)用界面。
在上述的移動應(yīng)用界面動態(tài)生成方法中,所述方法還包括:
將所述移動應(yīng)用預先安裝于移動終端。
在上述的移動應(yīng)用界面動態(tài)生成方法中,所述原生xml文件與安裝所述移動應(yīng)用的所述移動終端的本地系統(tǒng)的界面的格式是相同的。
本發(fā)明還提供了一種移動應(yīng)用界面動態(tài)生成系統(tǒng),所述系統(tǒng)包括服務(wù)端和移動應(yīng)用,所述移動應(yīng)用安裝于移動終端,其中:
所述服務(wù)端用于生成所述移動應(yīng)用界面的原生xml文件,并將所述原生xml文件推送到所述移動應(yīng)用界面對應(yīng)的移動應(yīng)用中;
所述移動應(yīng)用用于下載所述原生xml文件,并解析所述原生xml文件動態(tài)獲取所述移動應(yīng)用界面的資源文件以生成所述移動應(yīng)用界面。
在上述的移動應(yīng)用界面動態(tài)生成系統(tǒng)中,所述移動應(yīng)用包括解析單元、收集單元和生成單元,其中,所述解析單元用于通過解析引擎將所述原生xml文件解析到所述原生xml文件對應(yīng)的代碼;所述收集單元用于根據(jù)所述代碼從所述服務(wù)端動態(tài)收集所述資源文件;所述生成單元用于將所述資源文件與界面元素綁定以生成所述移動應(yīng)用界面。
在上述的移動應(yīng)用界面動態(tài)生成系統(tǒng)中,所述原生xml文件與安裝所述移動應(yīng)用的所述移動終端的本地系統(tǒng)的界面的格式是相同的。。
本發(fā)明的移動應(yīng)用界面動態(tài)生成方法及系統(tǒng)的有益效果有:
首先,通過服務(wù)端編寫與安裝移動應(yīng)用的移動終端的本地系統(tǒng)的界面格式相同的原生xml文件,解決了界面兼容性問題。
其次,通過服務(wù)端來編寫生成移動應(yīng)用界面的原生xml文件,并使用推送技術(shù),可實現(xiàn)移動應(yīng)用界面的動態(tài)加載、可配置、個性化、區(qū)域化、可擴展等特點。
最后,由于在移動應(yīng)用運行中來動態(tài)加載,而不需要更新apk,進而消除了每次在ui上需要更新時重新編譯的麻煩,而且,一有更新,該移動應(yīng)用界面就立馬改變,不需要重新編寫代碼使編譯成app包來發(fā)布到應(yīng)用商店以進行更新。
附圖說明
圖1是本發(fā)明的移動應(yīng)用界面動態(tài)生成方法實施例的流程圖。
圖2是圖1中步驟s1的具體流程圖。
圖3是本發(fā)明的移動應(yīng)用界面動態(tài)生成系統(tǒng)實施例的結(jié)構(gòu)示意圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
如圖1所示,是本發(fā)明的移動應(yīng)用界面動態(tài)生成方法實施例的流程圖。參考圖1,該方法包括步驟:
首先,在步驟s1中,服務(wù)端生成移動應(yīng)用界面的原生xml(extensiblemarkuplanguage,可擴展標記語言)文件,并將該原生xml文件推送到該移動應(yīng)用界面對應(yīng)的移動應(yīng)用中。在此步驟之前,將該移動應(yīng)用預先安裝于移動終端上,且該移動終端的本地系統(tǒng)為android系統(tǒng)。該原生xml文件與安裝該移動應(yīng)用的移動終端的本地系統(tǒng)的界面的格式是相同的,這樣可解決該移動應(yīng)用解析緩慢和兼容性的問題。在本發(fā)明的實施例中,根據(jù)移動應(yīng)用界面生成的特點可知,是在view層以xml文件形式組織界面,這樣通過服務(wù)端來生成界面的原生xml文件,相當于將服務(wù)端作為移動終端的界面的view層。
最后,在步驟s2中,該移動應(yīng)用下載該原生xml文件,并解析該原生xml文件動態(tài)獲取所述移動應(yīng)用界面的資源文件以生成該移動應(yīng)用界面。在本發(fā)明的實施例中,如圖2所示,步驟s2包括:在步驟s21中,通過解析引擎將該原生xml文件解析到該原生xml文件對應(yīng)的代碼。在此步驟中,解析引擎可以 是獨立安裝于該移動應(yīng)用安裝的移動終端,也可以是該移動應(yīng)用本身具備的,在安裝該移動應(yīng)用時,該解析引擎也一起安裝在移動終端。在步驟s22中,根據(jù)該代碼從該服務(wù)端動態(tài)收集資源文件。在此步驟中,若該代碼對應(yīng)于界面元素時,如按鈕,則對應(yīng)地生成該移動應(yīng)用界面的按鈕,資源文件包括界面資源和與該界面資源對應(yīng)的數(shù)據(jù)資源。進一步地,若該代碼表示從移動終端的本地系統(tǒng)內(nèi)獲取資源文件,則直接從移動終端的本地系統(tǒng)內(nèi)獲取資源文件來生成該資源文件對應(yīng)的移動應(yīng)用界面。在步驟s23中,將資源文件與界面元素進行綁定以生成該移動應(yīng)用界面。界面元素可以是該移動應(yīng)用界面的按鈕、對話框等。
下面將對android系統(tǒng)的移動應(yīng)用界面的按鈕的生成進行說明:
首先服務(wù)端生成該按鈕的原生xml文件,如下:
<buttonandroid:id="@+id/ssss"
android:text="點擊獲取例測數(shù)據(jù)"
android:layout_width="fill_parent"android:layout_height="wrap_content"
android:gravity="left"
android:textcolor="@color/black"
android:background="url:www.aspirecn.com/pic/one"/>
隨后,將上述按鈕的原生xml文件推送到移動終端的移動應(yīng)用,移動應(yīng)用通過解析引擎解析上述按鈕的原生xml文件,當解析到該按鈕的background(背景),且內(nèi)容的開頭url時,通過http協(xié)議從“www.aspirecn.com/pic/one”的地址獲取圖片,進而生成以該圖片為背景的按鈕,這樣達到了動態(tài)地收集界面資源和數(shù)據(jù)資源。
在本發(fā)明的實施例中,通過服務(wù)端來編寫生成移動應(yīng)用界面的原生xml文件,并使用推送技術(shù),可實現(xiàn)移動應(yīng)用界面的動態(tài)加載、可配置、個性化、區(qū)域化、可擴展等特點。同時由于在移動應(yīng)用運行中來動態(tài)加載,而不需要更新apk,進而消除了每次在ui上需要更新時重新編譯的麻煩,而且,一有更新,該移動應(yīng)用界面就立馬改變,不需要重新編寫代碼使編譯成app包來發(fā)布到應(yīng)用商店以進行更新。
如圖3所示,是本發(fā)明的移動應(yīng)用界面動態(tài)生成系統(tǒng)實施例的結(jié)構(gòu)示意圖。 參考圖3,該系統(tǒng)包括服務(wù)端和移動應(yīng)用,其中,該移動應(yīng)用安裝于移動終端上。
在本發(fā)明的實施例中,服務(wù)端用于生成移動應(yīng)用界面的原生xml文件,并將該原生xml文件推送到該移動應(yīng)用中。該原生xml文件與安裝該移動應(yīng)用的移動終端的本地系統(tǒng)的界面的格式是相同的,這樣可解決該移動應(yīng)用解析緩慢和兼容性的問題。在本發(fā)明的實施例中,根據(jù)移動應(yīng)用界面生成的特點可知,是在view層以xml文件形式組織界面,這樣通過服務(wù)端來生成界面的原生xml文件,相當于將服務(wù)端作為移動終端的界面的view層。
在本發(fā)明的實施例中,該移動終端的本地系統(tǒng)為android系統(tǒng)。
該移動應(yīng)用包括解析單元、收集單元和生成單元,其中解析單元為解析引擎,用于將該原生xml文件解析到該原生xml文件對應(yīng)的代碼。解析引擎可以是獨立安裝于該移動應(yīng)用安裝的移動終端,也可以是該移動應(yīng)用本身具備的,在安裝該移動應(yīng)用時,該解析引擎也一起安裝在移動終端。收集單元用于根據(jù)該代碼從該服務(wù)端動態(tài)收集資源文件以生成該移動應(yīng)用界面。資源文件包括界面資源和與該界面資源對應(yīng)的數(shù)據(jù)資源。若該代碼對應(yīng)于界面元素時,如按鈕,則對應(yīng)地生成該移動應(yīng)用界面的按鈕。進一步地,若該代碼表示從移動終端的本地系統(tǒng)內(nèi)獲取資源文件,則直接從移動終端的本地系統(tǒng)內(nèi)獲取資源文件來生成該資源文件對應(yīng)的移動應(yīng)用界面。生成單元用于將資源文件與界面元素進行綁定以生成該移動應(yīng)用界面。界面元素可以是該移動應(yīng)用界面的按鈕、對話框等。
下面將對android系統(tǒng)的移動應(yīng)用界面的按鈕的生成進行說明:
首先服務(wù)端生成該按鈕的原生xml文件,如下:
<buttonandroid:id="@+id/ssss"
android:text="點擊獲取例測數(shù)據(jù)"
android:layout_width="fill_parent"android:layout_height="wrap_content"
android:gravity="left"
android:textcolor="@color/black"
android:background="url:www.aspirecn.com/pic/one"/>
隨后,將上述按鈕的原生xml文件推送到移動終端的移動應(yīng)用,移動應(yīng)用通過解析引擎解析上述按鈕的原生xml文件,當解析到該按鈕的background(背景),且內(nèi)容的開頭url時,通過http協(xié)議從“www.aspirecn.com/pic/one”的地址獲取圖片,進而生成以該圖片為背景的按鈕,這樣達到了動態(tài)地收集資源文件,即按鈕的背景圖片。
在本發(fā)明的實施例中,通過服務(wù)端來編寫生成移動應(yīng)用界面的原生xml文件,并使用推送技術(shù),可實現(xiàn)移動應(yīng)用界面的動態(tài)加載、可配置、個性化、區(qū)域化、可擴展等特點。同時由于在移動應(yīng)用運行中來動態(tài)加載,而不需要更新apk,進而消除了每次在ui上需要更新時重新編譯的麻煩,而且,一有更新,該移動應(yīng)用界面就立馬改變,不需要重新編寫代碼使編譯成app包來發(fā)布到應(yīng)用商店以進行更新。
以上所述,僅為本發(fā)明較佳的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)該以權(quán)利要求的保護范圍為準。