亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用戶界面的組件處理方法、裝置及設(shè)備、可讀介質(zhì)與流程

文檔序號:12863497閱讀:184來源:國知局
本申請涉及計算機
技術(shù)領(lǐng)域
:,尤其涉及用戶界面的組件處理方法、裝置及設(shè)備、可讀介質(zhì)。
背景技術(shù)
::用戶界面(userinterface,簡稱ui),介于用戶與硬件之間,為彼此之間交互溝通而設(shè)計。用戶通過用戶界面能夠方便有效地去操作硬件,以達成雙向之交互。在交互中,用戶的大部分時間都消耗在界面操作中(數(shù)據(jù)錄入、數(shù)據(jù)修改、數(shù)據(jù)查閱等等),而界面操作會涉及到界面內(nèi)容的展示。展示界面內(nèi)容前,需要相關(guān)應(yīng)用先加載用戶界面組件(ui組件),然后渲染加載的ui組件,最終根據(jù)渲染后的ui組件展示界面內(nèi)容。目前在展示界面內(nèi)容時,一般通過滾屏形式陸續(xù)展示界面內(nèi)容,對應(yīng)這種展示界面內(nèi)容的方式,考慮到對內(nèi)存的消耗,相關(guān)應(yīng)用不會一次把所有界面內(nèi)容涉及的ui組件都加載進去,而是滾屏到相應(yīng)位置后,才加載將要顯示的那一部分界面內(nèi)容涉及的ui組件。但是,對于界面內(nèi)容較繁雜的界面,例如:列表界面,其所展示的列表條目內(nèi)還會包括文本、圖片、動畫、超鏈接、表格等類型不同的界面元素,在展示此類內(nèi)容較繁雜的界面內(nèi)容時,需要針對各類界面元素創(chuàng)建多種類型的ui組件,而創(chuàng)建ui組件極其耗費設(shè)備資源,易出現(xiàn)界面卡頓的現(xiàn)象。技術(shù)實現(xiàn)要素:有鑒于此,本申請?zhí)峁┮环N用戶界面的組件處理方法、裝置及設(shè)備、可讀介質(zhì)。根據(jù)本申請實施例的第一方面,提供一種用戶界面的組件處理方法,包括步驟:在有界面內(nèi)容結(jié)束展示時,獲取展示該界面內(nèi)容時所渲染的組件;對所獲取的組件進行拆分,拆分所得的組件包括至少一ui組件、以及用于嵌套各ui組件的容器組件;根據(jù)拆分所得的各組件所攜帶的界面內(nèi)容,確定容器組件的描述信息、以及各ui組件的描述信息;對應(yīng)所確定的描述信息,存儲容器組件以及各ui組件。根據(jù)本申請實施例的第二方面,提供一種用戶界面的組件處理方法,包括步驟:在有界面內(nèi)容需展示時,基于需展示的界面內(nèi)容確定所需的ui組件的描述信息、以及用于嵌套所需的ui組件的容器組件的描述信息;根據(jù)所確定的描述信息,獲取預(yù)存的ui組件和容器組件,其中,預(yù)存的ui組件和容器組件為拆分在先渲染的組件后所得的組件;基于所述界面內(nèi)容將獲取的ui組件嵌套到容器組件內(nèi);對嵌套有所獲取的ui組件的容器組件進行渲染處理。根據(jù)本申請實施例的第三方面,提供一種電子設(shè)備,包括:處理器;存儲處理器可執(zhí)行指令的存儲器;其中,所述處理器耦合于所述存儲器,用于讀取所述存儲器存儲的程序指令,并作為響應(yīng),執(zhí)行如下操作:在有界面內(nèi)容結(jié)束展示時,獲取展示該界面內(nèi)容時所渲染的組件;對所獲取的組件進行拆分,拆分所得的組件包括至少一ui組件、以及用于嵌套各ui組件的容器組件;根據(jù)拆分所得的各組件所攜帶的界面內(nèi)容,確定容器組件的描述信息、以及各ui組件的描述信息;對應(yīng)所確定的描述信息,存儲容器組件以及各ui組件。根據(jù)本申請實施例的第四方面,提供一種電子設(shè)備,包括:處理器;存儲處理器可執(zhí)行指令的存儲器;其中,所述處理器耦合于所述存儲器,用于讀取所述存儲器存儲的程序指令,并作為響應(yīng),執(zhí)行如下操作:在有界面內(nèi)容需展示時,基于需展示的界面內(nèi)容確定所需的ui組件的描述信息、以及用于嵌套所需的ui組件的容器組件的描述信息;根據(jù)所確定的描述信息,獲取預(yù)存的ui組件和容器組件,其中,預(yù)存的ui組件和容器組件為拆分在先渲染的組件后所得的組件;基于所述界面內(nèi)容將獲取的ui組件嵌套到容器組件內(nèi);對嵌套有所獲取的ui組件的容器組件進行渲染處理。根據(jù)本申請實施例的第五方面,提供一種用戶界面的組件處理裝置,包括:渲染組件獲取模塊,用于在有界面內(nèi)容結(jié)束展示時,獲取展示該界面內(nèi)容時所渲染的組件;組件拆分模塊,用于對所獲取的組件進行拆分,拆分所得的組件包括至少一ui組件、以及用于嵌套各ui組件的容器組件;信息確定模塊,用于根據(jù)拆分所得的各組件所攜帶的界面內(nèi)容,確定容器組件的描述信息、以及各ui組件的描述信息;組件存儲模塊,用于對應(yīng)所確定的描述信息,存儲容器組件以及各ui組件。根據(jù)本申請實施例的第六方面,提供一種用戶界面的組件處理裝置,包括:描述確定模塊,用于在有界面內(nèi)容需展示時,基于需展示的界面內(nèi)容確定所需的ui組件的描述信息、以及用于嵌套所需的ui組件的容器組件的描述信息;預(yù)存組件獲取模塊,用于根據(jù)所確定的描述信息,獲取預(yù)存的ui組件和容器組件,其中,預(yù)存的ui組件和容器組件為拆分在先渲染的組件后所得的組件;組件嵌套模塊,用于基于所述界面內(nèi)容將獲取的ui組件嵌套到容器組件內(nèi);渲染處理模塊,用于對嵌套有所獲取的ui組件的容器組件進行渲染處理。根據(jù)本申請實施例的第七方面,提供一個或多個機器可讀介質(zhì),其上存儲有指令,當(dāng)由一個或多個處理器執(zhí)行時,使得終端設(shè)備執(zhí)行以上所述的方法。實施本申請?zhí)峁┑膶嵤├?,在有界面?nèi)容展示完成后,并非直接刪除展示該界面內(nèi)容時所渲染的組件,而是對所渲染的組件進行拆分,拆分成至少一ui組件、以及用于嵌套各ui組件的容器組件,然后根據(jù)各組件所攜帶的界面內(nèi)容,確定拆分所得的各組件的描述信息,再對應(yīng)所確定的描述信息,存儲容器組件以及各ui組件。有新的界面內(nèi)容需展示時,無需創(chuàng)建新的組件,而是在先存儲的將ui組件嵌套到容器組件內(nèi),再渲染嵌套后的容器組件,即可完成新的界面內(nèi)容的展示。所以在展示新的界面內(nèi)容時,無需針對所有界面元素創(chuàng)建ui組件,至少能省去部分ui組件的創(chuàng)建過程。能有效節(jié)約創(chuàng)建ui組件所耗費的設(shè)備資源和時間,進而提高界面加載效率和界面流暢度。附圖說明圖1是本申請一示例性實施例示出的用戶界面的組件處理方法的流程圖;圖2是本申請另一示例性實施例示出的用戶界面的組件處理方法的流程圖;圖3是本申請另一示例性實施例示出的用戶界面的組件處理方法的流程圖;圖4是本申請一示例性實施例示出的實現(xiàn)用戶界面的組件處理的系統(tǒng)的框圖;圖5是本申請另一示例性實施例示出的用戶界面的組件處理方法的流程圖;圖6是本申請一示例性實施例示出的用戶界面的組件處理裝置的邏輯框圖;圖7是本申請另一示例性實施例示出的用戶界面的組件處理裝置的邏輯框圖;圖8是本申請另一示例性實施例示出的用戶界面的組件處理裝置的邏輯框圖;圖9是本申請另一示例性實施例示出的系統(tǒng)參數(shù)的優(yōu)化裝置的硬件結(jié)構(gòu)圖。具體實施方式這里將詳細(xì)地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本申請相一致的所有實施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本申請的一些方面相一致的裝置和方法的例子。在本申請使用的術(shù)語是僅僅出于描述特定實施例的目的,而非旨在限制本申請。在本申請和所附權(quán)利要求書中所使用的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義。還應(yīng)當(dāng)理解,本文中使用的術(shù)語“和/或”是指并包含一個或多個相關(guān)聯(lián)的列出項目的任何或所有可能組合。應(yīng)當(dāng)理解,盡管在本申請可能采用術(shù)語第一、第二、第三等來描述各種信息,但這些信息不應(yīng)限于這些術(shù)語。這些術(shù)語僅用來將同一類型的信息彼此區(qū)分開。例如,在不脫離本申請范圍的情況下,第一信息也可以被稱為第二信息,類似地,第二信息也可以被稱為第一信息。取決于語境,如在此所使用的詞語“如果”可以被解釋成為“在……時”或“當(dāng)……時”或“響應(yīng)于確定”。本申請實施例涉及的組件處理,針對的是界面展示過程中所加載、渲染的組件。加載組件時,需要針對各類界面元素創(chuàng)建ui組件,而創(chuàng)建ui組件極其耗費設(shè)備資源和內(nèi)存,易出現(xiàn)界面卡頓的現(xiàn)象。為了盡可能避免出現(xiàn)界面卡頓現(xiàn)象,相關(guān)技術(shù)在展示界面內(nèi)容的過程中,可以滾屏展示界面內(nèi)容,單獨使用uitableviewcell視圖來顯示每一行(也可稱作條目或cell)的數(shù)據(jù),達到顯示與數(shù)據(jù)的分離。首次加載組件時,可以僅創(chuàng)建n+1個cell組件,n為屏幕顯示區(qū)域內(nèi)能同時展示的cell的最大數(shù)量,然后渲染加載的n個cell組件,在屏幕顯示區(qū)域展示相應(yīng)的cell,并將剩余的一個cell組件存放到系統(tǒng)回收池。當(dāng)用戶執(zhí)行滾屏操作時,將會有cell從屏幕顯示區(qū)域移出,同時也會有待移入屏幕顯示區(qū)域的cell。相關(guān)技術(shù)針對待移入屏幕顯示區(qū)域的cell,可以直接調(diào)用并渲染系統(tǒng)回收池內(nèi)存放的cell組件。針對將會從屏幕顯示區(qū)域移出的cell,在其移出屏幕顯示區(qū)域后,將為展示該cell所渲染的cell組件,直接存放到系統(tǒng)回收池。但是,對于界面內(nèi)容較繁雜的列表界面,其所含的每個cell內(nèi)可能同時包括文本、圖片、動畫、超鏈接、表格等多種類型界面元素,而且不同cell內(nèi)的界面元素的數(shù)目和類型不完全相同。比如:一個cell內(nèi)包含一個縮略圖、一個文字標(biāo)簽,系統(tǒng)回收池內(nèi)存放的cell組件是為展示這個cell所創(chuàng)建的組件。另一個cell內(nèi)包含兩個縮略圖和兩個文字標(biāo)簽,為待移入屏幕顯示區(qū)域的cell,為了展示這個cell,直接采取相關(guān)技術(shù)調(diào)用系統(tǒng)回收池內(nèi)存放的cell組件后,由于這個cell所含的界面內(nèi)容與調(diào)用的cell組件不匹配,直接渲染調(diào)用的cell并不能完成這個cell展示,還需要創(chuàng)建兩個ui組件,一個用于展示縮略圖,另一個用于展示文字標(biāo)簽,因此,即使通過以上所述的相關(guān)技術(shù)加載組件,為展示界面內(nèi)容較繁雜的列表界面加載組件時,仍然需要創(chuàng)建很多ui組件,產(chǎn)生額外的設(shè)備資源消耗,同樣很容易出現(xiàn)界面卡頓的現(xiàn)象。本申請針對如何降低組件加載過程的設(shè)備資源消耗提出解決方案。本申請的方案,考慮到界面內(nèi)容較繁雜的列表界面,所含的不同cell內(nèi)的界面元素的數(shù)目和類型不完全相同??梢栽谟薪缑鎯?nèi)容展示完成后,對所渲染的組件進行拆分,并存儲拆分后的組件。這樣,在有界面內(nèi)容需展示時,針對不同的界面內(nèi)容可以靈活選取不同的組件,將選取的組件嵌套成與需展示的界面內(nèi)容匹配的組件,可以盡可能降低組件創(chuàng)建過程的發(fā)生。因此,能有效節(jié)約創(chuàng)建ui組件所耗費的設(shè)備資源和時間,降低組件加載過程的設(shè)備資源消耗,進而提高界面加載效率和界面流暢度。以下結(jié)合附圖詳細(xì)說明本申請的用戶界面的組件處理過程。請參閱圖1,圖1是本申請一示例性實施例示出的用戶界面的組件處理方法的流程圖,該實施例可以應(yīng)用于具備組件處理能力的各種電子設(shè)備,包括以下步驟s101-s104:步驟s101、在有界面內(nèi)容結(jié)束展示時,獲取展示該界面內(nèi)容時所渲染的組件。步驟s102、對所獲取的組件進行拆分,拆分所得的組件包括至少一ui組件、以及用于嵌套各ui組件的容器組件。步驟s103、根據(jù)拆分所得的各組件所攜帶的界面內(nèi)容,確定容器組件的描述信息、以及各ui組件的描述信息。步驟s104、對應(yīng)所確定的描述信息,存儲容器組件以及各ui組件。本申請實施例中,涉及的界面內(nèi)容可是操作系統(tǒng)界面的界面內(nèi)容、應(yīng)用程序界面的界面內(nèi)容、或者其他類型界面的界面內(nèi)容,這些界面可以是以條目形式展示界面內(nèi)容的列表界面,一條目對應(yīng)一組界面內(nèi)容。展示這些界面內(nèi)容前需加載、渲染組件,這里提到的組件指封裝起來的具有獨立功能的ui部件。當(dāng)界面內(nèi)容結(jié)束展示時,所渲染的組件可以拆分成具有良好接口的可重用的ui組件、以及用于嵌套各ui組件的容器組件。這個用于嵌套各ui組件的容器組件為最外層的組件,可以是一個內(nèi)部不含任何組件的組件,也可以是內(nèi)容含有部分組件的組件。拆分所得的ui組件可以是不能再拆分的組件(功能單一的ui組件),也可以是內(nèi)部嵌套有其他組件的組件(功能復(fù)雜的ui組件)。實際應(yīng)用中,本申請設(shè)計人員可以通過綜合考慮組件加載效率和實際的界面場景,根據(jù)每組界面內(nèi)容所含的界面元素的總數(shù)目、或者不同組的界面內(nèi)容之間的相同元素的數(shù)目、或者不同組的界面內(nèi)容之間不同界面元素的數(shù)目,來決定組件拆分程度。例如:一個列表界面,含有多個cell,所有的cell都只含有文字標(biāo)簽和按鈕,不同cell內(nèi)的文字標(biāo)簽的數(shù)目不同,但是所有cell內(nèi)的按鈕的樣式和數(shù)目都一樣,在拆分組件時,可以將組件拆分為一個內(nèi)部含有按鈕組件的容器組件、以及至少一個文字標(biāo)簽組件。在其他例子中,本申請設(shè)計人員還可以根據(jù)其他因素來決定組件拆分程度,本申請實施例對此不做限制。而組件拆分程度不同時,拆分后所得的組件的數(shù)目也不同。例如:界面內(nèi)容為列表界面的條目時,如果根據(jù)各條目所含的界面元素拆分組件,拆分所得的ui組件的數(shù)目一般由每個條目所含的界面元素的總數(shù)目、不同條目之間的相同界面元素的數(shù)目和不同條目之間的不同界面元素的數(shù)目中的至少一項確定。此外,拆分組件是為了在展示新的界面內(nèi)容時對拆分所得的組件進行復(fù)用。而拆分所得的各組件的屬性又不完全相同,在復(fù)用組件時,需要一一分析各組件的屬性后,才能找到與待展示的界面內(nèi)容匹配的組件,這樣復(fù)用組件也會耗費較多的時間和資源。鑒于此,可以為拆分所得的組件設(shè)置描述信息,通過設(shè)置的描述信息來快速區(qū)分不同屬性的組件。在設(shè)置描述信息時考慮到拆分所得的組件與界面內(nèi)容之間的匹配關(guān)系,可以根據(jù)拆分所得的各組件所攜帶的界面內(nèi)容,確定容器組件的描述信息、以及各ui組件的描述信息。實際應(yīng)用中,可以根據(jù)ui組件攜帶的界面內(nèi)容的數(shù)據(jù)類型來確定描述信息,如:數(shù)據(jù)類型為文字類型、圖像類型、視頻類型,那么組件的描述信息可以是分別表征文字類型、圖像類型、視頻類型的id(身份標(biāo)識)。也可以將攜帶不同類型的界面內(nèi)容的組件存儲到不同的存儲位置,然后可以根據(jù)ui組件在預(yù)定的組件回收區(qū)域內(nèi)的保存路徑。此外,如果某一界面的各組界面內(nèi)容的數(shù)據(jù)類型相同,但同數(shù)據(jù)類型的界面內(nèi)容的數(shù)據(jù)量不同,可以根據(jù)拆分所得的各組件所攜帶的界面內(nèi)容的數(shù)據(jù)量來確定描述信息。在某些例子中,本實施例所應(yīng)用的電子設(shè)備的操作系統(tǒng)不同時,描述信息有所不同,比如:操作系統(tǒng)為ios系統(tǒng)(cisco的網(wǎng)際操作系統(tǒng))時,界面內(nèi)容為列表界面的條目時,可以通過給uiview(ui組件的基類)新增字段afw_reuseid,來動態(tài)增加ui組件的屬性,afw_reuseid為字符串,用于表示ui組件的描述信息,該描述信息用于表示ui組件攜帶的界面內(nèi)容的數(shù)據(jù)類型、以及ui組件的保存路徑。再比如,操作系統(tǒng)為安卓系統(tǒng),界面內(nèi)容為列表界面的條目時,本申請技術(shù)人員可以自定義一個cell的基類,通過繼承的方式,設(shè)置ui組件的描述信息,來表示ui組件攜帶的界面內(nèi)容的數(shù)據(jù)類型、以及ui組件的保存路徑。確定好拆分所得的各組件的描述信息后,便可以對應(yīng)所確定的描述信息,存儲容器組件以及各ui組件。在實際應(yīng)用中,如果操作系統(tǒng)存在存儲容器組件的系統(tǒng)回收池,可以預(yù)先在內(nèi)存劃分出一塊存儲區(qū)域,作為存儲ui組件的回收池,稱為新增回收池。在存儲拆分所得的組件時,可以將容器組件對應(yīng)其描述信息存儲到系統(tǒng)回收池,將各ui組件對應(yīng)各自的描述信息存儲到新增回收池。具體存儲時,可以在緩存內(nèi)存儲系統(tǒng)回收池和新增回收池的位置信息(查找路徑),然后以key-value的數(shù)據(jù)結(jié)構(gòu)存儲拆分所得的組件,key為拆分所得的組件的描述信息,value為拆分所得的組件。在其他實施例中,也可以預(yù)先在內(nèi)存劃分出存儲區(qū)域,作為存儲容器組件和ui組件的回收池。在存儲拆分所得的組件時,將容器組件和各ui組件對應(yīng)各自的描述信息存儲到預(yù)先建立的回收池,將各ui組件對應(yīng)各自的描述信息存儲到新增回收池。在其他實施例中,也可以采用其他方式存儲拆分所得的組件,本申請實施例對此不做限制。存儲好拆分所得的組件后,如果有新的界面內(nèi)容要展示,即可以復(fù)用存儲好的組件,具體的復(fù)用過程可以參閱圖2,圖2是本申請另一示例性實施例示出的用戶界面的組件處理方法的流程圖,該實施例可以應(yīng)用于具備組件處理能力的各種電子設(shè)備,包括以下步驟s201-s204:步驟s201、在有界面內(nèi)容需展示時,基于需展示的界面內(nèi)容確定所需的ui組件的描述信息、以及用于嵌套所需的ui組件的容器組件的描述信息。步驟s202、根據(jù)所確定的描述信息,獲取預(yù)存的ui組件和容器組件,其中,預(yù)存的ui組件和容器組件為拆分在先渲染的組件后所得的組件。步驟s203、基于所述界面內(nèi)容將獲取的ui組件嵌套到容器組件內(nèi)。步驟s204、對嵌套有所獲取的ui組件的容器組件進行渲染處理。本申請實施例中,涉及的界面內(nèi)容、容器組件、ui組件、描述信息,與圖1所對應(yīng)的方法實施例中的涉及的界面內(nèi)容、容器組件、ui組件、描述信息相應(yīng),在此不再贅述。實際應(yīng)用中,預(yù)存的ui組件是拆分在先渲染的組件后所得的組件,為了降低創(chuàng)建組件所耗費的設(shè)備資源,針對當(dāng)前需展示的界面內(nèi)容,可以復(fù)用預(yù)存的組件,復(fù)用組件時,需要找到與需展示的界面內(nèi)容匹配的組件。鑒于此,可以基于需展示的界面內(nèi)容確定所需的ui組件的描述信息、以及用于嵌套所需的ui組件的容器組件的描述信息,然后根據(jù)描述信息,從預(yù)存的組件中查找與所對應(yīng)存儲的描述信息與當(dāng)前確定的描述信息一致的組件。本申請的設(shè)計人員可以通過綜合考慮組件加載效率和實際的界面場景,預(yù)先設(shè)置判定對應(yīng)存儲的描述信息與當(dāng)前確定的描述信息是否一致的方式。例如,存儲的描述信息與確定的描述信息相同,那么兩者一致。再比如,存儲的一個描述信息由所確定的多個描述信息組成,那么存儲的這個描述信息與所確定的多個描述信息一致。在具體獲取組件時,如果描述信息表征ui組件攜帶的界面內(nèi)容的數(shù)據(jù)類型,可以優(yōu)先獲取由所對應(yīng)存儲的描述信息為當(dāng)前確定的多個描述信息的組合的組件。獲取到組件后,可以根據(jù)需展示的界面內(nèi)容的布局狀況,將獲取的ui組件嵌套到容器組件內(nèi),完成組件加載。在某些例子中,在將ui組件嵌套到容器組件時,可以根據(jù)界面內(nèi)容所含的界面元素之間的相對位置關(guān)系,將ui組件添加到容器組件內(nèi)的對應(yīng)位置。完成組件之間的嵌套后,可以對嵌套后的組件進行渲染處理,渲染處理時,可以直接用當(dāng)前應(yīng)用的電子設(shè)備內(nèi)的渲染器件對組件進行渲染,也可以將攜帶有該組件的渲染指令發(fā)送給其他設(shè)備的渲染器進行渲染。在渲染組件時,可以將需展示的界面內(nèi)容添加到嵌套后的組件的對應(yīng)位置,然后渲染展示界面內(nèi)容。在某些例子中,當(dāng)前需展示的界面內(nèi)容與在先展示的界面內(nèi)容的數(shù)據(jù)類型不完全相同,或者同數(shù)據(jù)類型的界面內(nèi)容的數(shù)據(jù)量不同,那么在預(yù)存的組件中可能不存在攜帶某種數(shù)據(jù)類型的組件,或者攜帶某種數(shù)據(jù)類型的組件的數(shù)量不夠多,針對這些狀況,在根據(jù)描述信息獲取ui組件時,可能出現(xiàn)獲取不到預(yù)存的ui組件的狀況,此時,本申請實施例可以基于需展示的界面內(nèi)容,創(chuàng)建與所確定的描述對應(yīng)的組件,基于所述界面內(nèi)容將創(chuàng)建的ui組件嵌套到容器組件內(nèi),對嵌套有所創(chuàng)建的ui組件的容器組件進行渲染處理。在其他實施例中,也可能出現(xiàn)獲取不到預(yù)存的容器組件的狀況,其處理方式與ui組件類似,一樣可以創(chuàng)建容器組件,將獲取的ui組件嵌套到重建的容器組件內(nèi),然后渲染。在創(chuàng)建ui組件時,可以將用戶界面上的一個功能相對獨立的模塊定義成組件,然后將小的組件通過組合或者嵌套的方式構(gòu)成大的組件,最終完成整體ui的創(chuàng)建。在其他實施例中,針對實時界面展示過程,可以循環(huán)執(zhí)行組件拆分、回收,再復(fù)用拆分的步驟,循環(huán)過程中的單個循環(huán)的具體操作可以參閱圖3,圖3是本申請另一示例性實施例示出的用戶界面的組件處理方法的流程圖,該實施例可以應(yīng)用于具備組件處理能力的各種電子設(shè)備,包括以下步驟s301-s307:步驟s301、在有界面內(nèi)容需展示時,基于需展示的界面內(nèi)容確定所需的ui組件的描述信息、以及用于嵌套所需的ui組件的容器組件的描述信息。步驟s302、根據(jù)所確定的描述信息,獲取預(yù)存的ui組件和容器組件,其中,預(yù)存的ui組件和容器組件為拆分在先渲染的組件后所得的組件。步驟s303、基于所述界面內(nèi)容將獲取的ui組件嵌套到容器組件內(nèi)。步驟s304、對嵌套有所獲取的ui組件的容器組件進行渲染處理。步驟s305、在所述界面內(nèi)容結(jié)束展示時,對渲染后的組件進行拆分,拆分所得的組件包括至少一ui組件、以及用于嵌套各ui組件的容器組件。步驟s306、根據(jù)拆分所得的各組件所攜帶的界面內(nèi)容,確定容器組件的描述信息、以及各ui組件的描述信息。步驟s307、對應(yīng)所確定的描述信息,存儲容器組件以及各ui組件。本申請實施例中的各步驟分別與圖1和圖2所述的方法步驟相應(yīng),在此不再贅述。以下結(jié)合圖4至圖5列舉一個應(yīng)用實例,本應(yīng)用示例所涉及的界面為列表界面,界面內(nèi)容為列表界面的條目(cell),操作系統(tǒng)為ios系統(tǒng)。請參閱圖4,圖4是本申請一示例性實施例示出的實現(xiàn)用戶界面的組件處理的系統(tǒng)400的框圖,該系統(tǒng)400可以運行于具有組件處理功能的電子設(shè)備,可以包括組件加載單元410、以及分別與組件加載單元410連接的系統(tǒng)回收池420、新增回收池430和組件渲染單元440,還可以包括分別與系統(tǒng)回收池420、新增回收池430和組件渲染單元440連接的組件回收單元450。其中,組件加載單元410,用于在有界面內(nèi)容需展示時,加載展示該內(nèi)容所需的容器組件和ui組件。系統(tǒng)回收池420,用于存儲容器組件,存儲的容器組件是對cell組件拆分后所得的組件。新增回收池430,為本申請設(shè)計人員預(yù)先在列表界面對應(yīng)存儲區(qū)域劃分出一塊存儲區(qū)域,用于存儲拆分cell組件所得ui組件,ui組件以key-value的數(shù)據(jù)結(jié)構(gòu)存儲在新增回收池430內(nèi)。組件渲染單元440,可以gpu等具有組件渲染能力的器件。組件回收單元450,用于拆分渲染后的組件,并確定拆分所得組件的描述信息。在列表界面的展示過程中,如果有一個cell移入屏幕顯示區(qū)域進行展示,組件加載單元可以從系統(tǒng)回收池同時也會有待移入屏幕顯示區(qū)域的cell。針對待移入屏幕顯示區(qū)域的cell,組件加載單元410可以基于需展示的cell所含的界面內(nèi)容確定所需的ui組件的描述信息、以及用于嵌套所需的ui組件的容器組件的描述信息(步驟s501)。然后根據(jù)確定的描述信息直接從系統(tǒng)回收池420獲取容器組件(步驟s502),并從新增回收池獲取ui組件(s503)。在獲取組件時,可以基于cell的prepareforreuse方法,通過view的superview鏈路找到列表界面對應(yīng)存儲區(qū)域,然后通過uiview新增的對外提供預(yù)存的組件的方法,如“(uiview*)afw_reusedviewwithid:(nsstring*)reuseid”來獲取組件,reuseid指ui組件的描述信息。如果從新增回收池430或系統(tǒng)回收池內(nèi)未獲取的組件,可以基于所確定的描述信息創(chuàng)建組件。在步驟s504中,組件加載單元410基于需展示的cell所含的界面內(nèi)容將獲取的ui組件嵌套到容器組件內(nèi)。在步驟s505中,組件加載單元410將嵌套有所獲取的ui組件的容器組件發(fā)送給組件渲染單元440。在步驟s506中,組件渲染單元440對接收的容器組件進行渲染處理。在步驟s507中,在cell要移出屏幕顯示區(qū)域,結(jié)束展示時,組件渲染單元將展示這個cell所渲染的組件發(fā)送到組件回收單元450。在步驟s508中,組件回收單元450對渲染后的組件進行拆分,拆分所得的組件包括至少一ui組件、以及用于嵌套各ui組件的容器組件。在步驟s509中,組件回收單元450根據(jù)拆分所得的各組件所攜帶的界面內(nèi)容,確定容器組件的描述信息、以及各ui組件的描述信息。在步驟s510中,組件回收單元450可以將容器組件及其描述信息對應(yīng)存儲到系統(tǒng)回收池410。在步驟s511中,組件回收單元450可以將ui組件及其描述信息對應(yīng)存儲到新增回收池420。本步驟中,組件回收單元450可以通過uiview新增的方法“(void)afw_recycleview:(uiview*)view”將ui組件新增回收池420,其中參數(shù)view為ui組件。本實施例的列表界面,僅用于示例性說明本申請的用戶界面的組件處理方法,并不用以限制本申請。本申請的用戶界面的組件處理方法在其他實施例中,也適用于其他界面場景,在此不再贅述。由上述實施例可知,本申請在有界面內(nèi)容展示完成后,并非直接刪除展示該界面內(nèi)容時所渲染的組件,而是對所渲染的組件進行拆分,拆分成至少一ui組件、以及用于嵌套各ui組件的容器組件,然后各組件所攜帶的界面內(nèi)容,確定拆分所得的各組件的描述信息,再對應(yīng)所確定的描述信息,存儲容器組件以及各ui組件。有新的界面內(nèi)容需展示時,無需創(chuàng)建新的組件,而是在先存儲的將ui組件嵌套到容器組件內(nèi),再渲染嵌套后的容器組件,即可完成新的界面內(nèi)容的展示。所以在展示新的界面內(nèi)容時,無需針對所有界面元素創(chuàng)建ui組件,至少能省去部分ui組件的創(chuàng)建過程。能有效節(jié)約創(chuàng)建ui組件所耗費的設(shè)備資源和時間,進而提高界面加載效率和界面流暢度。此外,本申請實的用戶界面的組件處理方法應(yīng)用于列表界面時,可以將攜帶有復(fù)雜界面內(nèi)容的cell組件拆分為ui組件和容器組件(摳取部分或全部內(nèi)部組件后的cell組件),在展示含有復(fù)雜界面內(nèi)容的cell時,能有效復(fù)用拆分所得的組件,盡可能省去ui組件的創(chuàng)建過程,能有效節(jié)約創(chuàng)建ui組件所耗費的設(shè)備資源和時間,進而提高界面加載效率和界面流暢度。與前述用戶界面的組件處理方法的實施例相對應(yīng),本申請還提供了用戶界面的組件處理裝置的實施例。參見圖6,圖6是本申請一示例性實施例示出的用戶界面的組件處理裝置的邏輯框圖,該裝置可以包括:渲染組件獲取模塊610、組件拆分模塊620、信息確定模塊630和組件存儲模塊640。其中,渲染組件獲取模塊610,用于在有界面內(nèi)容結(jié)束展示時,獲取展示該界面內(nèi)容時所渲染的組件。組件拆分模塊620,用于對所獲取的組件進行拆分,拆分所得的組件包括至少一ui組件、以及用于嵌套各ui組件的容器組件。信息確定模塊630,用于根據(jù)拆分所得的各組件所攜帶的界面內(nèi)容,確定容器組件的描述信息、以及各ui組件的描述信息。組件存儲模塊640,用于對應(yīng)所確定的描述信息,存儲容器組件以及各ui組件。一些例子中,ui組件的描述信息包括以下至少一項:ui組件攜帶的界面內(nèi)容的數(shù)據(jù)類型。ui組件在預(yù)定的組件回收區(qū)域內(nèi)的保存路徑。ui組件攜帶的界面內(nèi)容的數(shù)據(jù)量。另一些例子中,所述界面內(nèi)容為列表界面的條目。作為例子,ui組件的描述信息為ui組件的基類的新增字段,用于表示ui組件攜帶的界面內(nèi)容的數(shù)據(jù)類型、以及ui組件的保存路徑。作為例子,拆分所得的ui組件的數(shù)目由以下至少一項確定:每個條目所含的界面元素的總數(shù)目。不同條目之間的相同界面元素的數(shù)目。不同條目之間的不同界面元素的數(shù)目。參見圖7,圖7是本申請另一示例性實施例示出的用戶界面的組件處理裝置的邏輯框圖,該裝置可以包括:描述確定模塊710、預(yù)存組件獲取模塊720、組件嵌套模塊730和渲染處理模塊740。其中,描述確定模塊710,用于在有界面內(nèi)容需展示時,基于需展示的界面內(nèi)容確定所需的ui組件的描述信息、以及用于嵌套所需的ui組件的容器組件的描述信息。預(yù)存組件獲取模塊720,用于根據(jù)所確定的描述信息,獲取預(yù)存的ui組件和容器組件,其中,預(yù)存的ui組件和容器組件為拆分在先渲染的組件后所得的組件。組件嵌套模塊730,用于基于所述界面內(nèi)容將獲取的ui組件嵌套到容器組件內(nèi)。渲染處理模塊740,用于對嵌套有所獲取的ui組件的容器組件進行渲染處理。一些例子中,ui組件的描述信息包括以下至少一項:ui組件攜帶的界面內(nèi)容的數(shù)據(jù)類型。ui組件攜帶的界面內(nèi)容的數(shù)據(jù)量。ui組件的保存路徑。另一些例子中,所述界面內(nèi)容為列表界面的條目。作為例子,ui組件的描述信息為ui組件的基類的新增字段,用于表示ui組件攜帶的界面內(nèi)容的數(shù)據(jù)類型、以及ui組件在預(yù)定的組件回收區(qū)域內(nèi)的保存路徑。作為例子,拆分所得的ui組件的數(shù)目由以下至少一項確定:每個條目所含的界面元素的總數(shù)目。不同條目之間的相同界面元素的數(shù)目。不同條目之間的不同界面元素的數(shù)目。另一些例子中,本申請實施例的用戶界面的組件處理裝置還包括:組件創(chuàng)建模塊,用于在根據(jù)所確定的描述信息,未獲取到預(yù)存的ui組件時,基于需展示的界面內(nèi)容,創(chuàng)建與所確定的描述對應(yīng)的組件。第二嵌套模塊,用于基于所述界面內(nèi)容將創(chuàng)建的ui組件嵌套到容器組件內(nèi)。第二渲染模塊,用于對嵌套有所創(chuàng)建的ui組件的容器組件進行渲染處理。參見圖8,圖8是本申請另一示例性實施例示出的用戶界面的組件處理裝置的邏輯框圖,該裝置可以包括:描述確定模塊810、預(yù)存組件獲取模塊820、組件嵌套模塊830、渲染處理模塊840、組件拆分模塊850、信息確定模塊860和組件存儲模塊870。其中,描述確定模塊810,用于在有界面內(nèi)容需展示時,基于需展示的界面內(nèi)容確定所需的ui組件的描述信息、以及用于嵌套所需的ui組件的容器組件的描述信息。預(yù)存組件獲取模塊820,用于根據(jù)所確定的描述信息,獲取預(yù)存的ui組件和容器組件,其中,預(yù)存的ui組件和容器組件為拆分在先渲染的組件后所得的組件。組件嵌套模塊830,用于基于所述界面內(nèi)容將獲取的ui組件嵌套到容器組件內(nèi)。渲染處理模塊840,用于對嵌套有所獲取的ui組件的容器組件進行渲染處理。組件拆分模塊850,用于在所述界面內(nèi)容結(jié)束展示時,對渲染后的組件進行拆分,拆分所得的組件包括至少一ui組件、以及用于嵌套各ui組件的容器組件。信息確定模塊860,用于根據(jù)拆分所得的各組件所攜帶的界面內(nèi)容,確定容器組件的描述信息、以及各ui組件的描述信息。組件存儲模塊870,用于對應(yīng)所確定的描述信息,存儲容器組件以及各ui組件。上述裝置中各個單元(或模塊)的功能和作用的實現(xiàn)過程具體詳見上述方法中對應(yīng)步驟的實現(xiàn)過程,在此不再贅述。對于裝置實施例而言,由于其基本對應(yīng)于方法實施例,所以相關(guān)之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元或模塊可以是或者也可以不是物理上分開的,作為單元或模塊顯示的部件可以是或者也可以不是物理單元或模塊,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元或模塊上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本申請方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。本申請用戶界面的組件處理裝置的實施例可以應(yīng)用在電子設(shè)備上。具體可以由計算機芯片或?qū)嶓w實現(xiàn),或者由具有某種功能的產(chǎn)品來實現(xiàn)。一種典型的實現(xiàn)中,電子設(shè)備為計算機,計算機的具體形式可以是個人計算機、膝上型計算機、蜂窩電話、相機電話、智能電話、個人數(shù)字助理、媒體播放器、導(dǎo)航設(shè)備、電子郵件收發(fā)設(shè)備、游戲控制臺、平板計算機、可穿戴設(shè)備、互聯(lián)網(wǎng)電視、智能機車、無人駕駛汽車、智能冰箱、其他智能家居設(shè)備或者這些設(shè)備中的任意幾種設(shè)備的組合。裝置實施例可以通過軟件實現(xiàn),也可以通過硬件或者軟硬件結(jié)合的方式實現(xiàn)。以軟件實現(xiàn)為例,作為一個邏輯意義上的裝置,是通過其所在電子設(shè)備的處理器將非易失性存儲器等可讀介質(zhì)中對應(yīng)的計算機程序指令讀取到內(nèi)存中運行形成的。從硬件層面而言,如圖9所示,為本申請用戶界面的組件處理裝置所在電子設(shè)備的一種硬件結(jié)構(gòu)圖,除了圖9所示的處理器、內(nèi)存、網(wǎng)絡(luò)接口、以及非易失性存儲器之外,實施例中裝置所在的電子設(shè)備通常根據(jù)該電子設(shè)備的實際功能,還可以包括其他硬件,對此不再贅述。電子設(shè)備的內(nèi)存可以是存儲有處理器可執(zhí)行程序指令的存儲器;處理器可以耦合存儲器,用于讀取所述存儲器存儲的程序指令,并作為響應(yīng),執(zhí)行如下操作:在有界面內(nèi)容結(jié)束展示時,獲取展示該界面內(nèi)容時所渲染的組件;對所獲取的組件進行拆分,拆分所得的組件包括至少一ui組件、以及用于嵌套各ui組件的容器組件;根據(jù)拆分所得的各組件所攜帶的界面內(nèi)容,確定容器組件的描述信息、以及各ui組件的描述信息;對應(yīng)所確定的描述信息,存儲容器組件以及各ui組件。在另一例子中,處理器可以耦合存儲器,用于讀取所述存儲器存儲的程序指令,并作為響應(yīng),執(zhí)行如下操作:在有界面內(nèi)容需展示時,基于需展示的界面內(nèi)容確定所需的ui組件的描述信息、以及用于嵌套所需的ui組件的容器組件的描述信息;根據(jù)所確定的描述信息,獲取預(yù)存的ui組件和容器組件,其中,預(yù)存的ui組件和容器組件為拆分在先渲染的組件后所得的組件;基于所述界面內(nèi)容將獲取的ui組件嵌套到容器組件內(nèi);對嵌套有所獲取的ui組件的容器組件進行渲染處理。在其他實施例中,處理器所執(zhí)行的操作可以參考上文方法實施例中相關(guān)的描述,在此不予贅述。以上所述僅為本申請的較佳實施例而已,并不用以限制本申請,凡在本申請的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本申請保護的范圍之內(nèi)。當(dāng)前第1頁12當(dāng)前第1頁12
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1