本申請實施例涉及移動通信技術領域,特別是涉及一種客戶端界面的布局方法,一種客戶端界面的布局裝置,以及一種移動設備。
背景技術:
隨著科學技術的發展,諸如手機、平板電腦、智能手表等移動設備廣泛普及,在人們的生活、學習、工作中的應用越來越多。
為了滿足用戶的各種需求,如閱讀、會話等等,用戶經常在系統中安裝許多客戶端,如電子書閱讀器、即時通訊工具,應用助手等等。這些客戶端會進行版本迭代,以為用戶提供更好的服務。
以Android(安卓)系統的客戶端為例,在客戶端的版本迭代過程中,往往會呈現越來越多不同樣式的推薦集,使得客戶端上數據展示的更加全面豐富、多樣化。然而,每增加一種樣式的推薦集,意味著客戶端和服務端需要多約定好一個類型標識,并且客戶端需要修改代碼應對新的類型標識,最后本地升級為新版本的客戶端才能生效。這種方式主要存在以下3個缺點:
1、對于研發層面而言,在設計模式上違背了開閉原則;
2、每次新增樣式需求,需多方協調、新增、修改,造成多方的重復工作量;
3、需要升級為新版本的客戶端后新增樣式才能生效,且只能覆蓋到升級為新版本的客戶端。
技術實現要素:
鑒于上述問題,提出了本申請實施例以便提供一種克服上述問題或者至少部分地解決上述問題的一種客戶端界面的布局方法和相應的一種客戶端界面的布局裝置和移動設備。
為了解決上述問題,本申請公開了一種客戶端界面的布局方法,在移動設備中存儲有客戶端界面的界面資源,以及客戶端界面的原生布局文件,所述方法包括:
在顯示客戶端界面時,獲取所述客戶端界面的原生布局文件和界面資源;
采用所述原生布局文件和所述界面資源生成界面控件;
將所述界面控件按照所述原生布局文件布局至客戶端界面。
優選地,在所述獲取客戶端界面的原生布局文件和界面資源的步驟之前,還包括:
從指定服務端中下載原生布局文件;
將所述原生布局文件存儲在所述移動設備中。
優選地,所述原生布局文件具有對應的文件標識,在所述將原生布局文件存儲在所述移動設備中的步驟之后,還包括:
獲取所述原生布局文件在所述移動設備中的文件存儲路徑;
建立所述文件標識與所述文件存儲路徑之間的關聯關系。
優選地,所述客戶端界面具有對應的程序標識,所述客戶端界面的原生布局文件通過如下方式獲取:
判斷在所述移動設備中是否存在與所述程序標識匹配的文件標識;
若是,則獲取所述文件標識對應的文件存儲路徑;
依據所述文件存儲路徑獲取對應的原生布局文件。
優選地,所述原生布局文件包含所述界面資源對應的資源標識,所述采用原生布局文件和所述界面資源生成界面控件的步驟包括:
獲取所述原生布局文件中的資源標識;
采用所述資源標識從所述移動設備中獲取對應的界面資源;
按照所述原生布局文件設置所述界面資源得到界面控件。
優選地,所述將界面控件按照所述原生布局文件布局至客戶端界面的步驟包括:
按照所述原生布局文件在所述客戶端界面中設置父控件;
將所述界面控件添加到所述父控件中。
優選地,所述資源標識為tag標識。
本申請實施例還公開了一種客戶端界面的布局裝置,在移動設備中存儲有客戶端界面的界面資源,以及客戶端界面的原生布局文件,所述裝置包括:
布局數據獲取模塊,用于在顯示客戶端界面時,獲取所述客戶端界面的原生布局文件和界面資源;
界面控件生成模塊,用于采用所述原生布局文件和所述界面資源生成界面控件;
界面控件布局模塊,用于將所述界面控件按照所述原生布局文件布局至客戶端界面。
優選地,還包括:
原生布局文件下載模塊,用于從指定服務端中下載原生布局文件;
原生布局文件存儲模塊,用于將所述原生布局文件存儲在所述移動設備中。
優選地,所述原生布局文件具有對應的文件標識,所述裝置還包括:
文件存儲路徑獲取模塊,用于獲取所述原生布局文件在所述移動設備中的文件存儲路徑;
關聯關系建立模塊,用于建立所述文件標識與所述文件存儲路徑之間的關聯關系。
優選地,所述客戶端界面具有對應的程序標識,所述布局數據獲取模塊包括:
標識匹配子模塊,用于判斷在所述移動設備中是否存在與所述程序標識匹配的文件標識;若是,則調用文件存儲路徑獲取子模塊;
文件存儲路徑獲取子模塊,用于獲取所述文件標識對應的文件存儲路徑;
獲取原生布局文件子模塊,用于依據所述文件存儲路徑獲取對應的原生布局文件。
優選地,所述原生布局文件包含所述界面資源對應的資源標識,所述界面控件生成模塊包括:
資源標識獲取子模塊,用于獲取所述原生布局文件中的資源標識;
界面資源獲取子模塊,用于采用所述資源標識從所述移動設備中獲取對應的界面資源;
界面資源設置子模塊,用于按照所述原生布局文件設置所述界面資源得到界面控件。
優選地,所述界面控件布局模塊包括:
父控件設置子模塊,用于按照所述原生布局文件在所述客戶端界面中設置父控件;
界面控件添加子模塊,用于將所述界面控件添加到所述父控件中。
本申請實施例還公開了一種移動設備,在移動設備中存儲有客戶端界面的界面資源,以及客戶端界面的原生布局文件,所述移動設備包括:
布局數據獲取模塊,用于在顯示客戶端界面時,獲取所述客戶端界面的原生布局文件和界面資源;
界面控件生成模塊,用于采用所述原生布局文件和所述界面資源生成界面控件;
界面控件布局模塊,用于將所述界面控件按照所述原生布局文件布局至客戶端界面。
本申請實施例包括以下優點:
本申請實施例加載客戶端界面時,獲取客戶端預先下載的原生布局文件和界面資源,然后根據界面資源和原生布局文件生成界面控件,最后按照原生布局文件將界面控件布局到客戶端界面中,這樣,當客戶端界面新增或修改樣式時,只需要重新獲取原生布局文件,以及新增或者更新的界面資源即可,而無需客戶端和服務端多方重復工作,從而簡單且靈活的實現線上的動態布局,在無兼容問題的情況下無需迭代新的客戶端版本即可快速生效。
本申請實施例無需額外復雜的布局代碼和制定復雜的布局協議,采用的是安卓原生的布局文件和原生的生成布局的方法,故而實現簡單。另外,本申請實施例的布局文件不僅支持安卓原生資源,還同時支持對應版本存在的自定義資源,故而布局靈活方便。應用本申請實施例,使得產品和運營在優化產品體驗時,可以更快的進行新效果發布、數據統計以及收集用戶反饋,實現快速試錯的能力,客戶端和服務端研發則大大減少了代碼新增和代碼修改的工作量,縮短開發時間,降低開發成本。
附圖說明
圖1是本申請的一種客戶端界面的布局方法實施例1的步驟流程圖;
圖2是本申請的一種客戶端界面的布局方法實施例2的步驟流程圖;
圖3是本申請的一種客戶端界面的布局裝置實施例的結構框圖;
圖4是本申請的一種移動設備實施例的結構框圖。
具體實施方式
為使本申請的上述目的、特征和優點能夠更加明顯易懂,下面結合附圖和具體實施方式對本申請作進一步詳細的說明。
參照圖1,示出了本申請的一種客戶端界面的布局方法實施例的步驟流程圖,在客戶端中可以存儲有客戶端界面的界面資源,以及客戶端界面的原生布局文件,具體可以包括如下步驟:
步驟101,在顯示客戶端界面時,獲取所述客戶端界面的原生布局文件和界面資源;
在具體實現中,客戶端界面也可以稱為圖形用戶界面(Graphical User Interface,GUI),需要對客戶端界面中的界面元素(圖形、文字等等)進行排布。優秀的布局能簡化用戶與應用程序之間的交互操作,迎合用戶的使用習慣,提高用戶使用的用戶體驗。
本申請實施例可以應用在各種移動設備中,例如,手機、平板電腦、個人數字助理、穿戴設備(如眼鏡、手表等)等等,也可以應用在各種固定設備中,例如,智能電視、個人電腦等等。
這些移動設備、固定設備的操作系統可以包括Android、IOS、Windows Phone、Windows等,在這些系統中可以安裝各種客戶端,如電子書閱讀器、即時通訊工具、瀏覽器等等,可以顯示網頁或者在線內容。下面主要采用Android客戶端為例對于本申請實施例進行說明。
在本申請實施例中,移動設備中預先存儲有從服務端下載的原生布局文件,以及,客戶端的界面資源。當需要加載客戶端界面在移動設備上進行顯示時,將獲取客戶端界面對應的原生布局文件和界面資源。
需要說明的是,界面資源可以是可以隨著時間會沉淀下來,時間越久積累得越多,所以很長一段版本迭代時間內一般都是足夠使用的,故而有時候只需要更新原生布局文件,即可實現對客戶端界面樣式的新增或更新。
步驟102,采用所述原生布局文件和所述界面資源生成界面控件;
界面控件,是指可在客戶端界面上放置的可視化元素,也即是前述的界面元素,如按鈕、文件編輯框等等。其中部分界面控件具有執行功能或通過“事件”引發代碼運行并完成響應的功能。
在本申請的一個實施例中,所述原生布局文件可以包含所述界面資源對應的資源標識,所述步驟102可以包括如下子步驟:
子步驟S11,獲取所述原生布局文件中的資源標識;
子步驟S12,采用所述資源標識從所述客戶端中獲取對應的界面資源;
子步驟S13,按照所述原生布局文件設置所述界面資源得到界面控件。
在本申請實施例中,界面資源的資源標識可以為tag標識。在加載客戶端界面時,使用原生布局文件中的tag標識在移動設備中查找對應的界面資源。
通常,布局文件使用id標識來引用界面資源,但是由于本申請實施例是的界面資源和用于布局的原生布局文件并不是一起發送到客戶端,而是分開發送的,故如果直接通過id標識引用界面資源,可能導致出現引用異常的問題。
故本申請實施例中,原生布局文件使用tag標識替代id標識,用于引用界面資源,而其他的標識如顏色、大小也可直接使用具體值進行替代,這樣,就不會出現引用錯誤的問題,當然,也可以使用其他方式使得不至于出現引用錯誤的問題,本申請實施例對此不加以限制。
本申請實施例采用原生布局文件中的tag標識遍歷移動設備,如果存在與tag標識匹配的界面資源,則獲取該界面資源。獲取到的界面資源后,按照原生布局文件對界面資源進行設置得到界面控件。
步驟103,將所述界面控件按照所述原生布局文件布局至客戶端界面。
在具體實現中,原生布局文件定義了新增或更新的客戶端界面樣式。當客戶端中存在原生布局文件時,按照原生布局文件生成界面控件,并按照原生布局文件將界面控件布局至客戶端界面相應位置中。
如果在移動設備中并不存在客戶端的原生布局文件,則按照該客戶端在先安裝包來加載客戶端界面。
在本申請的一個實施例中,所述步驟103可以包括如下子步驟:
子步驟S21,按照所述原生布局文件在所述客戶端界面中設置父控件;
子步驟S22,將所述界面控件添加到所述父控件中。
本申請實施例可以對全部客戶端界面的布局,也可以只對部分客戶端界面的布局。例如,可以對客戶端界面的標題欄樣式的布局,對客戶端應用欄的樣式的布局,本申請實施例對此不加以限制。
假設某個客戶端界面的標題欄的樣式需要應用本申請實施例動態生成,那么首先在標題欄所在的位置根據原生布局文件放置一個空的控件,即父控件,然后使用已生成的界面控件,添加到空的父控件里進行渲染展示,此時客戶端界面布局完成。
本申請實施例加載客戶端界面時,獲取客戶端預先下載的原生布局文件和界面資源,然后根據界面資源和原生布局文件生成界面控件,最后按照原生布局文件將界面控件布局到客戶端界面中,這樣,當客戶端界面新增或修改樣式時,只需要重新獲取原生布局文件,以及新增或者更新的界面資源即可,而無需客戶端和服務端多方重復工作,從而簡單且靈活的實現線上的動態布局,在無兼容問題的情況下無需迭代新的客戶端版本即可快速生效。其中,兼容問題,主要是指網絡請求接口協議不兼容,或布局文件使用了新版中才存在的自定義控件等問題。
本申請實施例無需額外復雜的布局代碼和制定復雜的布局協議,采用的是安卓原生的布局文件和原生的生成布局的方法,故而實現簡單。另外,本申請實施例的布局文件不僅支持安卓原生資源,還同時支持對應版本存在的自定義資源,故而布局靈活方便。應用本申請實施例,使得產品和運營在優化產品體驗時,可以更快的進行新效果發布、數據統計以及收集用戶反饋,實現快速試錯的能力,客戶端和服務端研發則大大減少了代碼新增和代碼修改的工作量,縮短開發時間,降低開發成本。
參照圖2,示出了本申請的一種客戶端界面的布局方法實施例的步驟流程圖,在客戶端中存儲可以有客戶端界面的界面資源,以及客戶端界面的原生布局文件,具體可以包括如下步驟:
步驟201,從指定服務端中下載客戶端界面的原生布局文件;
在具體應用中,按需求編寫原生布局文件。原生布局文件可以支持原生界面資源和自定義界面資源。其中,原生界面資源是指原先Android等系統支持的原有的界面資源,反之,自定義界面資源是指針對客戶端編寫的界面資源,而非Android等系統支持的原有界面資源。
原生布局文件在編寫時,并不直接引用界面資源的id標識,因為原生布局文件并不是和客戶端的安裝包(安裝包里包括界面資源)一起打包編譯的,而可能是分開下載到客戶端的,故如果直接引用界面資源的id標識來編寫原生布局文件會出現引用異常。
以android為例,在安卓布局文件里聲明的所有資源id標識(在布局文件里都是字符串如“@+id/pp_test_id”),隨工程編譯后都會生成對應的整型id標識,如0x7f040000。所以下發的XML布局里不允許聲明資源id標識的原因就是,該布局文件不是隨當時的客戶端版本一起編譯的,若使用id標識,編譯后和已發布的版本不一致,運行時會發生找不到資源的異常。
針對上述問題,在本申請實施例中,對于界面資源的id標識,采用tag標識進行替代,tag為字符串,如“pp_test_id”,使用tag標識就可以避免上述的問題。原生布局文件中其他的屬性如顏色、大小也可直接使用具體值進行替代,以避免引用異常的問題。
原生布局文件編寫好后,使用Android appt工具的package指令(該指令的作用是打包生成資源壓縮包),對原生布局文件進行編譯。其中,原生布局文件在編寫時,可以將新增或更新樣式的相應界面資源一起進行編譯,由于此時的界面資源與原生布局文件一起編譯,如果直接使用id標識引用界面資源,也不會出現引用異常的問題。
需要說明的是,aapt(Android Asset Packaging Tool,安卓資源打包工具),在SDK(軟件開發工具包,Software Development Kit)的build-tools目錄下。aapt工具可以查看、創建、更新zip,jar,apk等格式的文檔附件,也可將界面資源編譯成二進制文件。這是為了壓縮資源存儲空間,以及加快運行時的資源解析速度。本申請實施例對編寫好的原生布局文件進行編譯,并將編譯好的原生布局文件新增或更新到指定服務端上,以供客戶端下載。
步驟202,將所述原生布局文件存儲在所述客戶端中;
較佳地,為了便于客戶端獲知服務端上有原生布局文件新增或更新,可以在新增或更新原生布局文件后發送提醒至客戶端,客戶端就可以到服務端下載原生布局文件,以及相關的界面資源等等,并存儲在本地的目錄中。或者,客戶端也可以定期訪問服務端,以獲知是否有原生布局文件新增或更新,只有能夠獲得原生布局文件,本申請實施例對此不加以限制。
在本申請的一個實施例中,所述原生布局文件可以具有對應的文件標識,在所述步驟202之后,還可以包括如下步驟:
獲取所述原生布局文件在所述客戶端中的文件存儲路徑;
建立所述文件標識與所述文件存儲路徑之間的關聯關系。
在本申請實施例中,在獲取到原生布局文件,將相應獲取該原生布局文件在客戶端本地的文件存儲路徑,并建立原生布局文件的文件標識與文件存儲路徑之間的關聯關系,這樣,當知曉需要調用某一原生布局文件時,可以根據原生布局文件的文件標識獲知對應的存儲路徑。其中,文件標識可以是原生布局文件的文件名,當然,也可以是其他能夠識別到該原生布局文件其他標識,本申請實施例對此不加以限制。
具體來說,客戶端請求下載原生布局文件A,存放到客戶端的本地目錄B,然后使用JAVA的反射機制反射調用安卓資源管理框架的添加資源路徑的私有方法,利用該方法將目錄B添加到安卓資源管理器認可的路徑列表中。
需要說明的是:JAVA的反射機制,即在運行狀態中,對于任意一個類,都能夠知道這個類的所有屬性和方法;對于任意一個對象,都能夠調用它的任意一個方法和屬性;這種動態獲取的信息以及動態調用對象的方法的功能稱為JAVA語言的反射機制。由于在先實現需操作資源管理器中的私有方法,無開放的API(Application Programming Interface,應用程序編程接口)接口可以調用,所以需要使用JAVA的反射機制。
步驟203,在顯示客戶端界面時,獲取所述客戶端界面的原生布局文件和界面資源;
在本申請的一個實施例中,所述客戶端界面可以具有對應的程序標識,所述步驟203,即所述客戶端界面的原生布局文件通過如下方式獲取:
子步驟S31,判斷在所述客戶端中是否存在與所述程序標識匹配的文件標識;若是,則執行子步驟S32;
子步驟S32,獲取所述文件標識對應的文件存儲路徑;
子步驟S33,依據所述文件存儲路徑獲取對應的原生布局文件。
步驟204,采用所述原生布局文件和所述界面資源生成界面控件;
在具體實現中,在加載顯示客戶端界面時,客戶端使用安卓資源管理框架通過原生布局文件A的本地文件名,自動搜索到目錄B并找到該原生布局文件進行加載,從而生成其對應的XML布局解析器。
步驟205,將所述界面控件按照所述原生布局文件布局至客戶端界面。
客戶端通過根據原生布局文件生成的XML布局解析器,交由安卓布局構造器框架生成其對應的界面控件(該框架的作用是通過原生布局文件或布局解析器將布局里的界面控件按規則排列好并設置屬性)。最后,生成的界面控件添加到指定的父控件里,即可在客戶端界面上渲染出來。
本申請實施例的核心之一是,使用Android已有的公開的API方法,加載并解析預編譯好的原生布局文件,然而該API方法只會去當前的資源管理框架里尋找指定的布局文件,而資源管理器只識別應用自身的資源目錄,所以系統找不到從服務端下載到本地的布局文件。本申請實施例巧妙的利用JAVA反射機制,反射調用Android資源管理框架的私有方法來添加本地文件夾路徑,使系統能夠找到已下載的原生布局文件,從而正常加載解析并生成對應的界面控件渲染到客戶端界面上。
為了是本領域技術人員更好地理解本申請實施例,以下對于本申請實施例的原理及優點作進一步說明。
以Android為例,Android應用程序(客戶端)主要由兩部分內容組成:代碼和資源。資源主要就是指那些與UI相關的東西,例如UI布局、字符串和圖片等。代碼和資源分開可以使得應用程序在運行時根據實際需要來組織UI。這樣就可使得應用程序只需要編譯一次,就可以支持不同的UI布局。這種特性使得應用程序在運行時可以適應不同的屏幕大小和密度,以及不同的國家和語言等。但這種一起編譯方式所存在的問題是,每一次需要更新客戶端樣式時,都需要下載最新版本的客戶端并安裝這樣無法快速進行新效果的發布,無法快速對于產品進行優化。
本申請實施例則是將用于客戶端界面布局的原生布局文件與客戶端的安裝包分開進行編譯,故如果需要進行客戶端樣式新增或更新,只需要重新研發編譯新的原生布局文件,然后新增或更新服務器對應界面資源即可,解析并加載新的原生布局文件來生成界面控件再渲染到客戶端界面上,從而簡單且靈活的實現線上的動態布局,在無兼容問題的情況下無需迭代新的客戶端版本即可快速生效。
本申請實施例這種做法的優點是,在產品和運營在優化產品體驗時,通過本申請實施例可以更快的進行新效果發布、數據統計以及收集用戶反饋,實現快速試錯的能力。而客戶端和服務器研發則大大減少了代碼新增和代碼修改的工作量,縮短開發時間,降低開發成本。
需要說明的是,對于方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本申請實施例并不受所描述的動作順序的限制,因為依據本申請實施例,某些步驟可以采用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬于優選實施例,所涉及的動作并不一定是本申請實施例所必須的。
參照圖3,示出了本申請的一種客戶端界面的布局裝置實施例的結構框圖,在移動設備中可以存儲有客戶端界面的界面資源,以及客戶端界面的原生布局文件,所述裝置具體可以包括如下模塊:
布局數據獲取模塊301,用于在顯示客戶端界面時,獲取所述客戶端界面的原生布局文件和界面資源;
在本申請的一個實施例中,所述裝置還可以包括如下模塊:
原生布局文件下載模塊,用于從指定服務端中下載原生布局文件;
原生布局文件存儲模塊,用于將所述原生布局文件存儲在所述移動設備中。
在本申請的一個實施例中,所述原生布局文件可以具有對應的文件標識,所述裝置還可以包括如模塊:
文件存儲路徑獲取模塊,用于獲取所述原生布局文件在所述移動設備中的文件存儲路徑;
關聯關系建立模塊,用于建立所述文件標識與所述文件存儲路徑之間的關聯關系。
界面控件生成模塊302,用于采用所述原生布局文件和所述界面資源生成界面控件;
在本申請的一個實施例中,所述客戶端界面可以具有對應的程序標識,所述布局數據獲取模塊301可以包括如下子模塊:
標識匹配子模塊,用于判斷在所述移動設備中是否存在與所述程序標識匹配的文件標識;若是,則調用文件存儲路徑獲取子模塊;
文件存儲路徑獲取子模塊,用于獲取所述文件標識對應的文件存儲路徑;
獲取原生布局文件子模塊,用于依據所述文件存儲路徑獲取對應的原生布局文件。
在本申請的一個實施例中,所述原生布局文件可以包含所述界面資源對應的資源標識,所述界面控件生成模塊302可以包括如下子模塊:
資源標識獲取子模塊,用于獲取所述原生布局文件中的資源標識;
界面資源獲取子模塊,用于采用所述資源標識從所述移動設備中獲取對應的界面資源;
界面資源設置子模塊,用于按照所述原生布局文件設置所述界面資源得到界面控件。
界面控件布局模塊303,用于將所述界面控件按照所述原生布局文件布局至客戶端界面。
在本申請的一個實施例中,所述界面控件布局模塊302可以包括如下子模塊:
父控件設置子模塊,用于按照所述原生布局文件在所述客戶端界面中設置父控件;
界面控件添加子模塊,用于將所述界面控件添加到所述父控件中。
在本申請的一個實施例中,所述資源標識可以為tag標識。
對于裝置實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
參照圖4,示出了本申請的一種移動設備實施例的結構框圖,在移動設備中可以存儲有客戶端界面的界面資源,以及客戶端界面的原生布局文件,所述移動設備具體可以包括如下模塊:
布局數據獲取模塊401,用于在顯示客戶端界面時,獲取所述客戶端界面的原生布局文件和界面資源;
在本申請的一個實施例中,所述裝置還可以包括如下模塊:
原生布局文件下載模塊,用于從指定服務端中下載原生布局文件;
原生布局文件存儲模塊,用于將所述原生布局文件存儲在所述移動設備中。
在本申請的一個實施例中,所述原生布局文件可以具有對應的文件標識,所述裝置還可以包括如模塊:
文件存儲路徑獲取模塊,用于獲取所述原生布局文件在所述移動設備中的文件存儲路徑;
關聯關系建立模塊,用于建立所述文件標識與所述文件存儲路徑之間的關聯關系。
界面控件生成模塊402,用于采用所述原生布局文件和所述界面資源生成界面控件;
在本申請的一個實施例中,所述客戶端界面可以具有對應的程序標識,所述布局數據獲取模塊401可以包括如下子模塊:
標識匹配子模塊,用于判斷在所述移動設備中是否存在與所述程序標識匹配的文件標識;若是,則調用文件存儲路徑獲取子模塊;
文件存儲路徑獲取子模塊,用于獲取所述文件標識對應的文件存儲路徑;
獲取原生布局文件子模塊,用于依據所述文件存儲路徑獲取對應的原生布局文件。
在本申請的一個實施例中,所述原生布局文件可以包含所述界面資源對應的資源標識,所述界面控件生成模塊402可以包括如下子模塊:
資源標識獲取子模塊,用于獲取所述原生布局文件中的資源標識;
界面資源獲取子模塊,用于采用所述資源標識從所述移動設備中獲取對應的界面資源;
界面資源設置子模塊,用于按照所述原生布局文件設置所述界面資源得到界面控件。
界面控件布局模塊403,用于將所述界面控件按照所述原生布局文件布局至客戶端界面。
在本申請的一個實施例中,所述界面控件布局模塊402可以包括如下子模塊:
父控件設置子模塊,用于按照所述原生布局文件在所述客戶端界面中設置父控件;
界面控件添加子模塊,用于將所述界面控件添加到所述父控件中。
在本申請的一個實施例中,所述資源標識可以為tag標識。
對于移動設備實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。
本領域內的技術人員應明白,本申請實施例的實施例可提供為方法、裝置、或計算機程序產品。因此,本申請實施例可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本申請實施例可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產品的形式。
在一個典型的配置中,所述計算機設備包括一個或多個處理器(CPU)、輸入/輸出接口、網絡接口和內存。內存可能包括計算機可讀介質中的非永久性存儲器,隨機存取存儲器(RAM)和/或非易失性內存等形式,如只讀存儲器(ROM)或閃存(flash RAM)。內存是計算機可讀介質的示例。計算機可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現信息存儲。信息可以是計算機可讀指令、數據結構、程序的模塊或其他數據。計算機的存儲介質的例子包括,但不限于相變內存(PRAM)、靜態隨機存取存儲器(SRAM)、動態隨機存取存儲器(DRAM)、其他類型的隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、快閃記憶體或其他內存技術、只讀光盤只讀存儲器(CD-ROM)、數字多功能光盤(DVD)或其他光學存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設備或任何其他非傳輸介質,可用于存儲可以被計算設備訪問的信息。按照本文中的界定,計算機可讀介質不包括非持續性的電腦可讀媒體(transitory media),如調制的數據信號和載波。
本申請實施例是參照根據本申請實施例的方法、終端設備(系統)、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理終端設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理終端設備的處理器執行的指令產生用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理終端設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數據處理終端設備上,使得在計算機或其他可編程終端設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程終端設備上執行的指令提供用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
盡管已描述了本申請實施例的優選實施例,但本領域內的技術人員一旦得知了基本創造性概念,則可對這些實施例做出另外的變更和修改。所以,所附權利要求意欲解釋為包括優選實施例以及落入本申請實施例范圍的所有變更和修改。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者終端設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者終端設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者終端設備中還存在另外的相同要素。
以上對本申請所提供的一種客戶端界面的布局方法,一種客戶端界面的布局裝置和移動設備,進行了詳細介紹,本文中應用了具體個例對本申請的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本申請的方法及其核心思想;同時,對于本領域的一般技術人員,依據本申請的思想,在具體實施方式及應用范圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本申請的限制。