本申請涉及信息處理技術(shù)領域,特別是涉及一種界面處理方法、一種界面處理裝置和一種智能終端。
背景技術(shù):
隨著手機、平板電腦、智能電視等智能終端的不斷普及,人機交互方式大大方便了用戶操作。同時,ui(用戶界面,userinterface)在app(應用程序,applicationprogram)的人機交互中起到了重要的作用,以及,渲染引擎在app中也扮演著越來越重要的地位,先進的渲染技術(shù)能夠帶來更好的用戶體驗。
現(xiàn)有一種渲染方案1可以按照開發(fā)者的布局順序依次同步渲染界面元素,直至將所有的界面元素渲染完成。然而,在ui所包含界面元素的數(shù)目較多,或者ui所包括圖片的尺寸較大時,該渲染方案1具有響應速度慢的缺點,這樣將容易出現(xiàn)用戶面對單一的屏幕等待渲染完成的現(xiàn)象。
為了避免出現(xiàn)用戶面對單一的屏幕等待渲染完成的現(xiàn)象,現(xiàn)有一種渲染方案2可以在app啟動后,提前顯示一幀靜態(tài)內(nèi)容,同時在后臺進行ui渲染,并在ui渲染完畢后用實際的ui替換上述靜態(tài)內(nèi)容。其中,上述靜態(tài)內(nèi)容通常為開發(fā)者事先設定的、大多是情況下是圖片。
然而,在實際應用中,有時會遇到這樣的問題:上述靜態(tài)內(nèi)容與實際的ui沒有關聯(lián)的現(xiàn)象,這樣將使用戶感受到ui的跳躍,從而影響到ui的渲染效果。
技術(shù)實現(xiàn)要素:
本申請實施例所要解決的技術(shù)問題是提供一種界面處理方法,可以快速輸出與目標ui相關聯(lián)的ui內(nèi)容,從而能夠提高ui的渲染效果。
相應的,本申請實施例還提供了一種界面處理裝置和一種智能終端,用以保證上述方法的實現(xiàn)及應用。
為了解決上述問題,本申請公開了一種界面處理方法,包括:
針對待渲染的目標ui,獲取符合預置優(yōu)先條件的第一界面元素;
對所述第一界面元素進行優(yōu)先渲染;
輸出所述第一界面元素的渲染結(jié)果。
可選的,所述預置優(yōu)先條件包括:用于表征第一界面元素與目標ui的布局相關的布局相關條件,則所述獲取符合預置優(yōu)先條件的第一界面元素的步驟,包括:
通過調(diào)用第一預置接口,獲取符合所述布局相關條件的第一界面元素;和/或
依據(jù)所述目標ui的數(shù)據(jù),獲取第一預置標記為布局相關標記的界面元素,作為第一界面元素;和/或
依據(jù)所述目標ui的布局文件和/或布局代碼,獲取與所述目標ui的布局相關的第一界面元素。
可選的,所述預置優(yōu)先條件包括:用于表征第一界面元素與用戶相關的用戶相關條件,則所述獲取符合預置優(yōu)先條件的第一界面元素的步驟,包括:
通過調(diào)用第二預置接口,獲取符合所述用戶相關條件的第一界面元素;和/或
依據(jù)所述目標ui的數(shù)據(jù),獲取第二預置標記為用戶相關標記的界面元素,作為第一界面元素。
可選的,所述符合所述用戶相關條件的第一界面元素包括:根據(jù)用戶習慣確定出的界面元素。
可選的,所述預置優(yōu)先條件包括:底色條件,或者,所述預置優(yōu)先條件包括:背景條件。
可選的,所述方法還包括:
針對待渲染的目標ui,獲取不符合預置優(yōu)先條件的第二界面元素;
對所述第二界面元素進行渲染;
輸出所述第二界面元素的渲染結(jié)果。
可選的,所述對所述第二界面元素進行渲染的步驟,包括:
將所述第二界面元素對應的渲染任務寫入第一渲染隊列;
利用多線程執(zhí)行所述第一渲染隊列中渲染任務;
接收所述多線程發(fā)送的、所述渲染任務的渲染結(jié)果。
可選的,所述利用多線程執(zhí)行所述第一渲染隊列中渲染任務的步驟,包括:
各線程在處于空閑狀態(tài)時,掃描所述第一渲染隊列;以及
在掃描到新的渲染任務時,從所述第一渲染隊列中讀取并執(zhí)行所述新的渲染任務。
可選的,所述對所述第二界面元素進行渲染的步驟,包括:
針對所述第二界面元素對應的支持分解的渲染任務,將其分解為多個渲染子任務;
將所述多個渲染子任務寫入第二渲染隊列;
利用多線程執(zhí)行所述第二渲染隊列中渲染子任務;
接收所述多線程發(fā)送的、所述渲染子任務的渲染結(jié)果。
可選的,所述利用多線程執(zhí)行所述第二渲染隊列中渲染子任務的步驟,包括:
各線程在處于空閑狀態(tài)時,掃描所述第二渲染隊列;以及
在掃描到新的渲染子任務時,從所述第二渲染隊列中讀取并執(zhí)行所述新的渲染子任務。
可選的,所述方法由主線程執(zhí)行,則所述對所述第二界面元素進行渲染的步驟,還包括:
主線程在完成所述第一界面元素的渲染后,對不支持分解的渲染任務進行渲染。
可選的,所述針對待渲染的目標ui,獲取符合預置優(yōu)先條件的第一界面元素,包括:
加載待渲染的目標ui的界面元素,并在每次加載界面元素后,執(zhí)行:
判斷當前界面元素是否符合預置優(yōu)先條件;
在所述當前界面元素符合預置優(yōu)先條件時,獲取符合預置優(yōu)先條件的第一界面元素。
可選的,所述方法還包括:
在所述當前界面元素不符合預置優(yōu)先條件時,將所述當前界面元素作為第二界面元素進行渲染,其中,所述第二界面元素的渲染與所述第一渲染界面的渲染相互獨立,或者,所述第一界面元素的渲染優(yōu)先于所述第二界面元素的渲染。
可選的,所述將所述當前界面元素作為第二界面元素進行渲染,包括:
將所述當前界面元素對應的渲染任務寫入渲染隊列,并利用多線程執(zhí)行所述渲染隊列中的渲染任務。
另一方面,本申請公開了一種界面處理裝置,包括:
第一獲取模塊,用于針對待渲染的目標ui,獲取符合預置優(yōu)先條件的第一界面元素;
第一渲染模塊,用于對所述第一界面元素進行優(yōu)先渲染;以及
第一輸出模塊,用于輸出所述第一界面元素的渲染結(jié)果。
可選的,所述預置優(yōu)先條件包括:用于表征第一界面元素與目標ui的布局相關的布局相關條件,則所述第一獲取模塊,包括:
第一獲取子模塊,用于通過調(diào)用第一預置接口,獲取符合所述布局相關條件的第一界面元素;和/或
第二獲取子模塊,用于依據(jù)所述目標ui的數(shù)據(jù),獲取第一預置標記為布局相關標記的界面元素,作為第一界面元素;和/或
第三獲取子模塊,用于依據(jù)所述目標ui的布局文件和/或布局代碼,獲取與所述目標ui的布局相關的第一界面元素。
可選的,所述預置優(yōu)先條件包括:用于表征第一界面元素與用戶相關的用戶相關條件,則所述第一獲取模塊,包括:
第四獲取子模塊,用于通過調(diào)用第二預置接口,獲取符合所述用戶相關條件的第一界面元素;和/或
第五獲取子模塊,用于依據(jù)所述目標ui的數(shù)據(jù),獲取第二預置標記為用戶相關標記的界面元素,作為第一界面元素。
可選的,所述預置優(yōu)先條件包括:底色條件,或者,所述預置優(yōu)先條件包括:背景條件。
可選的,所述裝置還包括:
第二獲取模塊,用于針對待渲染的目標ui,獲取不符合預置優(yōu)先條件的第二界面元素;
第二渲染模塊,用于對所述第二界面元素進行渲染;
第二輸出模塊,用于輸出所述第二界面元素的渲染結(jié)果。
再一方面,本申請公開了一種智能終端,包括有存儲器,以及一個或者一個以上的程序,其中一個或者一個以上程序存儲于存儲器中,且經(jīng)配置以由一個或者一個以上處理器執(zhí)行所述一個或者一個以上程序包含用于進行以下操作的指令:
針對待渲染的目標ui,獲取符合預置優(yōu)先條件的第一界面元素;
對所述第一界面元素進行優(yōu)先渲染;
輸出所述第一界面元素的渲染結(jié)果。
與現(xiàn)有技術(shù)相比,本申請實施例包括以下優(yōu)點:
本申請實施例針對待渲染的目標ui,對其符合預置優(yōu)先條件的第一界面元素進行優(yōu)先渲染;由于在第一界面元素渲染完畢后可以立即輸出所述第一界面元素的渲染結(jié)果;因此,本申請實施例可以快速輸出與目標ui相關聯(lián)的ui內(nèi)容,從而能夠提高ui的渲染效果。
并且,本申請實施例還可以對不符合預置優(yōu)先條件的第二界面元素進行渲染,并輸出所述第二界面元素的渲染結(jié)果;由于第一界面元素和第二界面元素同為目標ui中的界面元素,故其渲染結(jié)果也存在較高的相關性,這樣,在不同時刻輸出的第一界面元素和第二界面元素的渲染結(jié)果,可以呈現(xiàn)增量顯示的效果,并不會造成ui的跳躍,因此能夠提高ui的渲染效果和對應的用戶體驗。
另外,本申請實施例還可以將部分第一界面元素、以及第二界面元素對應的渲染任務通過多線程并行執(zhí)行;因此,能夠大大提升渲染速度和渲染效率。在目標ui為app的啟動界面時,還可以提高app的啟動速度。
附圖說明
圖1是本申請的一種界面處理方法的應用環(huán)境的結(jié)構(gòu)示意圖;
圖2是本申請的一種界面處理方法實施例一的步驟流程圖;
圖3是本申請的一種界面處理方法實施例二的步驟流程圖;
圖4是本申請的一種界面處理方法實施例三的步驟流程圖;
圖5是本申請的一種界面處理方法實施例四的步驟流程圖;
圖6是本申請的一種界面處理方法實施例五的步驟流程圖;
圖7是本申請的一種界面處理方法實施例六的步驟流程圖;
圖8是本申請的一種界面處理裝置實施例一的結(jié)構(gòu)框圖;
圖9是本申請的一種界面處理裝置實施例二的結(jié)構(gòu)框圖;以及
圖10是本申請的一種智能終端實施例的結(jié)構(gòu)框圖。
具體實施方式
為使本申請的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和具體實施方式對本申請作進一步詳細的說明。
現(xiàn)有方案在app啟動后提前顯示一幀靜態(tài)內(nèi)容,同時在后臺進行ui渲染,并在ui渲染完畢后用實際的ui替換上述靜態(tài)內(nèi)容?,F(xiàn)有方案容易出現(xiàn)上述靜態(tài)圖片與ui沒有關聯(lián)的問題,從而影響到ui的渲染效果。
本申請實施例的核心構(gòu)思之一在于,針對待渲染的目標ui,對其符合預置優(yōu)先條件的第一界面元素進行優(yōu)先渲染。由于上述第一界面元素為目標ui中的界面元素,故其與目標ui具有一定的關聯(lián),并且,由于在第一界面元素渲染完畢后可以立即輸出所述第一界面元素的渲染結(jié)果;因此,本申請實施例可以快速輸出與目標ui相關聯(lián)的ui內(nèi)容,從而能夠提高ui的渲染效果。
在本申請的一種應用示例中,假設目標ui為微信app的啟動界面1,而該啟動界面1的界面元素具體可以包括:一個listview控件、以及該listview控件中所包括的多個歷史對話;雖然,完成該啟動界面1的所有界面元素的渲染需要花費較多的時間,但是,一個空的listview控件的布局效果渲染速度較快,甚至快于一幀靜態(tài)圖片的渲染速度,因此,本申請實施例不僅可以提高呈現(xiàn)ui內(nèi)容的速度,而且還可以提供與目標ui相關聯(lián)的ui。
需要說明的是,在第一界面元素的渲染過程中、或者完成第一界面元素的渲染后,本申請實施例還可以對不符合預置優(yōu)先條件的第二界面元素進行渲染,并輸出所述第二界面元素的渲染結(jié)果。由于第一界面元素和第二界面元素同為目標ui中的界面元素,故其渲染結(jié)果也存在較高的相關性,這樣,在不同時刻輸出的第一界面元素和第二界面元素的渲染結(jié)果,可以呈現(xiàn)增量顯示的效果,并不會造成ui的跳躍,因此能夠提高ui的渲染效果和對應的用戶體驗。
本申請實施例提供的界面處理方法可應用于圖1所示的應用環(huán)境中。如圖1所示,客戶端100與服務器200可以位于有線或無線網(wǎng)絡中,通過該有線或無線網(wǎng)絡,客戶端100與服務器200進行數(shù)據(jù)交互。或者,客戶端100與服務器200可以運行在同一智能終端上,通過ipc(進程間通信,inter-processcommunication)方式,客戶端100與服務器200進行數(shù)據(jù)交互。或者,客戶端100與服務器200可以運行在同一智能終端的同一進程中,通過線程間通信方式,客戶端100與服務器200進行數(shù)據(jù)交互,例如,在上述服務器200位于某應用程序的渲染線程或者渲染引擎線程時,上述客戶端100可以位于該應用程序的gui(圖形用戶接口,graphicaluserinterface)線程。可以理解,本申請實施例對于客戶端100與服務器200的數(shù)據(jù)交互方式不加以限制。
在實際應用中,上述智能終端具體包括但不限:智能手機、平板電腦、電子書閱讀器、mp3(動態(tài)影像專家壓縮標準音頻層面3,movingpictureexpertsgroupaudiolayeriii)播放器、mp4(動態(tài)影像專家壓縮標準音頻層面4,movingpictureexpertsgroupaudiolayeriv)播放器、膝上型便攜計算機、車載電腦、臺式計算機、機頂盒、智能電視機、可穿戴設備等等。
在本申請的一種可選實施例中,客戶端100與服務器200之間的數(shù)據(jù)交互過程具體可以包括如下步驟:
步驟a1、客戶端100向服務器200發(fā)送處理請求,并在該處理請求中攜帶目標ui的地址信息等信息;
步驟a2、服務器200依據(jù)目標ui的地址信息,獲取目標ui的界面元素;
步驟a3、服務器200從目標ui的所有界面元素中,獲取符合預置優(yōu)先條件的第一界面元素;
步驟a4、服務器200對所述第一界面元素進行優(yōu)先渲染,并輸出所述第一界面元素的渲染結(jié)果;
其中,所述第一界面元素的數(shù)目可以為一個或者多個,在每個第一界面元素被渲染完畢時,都可以輸出對應的渲染結(jié)果。
步驟a5、服務器200對不符合預置優(yōu)先條件的第二界面元素進行渲染,并輸出所述第二界面元素的渲染結(jié)果。
需要說明的是,圖1所示的應用環(huán)境只是作為本申請的應用環(huán)境的示例,而不理解為本申請實施例對于應用環(huán)境的限制。本申請實施例的一個目的在于,針對待渲染的目標ui,對其符合預置優(yōu)先條件的第一界面元素進行優(yōu)先渲染,由此可以快速輸出與目標ui相關聯(lián)的ui內(nèi)容,而不會對具體的應用環(huán)境加以限制。
方法實施例一
參照圖2,示出了本申請的一種界面處理方法實施例一的步驟流程圖,具體可以包括如下步驟:
步驟201、針對待渲染的目標ui,獲取符合預置優(yōu)先條件的第一界面元素;
在實際應用中,目標ui可以為app的啟動界面,也可以為app的中間界面;并且,目標ui中界面元素的類型具體可以包括:圖片類型、視頻類型、控件類型、文本類型等,本申請實施例對于具體的目標ui及其中界面元素的具體類型不加以限制。
本申請實施例中,預置優(yōu)先條件可用于表示優(yōu)先渲染的界面元素所符合的條件,由此,第一界面元素可用于表示目標ui中優(yōu)先渲染的界面元素。
本申請實施例可以提供預置優(yōu)先條件的如下技術(shù)方案:
技術(shù)方案1、
技術(shù)方案1中,第一界面元素可用于表示與目標ui的布局相關的界面元素。如微信app的啟動界面1中l(wèi)istview控件就是與其布局相關的界面元素,而該啟動界面1中的歷史會話則是與具體的布局內(nèi)容相關的界面內(nèi)容;故本申請實施例可以對listview控件進行優(yōu)先渲染,以首先向用戶呈現(xiàn)目標ui的布局,接著向用戶呈現(xiàn)具體布局內(nèi)容,上述呈現(xiàn)順序與用戶的視覺順序一致,因此能夠提高目標ui的渲染效果。
在實際應用中,所述預置優(yōu)先條件具體可以包括:用于表征第一界面元素與目標ui的布局相關的布局相關條件,則所述獲取符合預置優(yōu)先條件的第一界面元素的步驟201,具體可以包括如下步驟中的至少一種:
步驟b1、通過調(diào)用第一預置接口,獲取符合所述布局相關條件的第一界面元素;
其中,步驟b1中第一預置接口可以為開發(fā)者提供的接口,以使渲染引擎通過調(diào)用該第一預置接口獲取目標ui中的第一界面元素。
步驟b2、依據(jù)所述目標ui的數(shù)據(jù),獲取第一預置標記為布局相關標記的界面元素,作為第一界面元素;
其中,步驟b2中第一預置標記可以為開發(fā)者設計的標記,以使渲染引擎通過該第一預置標記獲取目標ui中的第一界面元素。在本申請的一種可選實施例中,每個界面元素都可以具有對應的第一預置標記,其值為1可表示其為布局相關標記,其值為0可用于其不為布局相關標記。在本申請的另一種可選實施例中,可以根據(jù)是否存在界面元素對應的第一預置標記,確定當前界面元素是否為第一界面元素。可以理解,本申請實施例對于當前界面元素是否為第一界面元素的具體確定過程不加以限制。
步驟b3、依據(jù)所述目標ui的布局文件和/或布局代碼,獲取與所述目標ui的布局相關的第一界面元素。
步驟b3可以分析目標ui的布局文件和/或布局代碼,并基于分析結(jié)果獲取與所述目標ui的布局相關的第一界面元素。在本申請的一種可選實施例中,布局文件或布局代碼中可以包括目標ui的布局描述信息,例如,該布局描述信息具體可以包括:與布局相關的第一界面元素的id(標識, identity)和布局參數(shù)等信息,則可以基于id的匹配獲取與所述目標ui的布局相關的第一界面元素??梢岳斫?,本申請實施例對于布局文件和/或布局代碼的具體分析過程不加以限制。
技術(shù)方案2、
技術(shù)方案2中,符合所述用戶相關條件的第一界面元素可用于表示與當前用戶相關的界面元素。上述當前用戶相關的界面元素具體可以包括:根據(jù)當前用戶的興趣標簽或用戶習慣確定出的界面元素。其中,上述興趣標簽或用戶習慣可以依據(jù)當前用戶的歷史行為數(shù)據(jù)得到。
例如,微信app的啟動界面1中歷史會話通常包括多個聯(lián)系人的歷史會話,則可以依據(jù)聯(lián)系人與當前用戶的親密度、聯(lián)系頻率等因素,確定與當前用戶最親密的目標聯(lián)系人,并將該目標聯(lián)系人對應的歷史會話作為第一界面元素。
又如,淘寶app的啟動界面2具體可以包括:“掃一掃”、“搜索框”、“聚劃算”等部分對應的界面元素,假設當前用戶在最近一段時間內(nèi)習慣性地在打開淘寶app后、點擊“聚劃算”部分,則可以將“聚劃算”部分對應的界面元素作為第一界面元素。
可以理解,上述獲取上述當前用戶相關的界面元素的過程只是作為示例,本領域技術(shù)人員可以根據(jù)興趣標簽或者用戶習慣確定出任意的界面元素,本申請實施例對于符合所述用戶相關條件的第一界面元素的具體獲取過程不加以限制。
在實際應用中,所述預置優(yōu)先條件具體可以包括:用于表征第一界面元素與用戶相關的用戶相關條件,則所述獲取符合預置優(yōu)先條件的第一界面元素的步驟201,具體可以包括:
步驟c1、通過調(diào)用第二預置接口,獲取符合所述用戶相關條件的第一界面元素;和/或
步驟c2、依據(jù)所述目標ui的數(shù)據(jù),獲取第二預置標記為用戶相關標記的界面元素,作為第一界面元素。
其中,步驟c1中第二預置接口可以為開發(fā)者提供的接口,以使渲染引擎通過調(diào)用該第二預置接口獲取目標ui中的第一界面元素。步驟c2中第二 預置標記可以為開發(fā)者設計的標記,以使渲染引擎通過該第二預置標記獲取目標ui中的第一界面元素??梢岳斫?,本申請實施例對于與當前用戶相關的界面元素的具體獲取過程不加以限制。
技術(shù)方案3
技術(shù)方案3中,所述預置優(yōu)先條件具體可以包括:底色條件,或者,所述預置優(yōu)先條件包括:背景條件。其中,上述底色條件可以使得優(yōu)先輸出目標ui的底色,上述背景條件可以使得優(yōu)先輸出目標ui的背景圖像。
以上通過技術(shù)方案1-技術(shù)方案3對預置優(yōu)先條件進行了詳細介紹,可以理解,本領域技術(shù)人員根據(jù)實際應用需求采用任意的預置優(yōu)先條件。例如,在采用數(shù)據(jù)量小于閾值的第一界面元素對應的預置優(yōu)先條件時,可以提高ui內(nèi)容的呈現(xiàn)速度;又如,在采用視覺順序較優(yōu)的第一界面元素對應的預置優(yōu)先條件時,可以提高呈現(xiàn)內(nèi)容與視覺順序的一致性等。
在本申請的一種可選實施例中,所述針對待渲染的目標ui,獲取符合預置優(yōu)先條件的第一界面元素的步驟201,具體可以包括:
加載待渲染的目標ui的界面元素,并在每次加載界面元素后,執(zhí)行:
判斷當前界面元素是否符合預置優(yōu)先條件;
在所述當前界面元素符合預置優(yōu)先條件時,獲取符合預置優(yōu)先條件的第一界面元素。也即,可以將當前界面元素作為第一界面元素。
步驟202、對所述第一界面元素進行優(yōu)先渲染;
在本申請的一種可選實施例中,當?shù)谝唤缑嬖貙匿秩救蝿罩С址纸鈺r,可以將該渲染任務分解為多個渲染子任務,并利用多線程執(zhí)行所述渲染子任務;由此可以提高第一界面元素的渲染速度及對應渲染結(jié)果的呈現(xiàn)速度。
在本申請的另一種可選實施例中,當?shù)谝唤缑嬖氐臄?shù)目為多個時,可以利用多線程對該多個第一界面元素進行異步處理,由此可以提高第一界面元素的渲染速度及對應渲染結(jié)果的呈現(xiàn)速度。
可以理解,本申請實施例對于第一界面元素的具體渲染過程不加以限制。
步驟203、輸出所述第一界面元素的渲染結(jié)果。
在實際應用中,服務器可以將所述第一界面元素的渲染結(jié)果輸出給客戶端,以使客戶端在智能終端上對其進行展示?;蛘?,渲染引擎可以直接在智能終端上展示所述第一界面元素的渲染結(jié)果??梢岳斫?,本申請實施例對于輸出所述第一界面元素的渲染結(jié)果的具體過程不加以限制。
綜上,本申請實施例針對待渲染的目標ui,對其符合預置優(yōu)先條件的第一界面元素進行優(yōu)先渲染。由于上述第一界面元素為目標ui中的界面元素,故其與目標ui具有一定的關聯(lián),并且,由于在第一界面元素渲染完畢后可以立即輸出所述第一界面元素的渲染結(jié)果;因此,本申請實施例可以快速輸出與目標ui相關聯(lián)的ui內(nèi)容,從而能夠提高ui的渲染效果。
方法實施例二
參照圖3,示出了本申請的一種界面處理方法實施例二的步驟流程圖,具體可以包括如下步驟:
步驟301、針對待渲染的目標ui,獲取符合預置優(yōu)先條件的第一界面元素;
步驟302、對所述第一界面元素進行優(yōu)先渲染;
步驟303、輸出所述第一界面元素的渲染結(jié)果;
相對于圖2所示方法實施例一,本實施例的方法還可以包括:
步驟304、針對待渲染的目標ui,獲取不符合預置優(yōu)先條件的第二界面元素;
步驟305、對所述第二界面元素進行渲染;
步驟306、輸出所述第二界面元素的渲染結(jié)果。
在實際應用中,步驟305的執(zhí)行時機具體可以包括:在第一界面元素的渲染過程中、或者完成第一界面元素的渲染后。其中,在第一界面元素的渲染過程中,可以采用與第一界面元素的渲染線程不同的線程進行第二界面元素的渲染??梢岳斫猓旧暾垖嵤├龑τ诓襟E305的具體執(zhí)行時機不加以限制。
在本申請實施例的一種可選實施例中,可以對不符合預置優(yōu)先條件的第二界面元素進行異步渲染,相對于現(xiàn)有界面元素的同步渲染,上述第二界面 元素的異步渲染可以使得不同的第二界面元素對應的渲染獨立執(zhí)行,因此能夠提高渲染效率。
綜上,應用本申請實施例,由于第一界面元素和第二界面元素同為目標ui中的界面元素,故二者的渲染結(jié)果也存在較高的相關性,這樣,在不同時刻輸出的第一界面元素和第二界面元素的渲染結(jié)果,可以呈現(xiàn)增量顯示的效果,并不會造成ui的跳躍,因此能夠提高ui的渲染效果和對應的用戶體驗。
在本申請的一種可選實施例中,本申請的界面處理方法具體可以包括如下步驟:
步驟s1、加載待渲染的目標ui的界面元素;
步驟s2、在每次加載界面元素后,判斷當前界面元素是否符合預置優(yōu)先條件;
步驟s3、在所述當前界面元素符合預置優(yōu)先條件時,獲取符合預置優(yōu)先條件的第一界面元素;
步驟s4、在所述當前界面元素不符合預置優(yōu)先條件時,將所述當前界面元素作為第二界面元素進行渲染,其中,所述第二界面元素的渲染與所述第一渲染界面的渲染相互獨立,或者,所述第一界面元素的渲染優(yōu)先于所述第二界面元素的渲染。
步驟s4中,第二界面元素的渲染與所述第一渲染界面的渲染相互獨立可用于表示第二界面元素的渲染與所述第一渲染界面的渲染被異步執(zhí)行,因此可以提高界面元素的渲染速度及對應渲染結(jié)果的呈現(xiàn)速度。或者,第二界面元素的渲染與所述第一渲染界面的渲染也可被同步執(zhí)行,但第一界面元素的渲染優(yōu)先于所述第二界面元素的渲染,例如,可以首先執(zhí)行第一界面元素的渲染,并在第一界面的渲染被執(zhí)行完畢后,執(zhí)行第二界面元素的渲染。
在本申請的另一種可選實施例中,所述將所述當前界面元素作為第二界面元素進行渲染,具體可以包括:將所述當前界面元素對應的渲染任務寫入渲染隊列,并利用多線程執(zhí)行所述渲染隊列中的渲染任務。本優(yōu)選實施例可以通過多線程并行執(zhí)行渲染隊列中渲染任務;因此,能夠大大提升渲染速度和渲染效率。
方法實施例三
參照圖4,示出了本申請的一種界面處理方法實施例三的步驟流程圖,具體可以包括如下步驟:
步驟401、針對待渲染的目標ui,獲取符合預置優(yōu)先條件的第一界面元素;
步驟402、對所述第一界面元素進行優(yōu)先渲染;
步驟403、輸出所述第一界面元素的渲染結(jié)果;
步驟404、針對待渲染的目標ui,獲取不符合預置優(yōu)先條件的第二界面元素;
步驟405、對所述第二界面元素進行渲染;
步驟406、輸出所述第二界面元素的渲染結(jié)果;
相對于圖3所示方法實施例二,本實施例中對所述第二界面元素進行渲染的步驟405,具體可以包括:
步驟451、將所述第二界面元素對應的渲染任務寫入第一渲染隊列;
步驟452、利用多線程執(zhí)行所述第一渲染隊列中渲染任務;
步驟453、接收所述多線程發(fā)送的、所述渲染任務的渲染結(jié)果。
現(xiàn)有方案按照開發(fā)者的布局順序依次渲染界面元素,具體地,首先渲染第一個界面元素,在第一個界面元素的渲染完畢后繼續(xù)渲染第二個界面元素,依次類推,在第一個界面元素涉及較多的數(shù)據(jù)量時,將嚴重影響ui的渲染速度。
而本申請實施例可以通過多線程并行執(zhí)行第一渲染隊列中渲染任務;因此,能夠大大提升渲染速度和渲染效率。在目標ui為app的啟動界面時,還可以提高app的啟動速度。
在本申請的一種可選實施例中,所述利用多線程執(zhí)行所述第一渲染隊列中渲染任務的步驟452,具體可以包括:
步驟d1、各線程在處于空閑狀態(tài)時,掃描所述第一渲染隊列;以及
步驟d2、在掃描到新的渲染任務時,從所述第一渲染隊列中讀取并執(zhí)行所述新的渲染任務。
本可選實施例中,由于處于空閑狀態(tài)的線程可以無限制地從所述第一渲 染隊列中讀取并執(zhí)行渲染任務,因此,能夠?qū)崿F(xiàn)多線程對于多個渲染任務的搶占式和連續(xù)執(zhí)行,從而最大可能地提高渲染任務的執(zhí)行效率。
可以理解,上述多線程對于多個渲染任務的搶占式和連續(xù)執(zhí)行只是作為可選實施例,實際上,還可以依據(jù)多個渲染任務的執(zhí)行順序指定對應的線程,本申請實施例對于利用多線程執(zhí)行所述第一渲染隊列中渲染任務的具體過程不加以限制。
方法實施例四
參照圖5,示出了本申請的一種界面處理方法實施例四的步驟流程圖,具體可以包括如下步驟:
步驟501、針對待渲染的目標ui,獲取符合預置優(yōu)先條件的第一界面元素;
步驟502、對所述第一界面元素進行優(yōu)先渲染;
步驟503、輸出所述第一界面元素的渲染結(jié)果;
步驟504、針對待渲染的目標ui,獲取不符合預置優(yōu)先條件的第二界面元素;
步驟505、對所述第二界面元素進行渲染;
步驟506、輸出所述第二界面元素的渲染結(jié)果;
相對于圖4所示方法實施例三,本實施例中對所述第二界面元素進行渲染的步驟505,具體可以包括:
步驟551、針對所述第二界面元素對應的支持分解的渲染任務,將其分解為多個渲染子任務;
步驟552、將所述多個渲染子任務寫入第二渲染隊列;
步驟553、利用多線程執(zhí)行所述第二渲染隊列中渲染子任務;
步驟554、接收所述多線程發(fā)送的、所述渲染子任務的渲染結(jié)果。
本實施例可以適用于支持分解的渲染任務的并行執(zhí)行,以提高渲染任務的執(zhí)行速度。
在實際應用中,所述支持分解的渲染任務具體可以包括:圖片元素、視頻元素、文本元素等界面元素對應的渲染任務。以圖片元素對應的渲染任務 為例,其具體可以包括:讀取圖片內(nèi)存到內(nèi)存并完成解碼的解碼任務、以及依據(jù)解碼結(jié)果生成紋理內(nèi)容的生成任務,其中,解碼任務可以支持分解。可以理解,本申請實施例對于支持分解的渲染任務不加以限制。
在本申請的一種可選實施例中,所述利用多線程執(zhí)行所述第二渲染隊列中渲染子任務的步驟553,具體可以包括:
步驟e1、各線程在處于空閑狀態(tài)時,掃描所述第二渲染隊列;以及
步驟e2、在掃描到新的渲染子任務時,從所述第二渲染隊列中讀取并執(zhí)行所述新的渲染子任務。
本可選實施例中,由于處于空閑狀態(tài)的線程可以無限制地從所述第二渲染隊列中讀取并執(zhí)行渲染子任務,因此,能夠?qū)崿F(xiàn)多線程對于多個渲染子任務的搶占式和連續(xù)執(zhí)行,從而最大可能地提高渲染任務的執(zhí)行效率。
可以理解,上述多線程對于多個渲染子任務的搶占式和連續(xù)執(zhí)行只是作為可選實施例,實際上,還可以依據(jù)多個渲染子任務的執(zhí)行順序指定對應的線程,本申請實施例對于利用多線程執(zhí)行所述第二渲染隊列中渲染子任務的具體過程不加以限制。
方法實施例五
參照圖6,示出了本申請的一種界面處理方法實施例五的步驟流程圖,具體可以包括如下步驟:
步驟601、主線程針對待渲染的目標ui,獲取符合預置優(yōu)先條件的第一界面元素;
步驟602、主線程對所述第一界面元素進行優(yōu)先渲染;
步驟603、主線程輸出所述第一界面元素的渲染結(jié)果;
步驟604、主線程針對待渲染的目標ui,獲取不符合預置優(yōu)先條件的第二界面元素;
步驟605、主線程對所述第二界面元素進行渲染;
步驟606、主線程輸出所述第二界面元素的渲染結(jié)果;
對所述第二界面元素進行渲染的步驟605,具體可以包括:
步驟651、主線程針對所述第二界面元素對應的支持分解的渲染任務, 將其分解為多個渲染子任務;
步驟652、主線程將所述多個渲染子任務寫入第二渲染隊列;
步驟653、主線程利用多線程執(zhí)行所述第二渲染隊列中渲染子任務;
步驟654、主線程接收所述多線程發(fā)送的、所述渲染子任務的渲染結(jié)果。
步驟655、主線程在完成所述第一界面元素的渲染后,對不支持分解的渲染任務進行渲染。
相對于圖5所示方法實施例三,本實施例的方法可由主線程執(zhí)行,也即,主線程不僅可以執(zhí)行對所述第一界面元素進行優(yōu)先渲染的步驟602,還可以執(zhí)行渲染子任務的生產(chǎn),以通過其他的多線程消費這些渲染子任務;并且,子線程在完成第一界面元素的渲染后,還可以對不支持分解的渲染任務進行渲染;由于可以避免主線程空閑所導致的資源浪費的情形,因此可以提高資源利用率、以及能夠提高渲染效率。
在實際應用中,主線程可以表示用于界面處理的主要線程,例如,其可以為渲染引擎的主線程。而多線程可以表示主線程開啟的用于并行執(zhí)行渲染子任務的輔助線程。可以理解,本申請實施例對于具體的主線程和輔助線程不加以限制。
在本申請的一種可選實施例中,所述對所述第二界面元素進行渲染的步驟605,還可以包括:主線程在完成不支持分解的渲染任務后,執(zhí)行所述第二渲染隊列中渲染子任務。由于可以避免主線程空閑所導致的資源浪費的情形,因此可以進一步提高資源利用率、以及能夠進一步提高渲染效率。
方法實施例六
參照圖7,示出了本申請的一種界面處理方法實施例六的步驟流程圖,具體可以包括如下步驟:
步驟701、主線程獲取目標ui的數(shù)據(jù);
步驟702、主線程依據(jù)目標ui的數(shù)據(jù),對目標ui的界面元素進行遍歷;
步驟703、主線程判斷當前界面元素是否符合預置優(yōu)先條件,若是,則執(zhí)行步驟704,否則執(zhí)行步驟705;
步驟704、主線程將當前界面元素作為第一界面元素,對所述第一界面 元素進行優(yōu)先渲染,并輸出所述第一界面元素的渲染結(jié)果;
步驟705、主線程將當前界面元素作為第二界面元素;
步驟706、主線程判斷上述第二界面元素對應的渲染任務是否支持分解,若是,則執(zhí)行步驟707,否則執(zhí)行步驟708;
步驟707、主線程針對所述第二界面元素對應的支持分解的渲染任務,將其分解為多個渲染子任務,將所述多個渲染子任務寫入第二渲染隊列,利用多個第二線程執(zhí)行所述第二渲染隊列中渲染子任務,并接收多個第二線程發(fā)送的、所述渲染子任務的渲染結(jié)果;
步驟708、主線程將上述第二界面元素對應的渲染任務寫入第一渲染隊列,利用多個第一線程執(zhí)行所述第一渲染隊列中渲染任務,接收多個第一線程發(fā)送的、所述渲染任務的渲染結(jié)果,并輸出所述第二界面元素的渲染結(jié)果;
需要說明的是,主線程在通過步驟704或步驟705-步驟706-步驟707或步驟705-步驟706-步驟708對當前界面元素進行處理后,繼續(xù)返回步驟703對下一界面元素進行處理;
步驟709、主線程在完成目標ui中所有第一界面元素的渲染后,判斷第一渲染隊列是否為空,若否,則執(zhí)行步驟710,若是則執(zhí)行步驟711;
步驟710、主線程對第一渲染隊列中渲染任務進行渲染,并輸出對應的渲染結(jié)果;
步驟711、主線程判斷第二渲染隊列是否為空,若否,則執(zhí)行步驟712,若是則執(zhí)行步驟713;
步驟712、主線程對第二渲染隊列中渲染子任務進行渲染,并輸出對應的渲染結(jié)果;
步驟713、完成目標ui中所有界面元素的渲染。
需要說明的是,對于方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術(shù)人員應該知悉,本申請實施例并不受所描述的動作順序的限制,因為依據(jù)本申請實施例,某些步驟可以采用其他順序或者同時進行。其次,本領域技術(shù)人員也應該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作并不一定是本申請實施例所必須的。
裝置實施例一
參照圖8,示出了本申請的一種界面處理裝置實施例一的結(jié)構(gòu)框圖,具體可以包括如下模塊:
第一獲取模塊801,用于針對待渲染的目標ui,獲取符合預置優(yōu)先條件的第一界面元素;
第一渲染模塊802,用于對所述第一界面元素進行優(yōu)先渲染;以及
第一輸出模塊803,用于輸出所述第一界面元素的渲染結(jié)果。
在本申請的一種可選實施例中,所述預置優(yōu)先條件具體可以包括:用于表征第一界面元素與目標ui的布局相關的布局相關條件,則所述第一獲取模塊801,具體可以包括:
第一獲取子模塊,用于通過調(diào)用第一預置接口,獲取符合所述布局相關條件的第一界面元素;和/或
第二獲取子模塊,用于依據(jù)所述目標ui的數(shù)據(jù),獲取第一預置標記為布局相關標記的界面元素,作為第一界面元素;和/或
第三獲取子模塊,用于依據(jù)所述目標ui的布局文件和/或布局代碼,獲取與所述目標ui的布局相關的第一界面元素。
在本申請的另一種可選實施例中,所述預置優(yōu)先條件具體可以包括:用于表征第一界面元素與用戶相關的用戶相關條件,則所述第一獲取模塊801,具體可以包括:
第四獲取子模塊,用于通過調(diào)用第二預置接口,獲取符合所述用戶相關條件的第一界面元素;和/或
第五獲取子模塊,用于依據(jù)所述目標ui的數(shù)據(jù),獲取第二預置標記為用戶相關標記的界面元素,作為第一界面元素。
在本申請的再一種可選實施例中,所述預置優(yōu)先條件具體可以包括:底色條件,或者,所述預置優(yōu)先條件具體可以包括:背景條件。
裝置實施例二
參照圖9,示出了本申請的一種界面處理裝置實施例二的結(jié)構(gòu)框圖,具體可以包括如下模塊:
第一獲取模塊901,用于針對待渲染的目標ui,獲取符合預置優(yōu)先條件 的第一界面元素;
第一渲染模塊902,用于對所述第一界面元素進行優(yōu)先渲染;
第一輸出模塊903,用于輸出所述第一界面元素的渲染結(jié)果;
第二獲取模塊904,用于針對待渲染的目標ui,獲取不符合預置優(yōu)先條件的第二界面元素;
第二渲染模塊905,用于對所述第二界面元素進行渲染;
第二輸出模塊906,用于輸出所述第二界面元素的渲染結(jié)果。
在本申請的一種可選實施例中,所述第二渲染模塊905,具體可以包括:
第一寫入子模塊,用于將所述第二界面元素對應的渲染任務寫入第一渲染隊列;
第一執(zhí)行子模塊,用于利用多線程執(zhí)行所述第一渲染隊列中渲染任務;以及
第一接收子模塊,用于接收所述多線程發(fā)送的、所述渲染任務的渲染結(jié)果。
在本申請的另一種可選實施例中,所述第二渲染模塊905,具體可以包括:
分解子模塊,用于針對所述第二界面元素對應的支持分解的渲染任務,將其分解為多個渲染子任務;
第二寫入子模塊,用于將所述多個渲染子任務寫入第二渲染隊列;
第二執(zhí)行子模塊,用于利用多線程執(zhí)行所述第二渲染隊列中渲染子任務;以及
第二接收子模塊,用于接收所述多線程發(fā)送的、所述渲染子任務的渲染結(jié)果。
在本申請的再一種可選實施例中,所述裝置可以位于主線程,則所述裝置還可以包括:
第三渲染模塊,用于在完成所述第一界面元素的渲染后,對不支持分解的渲染任務進行渲染。
在本申請的又一種可選實施例中,所述裝置還可以包括:
第四渲染模塊,用于在完成不支持分解的渲染任務后,執(zhí)行所述第二渲 染隊列中渲染子任務。
對于裝置實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
智能終端實施例
參照圖10,示出了本申請一種智能終端實施例的結(jié)構(gòu)框圖,具體可以包括:至少一個存儲器1001、顯示器1002、至少一個處理器1003和至少一個輸入單元1004。
其中,該輸入單元1004可用于接收用戶輸入的數(shù)字或字符信息,以及控制信號。具體地,本申請實施例中,該輸入單元1004可以包括觸摸屏1041,可收集用戶在其上或附近的觸摸操作(比如用戶使用手指、觸筆等任何適合的物體或附件在觸摸屏1041上的操作),并根據(jù)預先設定的程式驅(qū)動相應的連接裝置。當然,除了觸摸屏1041,輸入單元1004還可以包括其他輸入設備,如物理鍵盤、功能鍵(比如音量控制按鍵、開關按鍵等)、鼠標等。
顯示器1002具體可以包括顯示面板,可選的,可以采用液晶顯示器(liquidcrystaldisplay,lcd)或有機發(fā)光二極管(organiclight-emittingdiode,oled)等形式來配置顯示面板。其中,觸摸屏1041可以覆蓋顯示面板,形成觸摸顯示屏,當該觸摸顯示屏檢測到在其上或附近的觸摸操作后,傳送給處理器1003以執(zhí)行相應的處理。
在本申請實施例中,通過調(diào)用存儲該存儲器1001內(nèi)的程序,和/或,模塊,和/或,數(shù)據(jù),處理器1003接收用戶針對符合預置規(guī)則的目標候選項的第一觸發(fā)指令;響應于所述第一觸發(fā)指令,向用戶提供所述目標候選項對應的擴展內(nèi)容;其中,所述擴展內(nèi)容為從輸入法程序之外的應用程序獲取的內(nèi)容。
本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。
本領域內(nèi)的技術(shù)人員應明白,本申請實施例的實施例可提供為方法、裝 置、或計算機程序產(chǎn)品。因此,本申請實施例可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本申請實施例可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、cd-rom、光學存儲器等)上實施的計算機程序產(chǎn)品的形式。
在一個典型的配置中,所述計算機設備包括一個或多個處理器(cpu)、輸入/輸出接口、網(wǎng)絡接口和內(nèi)存。內(nèi)存可能包括計算機可讀介質(zhì)中的非永久性存儲器,隨機存取存儲器(ram)和/或非易失性內(nèi)存等形式,如只讀存儲器(rom)或閃存(flashram)。內(nèi)存是計算機可讀介質(zhì)的示例。計算機可讀介質(zhì)包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術(shù)來實現(xiàn)信息存儲。信息可以是計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計算機的存儲介質(zhì)的例子包括,但不限于相變內(nèi)存(pram)、靜態(tài)隨機存取存儲器(sram)、動態(tài)隨機存取存儲器(dram)、其他類型的隨機存取存儲器(ram)、只讀存儲器(rom)、電可擦除可編程只讀存儲器(eeprom)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲器(cd-rom)、數(shù)字多功能光盤(dvd)或其他光學存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設備或任何其他非傳輸介質(zhì),可用于存儲可以被計算設備訪問的信息。按照本文中的界定,計算機可讀介質(zhì)不包括非持續(xù)性的電腦可讀媒體(transitorymedia),如調(diào)制的數(shù)據(jù)信號和載波。
本申請實施例是參照根據(jù)本申請實施例的方法、終端設備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理終端設備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理終端設備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理終端設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理終端設備上,使得在計算機或其他可編程終端設備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程終端設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
盡管已描述了本申請實施例的優(yōu)選實施例,但本領域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例做出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本申請實施例范圍的所有變更和修改。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者終端設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者終端設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者終端設備中還存在另外的相同要素。
以上對本申請所提供的一種界面處理方法、一種界面處理裝置和一種智能終端,進行了詳細介紹,本文中應用了具體個例對本申請的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本申請的方法及其核心思想;同時,對于本領域的一般技術(shù)人員,依據(jù)本申請的思想,在具體實施方式及應用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應理解為對本申請的限制。