應用中動畫的顯示系統(tǒng)及顯示方法
【專利摘要】本發(fā)明公開了一種應用中動畫的顯示系統(tǒng)及顯示方法,所述系統(tǒng)包括:界面繪制模塊,用于創(chuàng)建繪制線程,使所述繪制線程從預置的資源緩存區(qū)中讀取所述動畫當前幀的資源,以及基于讀取的所述資源在繪制界面上計算并繪制所述動畫當前幀的用戶界面;界面顯示控制模塊,用于調(diào)用所述應用的UI線程,使所述UI線程將所述界面繪制模塊繪制的所述用戶界面顯示在所述應用的顯示界面上。本發(fā)明中系統(tǒng)和方法通過獨立的繪制線程和繪制界面來預繪制動畫界面,通過獨立的UI線程和顯示界面來顯示繪制的動畫界面,解脫UI線程的負擔,使UI線程專注用于與用戶的交互,有效提升動畫的流暢程度以及用戶界面交互的響應度。
【專利說明】
應用中動畫的顯示系統(tǒng)及顯示方法
技術領域
[0001]本發(fā)明涉及移動終端應用技術領域,尤其涉及一種應用中動畫的顯示系統(tǒng)及顯示方法。
【背景技術】
[0002]隨著移動終端(例如手機)硬件性能的提升以及軟件技術的發(fā)展,越來越多的移動應用開始關注動效設計,越來越多的團隊已經(jīng)意識到動效在產(chǎn)品用戶體驗中的重要性了。
[0003]現(xiàn)有技術中,由于動畫的UI(User Interface,用戶界面)一般都比較復雜,計算量比較大,使得動畫的流暢程度以及用戶界面交互的響應度較低,同時大量應用動畫導致應用卡頓,極大的影響了用戶的體驗。
【發(fā)明內(nèi)容】
[0004]產(chǎn)生上述缺陷的原因之一在于:現(xiàn)有動畫界面的繪制過程中,UI線程需要在顯示界面直接繪制動畫界面并予以顯示。
[0005]鑒于發(fā)現(xiàn)的實現(xiàn)產(chǎn)生上述缺陷的原因及為了克服上述現(xiàn)有技術的缺陷,本發(fā)明的主要目的在于提出一種應用中動畫的顯示系統(tǒng)及顯示方法,旨在提升動畫的流暢程度以及用戶界面交互的響應度。
[0006]為實現(xiàn)上述目的,本發(fā)明提供的一種應用中動畫的顯示系統(tǒng),所述系統(tǒng)包括:
[0007]界面繪制模塊,用于創(chuàng)建繪制線程,使所述繪制線程從預置的資源緩存區(qū)中讀取所述動畫當前幀的資源,以及基于讀取的所述資源在繪制界面上繪制所述動畫當前幀的用戶界面;
[0008]界面顯示控制模塊,用于調(diào)用所述應用的UI線程,使所述UI線程將所述界面繪制模塊繪制的所述用戶界面顯示在所述應用的顯示界面上。
[0009]作為本發(fā)明系統(tǒng)的改進,所述系統(tǒng)還包括:
[0010]資源處理模塊,用于在接收到從預置的資源緩存區(qū)中讀取所述動畫當前幀的資源的請求時,在所述資源緩存區(qū)中查找當前幀的資源;
[0011]在未查找到時,調(diào)用資源讀取線程,使所述資源讀取線程從所述動畫的資源中加載當前幀的資源,并將當前幀的資源存儲在所述資源緩存區(qū)。
[0012]作為本發(fā)明系統(tǒng)的另一改進,所述資源處理模塊還用于:
[0013]預置資源緩存區(qū);
[0014]啟用資源讀取線程,使所述資源讀取線程對所述動畫的資源進行預處理,并將完成預處理的資源存儲在所述資源緩存區(qū)。
[0015]作為本發(fā)明系統(tǒng)的進一步改進,,所述資源處理模塊在進行預處理時具體用于:
[0016]基于預置的資源預測策略、緩存命中率策略和/或調(diào)度策略,從所述動畫的資源中加載下一幀的資源。
[0017]作為本發(fā)明系統(tǒng)的進一步改進,,所述資源處理模塊在進行預處理時還具體用于:
[0018]獲取所述顯示界面的分辨率;
[0019]基于所述分辨率對存儲在所述資源緩存區(qū)的資源進行壓縮。
[0020]此外,為實現(xiàn)上述目的,本發(fā)明還提出一種應用中動畫的顯示方法,所述方法包括步驟:
[0021]創(chuàng)建繪制線程,使所述繪制線程從預置的資源緩存區(qū)中讀取所述動畫當前幀的資源,以及基于讀取的所述資源在繪制界面上繪制所述動畫當前幀的用戶界面;
[0022]調(diào)用所述應用的UI線程,使所述UI線程將所述用戶界面顯示在所述應用的顯示界面上。
[0023]作為本發(fā)明方法的改進,所述方法還包括步驟:
[0024]在接收到從預置的資源緩存區(qū)中讀取所述動畫當前幀的資源的請求時,在所述資源緩存區(qū)中查找當前幀的資源;
[0025]在未查找到時,調(diào)用資源讀取線程,使所述資源讀取線程從所述動畫的資源中加載當前幀的資源,并將當前幀的資源存儲在所述資源緩存區(qū)。
[0026]作為本發(fā)明方法的另一改進,所述創(chuàng)建繪制線程的步驟之前還包括步驟:
[0027]預置資源緩存區(qū);
[0028]啟用資源讀取線程,使所述資源讀取線程對所述動畫的資源進行預處理,并將完成預處理的資源存儲在所述資源緩存區(qū)。
[0029]作為本發(fā)明方法的進一步改進,所述預處理的步驟包括步驟:
[0030]基于預置的資源預測策略、緩存命中率策略和/或調(diào)度策略,從所述動畫的資源中加載下一幀的資源。
[0031]作為本發(fā)明方法的進一步改進,所述預處理的步驟還包括步驟:
[0032]獲取所述顯示界面的分辨率;
[0033]基于所述分辨率對存儲在所述資源緩存區(qū)的資源進行壓縮。
[0034]本發(fā)明提出的系統(tǒng)和方法通過獨立的繪制線程和繪制界面來預繪制動畫界面,通過獨立的UI線程和顯示界面顯示繪制的動畫界面,解脫UI線程的負擔,使UI線程專注用于與用戶的交互,有效提升動畫的流暢程度以及用戶界面交互的響應度。
【附圖說明】
[0035]圖1為實現(xiàn)本發(fā)明各個實施例的一個可選的移動終端的硬件結構示意圖;
[0036]圖2為如圖1所示的移動終端的無線通信系統(tǒng)示意圖;
[0037]圖3為本發(fā)明實施例中一種應用中動畫的顯示系統(tǒng)的結構示意圖;
[0038]圖4為接收事件的流程圖;
[0039]圖5為周期處理事件的流程圖;
[0040]圖6為周期處理事件時無響應的流程圖;
[0041]圖7為本發(fā)明實施例中一種應用中動畫的顯示系統(tǒng)的各模塊工作時序圖;
[0042]圖8為本發(fā)明實施例中一種應用中動畫的顯示方法的流程圖。
[0043]本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結合實施例,參照附圖做進一步說明。
【具體實施方式】
[0044]應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0045]現(xiàn)在將參考附圖描述實現(xiàn)本發(fā)明各個實施例的移動終端。在后續(xù)的描述中,使用用于表示元件的諸如“模塊”、“部件”或“單元”的后綴僅為了有利于本發(fā)明的說明,其本身并沒有特定的意義。因此,"模塊"與"部件"可以混合地使用。
[0046]移動終端可以以各種形式來實施。例如,本發(fā)明中描述的移動終端可以包括諸如移動電話、智能電話、筆記本電腦、數(shù)字廣播接收器、PDA(個人數(shù)字助理)、PAD(平板電腦)、PMP(便攜式多媒體播放器)、導航裝置等等的移動終端以及諸如數(shù)字TV、臺式計算機等等的固定終端。然而,本領域技術人員將理解的是,除了特別用于移動目的的元件之外,根據(jù)本發(fā)明的實施方式的構造也能夠應用于固定類型的終端。
[0047]圖1為實現(xiàn)本發(fā)明各個實施例的一個可選的移動終端的硬件結構示意。
[0048]移動終端100可以包括無線通信單元110、A/V(音頻/視頻)輸入單元120、用戶輸入單元130、輸出單元140、存儲器150、接口單元160、控制器170和電源單元180等等。圖1示出了具有各種組件的移動終端,但是應理解的是,并不要求實施所有示出的組件??梢蕴娲貙嵤└嗷蚋俚慕M件。將在下面詳細描述移動終端的元件。
[0049]無線通信單元110通常包括一個或多個組件,其允許移動終端100與無線通信系統(tǒng)或網(wǎng)絡之間的無線電通信。例如,無線通信單元110可以包括廣播接收模塊111、移動通信模塊112、無線互聯(lián)網(wǎng)模塊113、短程通信模塊114和位置信息模塊115中的至少一個。
[0050]廣播接收模塊111經(jīng)由廣播信道從外部廣播管理服務器接收廣播信號和/或廣播相關信息。
[0051]移動通信模塊112將無線電信號發(fā)送到基站(例如,接入點、節(jié)點B等等)、外部終端以及服務器中的至少一個和/或從其接收無線電信號。這樣的無線電信號可以包括語音通話信號、視頻通話信號、或者根據(jù)文本和/或多媒體消息發(fā)送和/或接收的各種類型的數(shù)據(jù)。
[0052]無線互聯(lián)網(wǎng)模塊113支持移動終端的無線互聯(lián)網(wǎng)接入。該模塊可以內(nèi)部或外部地耦接到終端。該模塊所涉及的無線互聯(lián)網(wǎng)接入技術可以包括WLAN(無線LAN)(W1-Fi)、Wibro(無線寬帶)、Wimax(全球微波互聯(lián)接入)、HSDPA(高速下行鏈路分組接入)等等。
[0053]短程通信模塊114是用于支持短程通信的模塊。短程通信技術的一些示例包括藍牙TM、射頻識別(RFID)、紅外數(shù)據(jù)協(xié)會(IrDA)、超寬帶(UWB)、紫蜂TM等等。
[0054]位置信息模塊115是用于檢查或獲取移動終端的位置信息的模塊。位置信息模塊115的典型示例是GPS(全球定位系統(tǒng))。
[0055]A/V輸入單元120用于接收音頻或視頻信號。A/V輸入單元120可以包括相機121和麥克風122,相機121對在視頻捕獲模式或圖像捕獲模式中由圖像捕獲裝置獲得的靜態(tài)圖片或視頻的圖像數(shù)據(jù)進行處理。處理后的圖像幀可以顯示在顯示單元141上。麥克風122可以在電話通話模式、記錄模式、語音識別模式等等運行模式中經(jīng)由麥克風接收聲音(音頻數(shù)據(jù)),并且能夠將這樣的聲音處理為音頻數(shù)據(jù)。處理后的音頻(語音)數(shù)據(jù)可以在電話通話模式的情況下轉換為可經(jīng)由移動通信模塊112發(fā)送到移動通信基站的格式輸出。
[0056]用戶輸入單元130可以根據(jù)用戶輸入的命令生成鍵輸入數(shù)據(jù)以控制移動終端的各種操作。用戶輸入單元130允許用戶輸入各種類型的信息,并且可以包括鍵盤、鍋仔片、觸摸板(例如,檢測由于被接觸而導致的電阻、壓力、電容等等的變化的觸敏組件)、滾輪、搖桿等等。特別地,當觸摸板以層的形式疊加在顯示單元141上時,可以形成觸摸屏。
[0057]接口單元160用作至少一個外部裝置與移動終端100連接可以通過的接口。例如,外部裝置可以包括有線或無線頭戴式耳機端口、外部電源(或電池充電器)端口、有線或無線數(shù)據(jù)端口、存儲卡端口、用于連接具有識別模塊的裝置的端口、音頻輸入/輸出(I/O)端口、視頻I/O端口、耳機端口等等。接口單元160還可以用于接收來自外部裝置的輸入(例如,數(shù)據(jù)信息、電力等等)并且將接收到的輸入傳輸?shù)揭苿咏K端100內(nèi)的一個或多個元件或者可以用于在移動終端和外部裝置之間傳輸數(shù)據(jù)。
[0058]輸出單元140可以包括顯示單元141、音頻輸出模塊142、警報單元143等等。
[0059]顯示單元141可以顯示在移動終端100中處理的信息。例如,當移動終端100處于電話通話模式時,顯示單元141可以顯示與通話或其它通信(例如,文本消息收發(fā)、多媒體文件下載等等)相關的用戶界面(UI)或圖形用戶界面(GUI)。當移動終端100處于視頻通話模式或者圖像捕獲模式時,顯示單元141可以顯示捕獲的圖像和/或接收的圖像、示出視頻或圖像以及相關功能的UI或GUI等等。
[0060]同時,當顯示單元141和觸摸板以層的形式彼此疊加以形成觸摸屏時,顯示單元141可以用作輸入裝置和輸出裝置。顯示單元141可以包括液晶顯示器(LCD)、薄膜晶體管IXD(TFT-1XD)、有機發(fā)光二極管(OLED)顯示器、柔性顯示器、三維(3D)顯示器等等中的至少一種。這些顯示器中的一些可以被構造為透明狀以允許用戶從外部觀看,這可以稱為透明顯示器,典型的透明顯示器可以例如為TOLED(透明有機發(fā)光二極管)顯示器等等。根據(jù)特定想要的實施方式,移動終端100可以包括兩個或更多顯示單元(或其它顯示裝置),例如,移動終端可以包括外部顯示單元(未示出)和內(nèi)部顯示單元(未示出)。觸摸屏可用于檢測觸摸輸入壓力以及觸摸輸入位置和觸摸輸入面積。
[0061]音頻輸出模塊142可以在移動終端處于呼叫信號接收模式、通話模式、記錄模式、語音識別模式、廣播接收模式等等模式下時,將無線通信單元110接收的或者在存儲器150中存儲的音頻數(shù)據(jù)轉換音頻信號并且輸出為聲音。而且,音頻輸出模塊142可以提供與移動終端100執(zhí)行的特定功能相關的音頻輸出(例如,呼叫信號接收聲音、消息接收聲音等等)。音頻輸出模塊142可以包括揚聲器、蜂鳴器等等。
[0062]警報單元143可以提供輸出以將事件的發(fā)生通知給移動終端100。典型的事件可以包括呼叫接收、消息接收、鍵信號輸入、觸摸輸入等等。除了音頻或視頻輸出之外,警報單元143可以以不同的方式提供輸出以通知事件的發(fā)生。例如,警報單元143可以以振動的形式提供輸出,當接收到呼叫、消息或一些其它進入通信(incomingcommunicat1n)時,警報單元143可以提供觸覺輸出(S卩,振動)以將其通知給用戶。通過提供這樣的觸覺輸出,即使在用戶的移動電話處于用戶的口袋中時,用戶也能夠識別出各種事件的發(fā)生。警報單元143也可以經(jīng)由顯示單元141或音頻輸出模塊142提供通知事件的發(fā)生的輸出。
[0063]存儲器150可以存儲由控制器170執(zhí)行的處理和控制操作的軟件程序等等,或者可以暫時地存儲己經(jīng)輸出或將要輸出的數(shù)據(jù)(例如,電話簿、消息、靜態(tài)圖像、視頻等等)。而且,存儲器150可以存儲關于當觸摸施加到觸摸屏時輸出的各種方式的振動和音頻信號的數(shù)據(jù)。
[0064]存儲器150可以包括至少一種類型的存儲介質(zhì),所述存儲介質(zhì)包括閃存、硬盤、多媒體卡、卡型存儲器(例如,SD或DX存儲器等等)、隨機訪問存儲器(RAM)、靜態(tài)隨機訪問存儲器(SRAM)、只讀存儲器(R0M)、電可擦除可編程只讀存儲器(EEPROM)、可編程只讀存儲器(PROM)、磁性存儲器、磁盤、光盤等等。而且,移動終端100可以與通過網(wǎng)絡連接執(zhí)行存儲器150的存儲功能的網(wǎng)絡存儲裝置協(xié)作。
[0065]控制器170通常控制移動終端的總體操作。例如,控制器170執(zhí)行與語音通話、數(shù)據(jù)通信、視頻通話等等相關的控制和處理。另外,控制器170可以包括用于再現(xiàn)(或回放)多媒體數(shù)據(jù)的多媒體模塊171,多媒體模塊171可以構造在控制器170內(nèi),或者可以構造為與控制器170分離??刂破?70可以執(zhí)行模式識別處理,以將在觸摸屏上執(zhí)行的手寫輸入或者圖片繪制輸入識別為字符或圖像。另外,控制器170還可以包括:界面繪制模塊172和界面顯示控制模塊173;其中,界面繪制模塊172可以讀取所述動畫當前幀的資源及在繪制界面上繪制所述動畫當前幀的用戶界面;界面顯示控制模塊173可以將界面繪制模塊繪制的所述用戶界面顯示在所述應用的顯示單元141的顯示界面上??刂破魍ㄟ^無線通信單元110接收到的消息(例如短消息、應用消息及其他通知消息)進行處理,并通過報警單元143進行來消息提示以及通過顯示單元141進行消息顯示。
[0066]電源單元180在控制器170的控制下接收外部電力或內(nèi)部電力并且提供操作各元件和組件所需的適當?shù)碾娏Α?br>[0067]這里描述的各種實施方式可以以使用例如計算機軟件、硬件或其任何組合的計算機可讀介質(zhì)來實施。對于硬件實施,這里描述的實施方式可以通過使用特定用途集成電路(ASIC)、數(shù)字信號處理器(DSP)、數(shù)字信號處理裝置(DSPD)、可編程邏輯裝置(PLD)、現(xiàn)場可編程門陣列(FPGA)、處理器、控制器、微控制器、微處理器、被設計為執(zhí)行這里描述的功能的電子單元中的至少一種來實施,在一些情況下,這樣的實施方式可以在移動終端的控制器180中實施。對于軟件實施,諸如過程或功能的實施方式可以與允許執(zhí)行至少一種功能或操作的單獨的軟件模塊來實施。軟件代碼可以由以任何適當?shù)木幊陶Z言編寫的軟件應用程序(或程序)來實施,軟件代碼可以存儲在移動終端的存儲器150中并且由控制器170執(zhí)行。
[0068]如圖1中所示的移動終端100可以被構造為利用經(jīng)由幀或分組發(fā)送數(shù)據(jù)的諸如有線和無線通信系統(tǒng)以及基于衛(wèi)星的通信系統(tǒng)來操作。
[0069]現(xiàn)在將參考圖2描述其中根據(jù)本發(fā)明的移動終端能夠操作的通信系統(tǒng)。
[0070]這樣的通信系統(tǒng)可以使用不同的空中接口和/或物理層。例如,由通信系統(tǒng)使用的空中接口包括例如頻分多址(FDMA)、時分多址(TDMA)、碼分多址(CDMA)和通用移動通信系統(tǒng)(UMTS)(特別地,長期演進(LTE))、全球移動通信系統(tǒng)(GSM)等等。作為非限制性示例,下面的描述涉及CDMA通信系統(tǒng),但是這樣的教導同樣適用于其它類型的系統(tǒng)。
[0071]參考圖2,⑶MA無線通信系統(tǒng)可以包括多個移動終端100、多個基站(BS)270、基站控制器(BSC)275和移動交換中心(MSCUSOJSCSSO被構造為與公共電話交換網(wǎng)絡(PSTN)290形成接口。MSC280還被構造為與可以經(jīng)由回程線路耦接到基站270的BSC275形成接口?;爻叹€路可以根據(jù)若干己知的接口中的任一種來構造,所述接口包括例如E1/T1、ATM,IP、PPP、幀中繼、HDSL、ADSL或xDSL。將理解的是,如圖2中所示的系統(tǒng)可以包括多個BSC2750。
[0072]每個BS270可以服務一個或多個分區(qū)(或區(qū)域),由多向天線或指向特定方向的天線覆蓋的每個分區(qū)放射狀地遠離BS270?;蛘?,每個分區(qū)可以由用于分集接收的兩個或更多天線覆蓋。每個BS270可以被構造為支持多個頻率分配,并且每個頻率分配具有特定頻譜(例如,1.25MHz,5MHz 等等)。
[0073]分區(qū)與頻率分配的交叉可以被稱為CDMA信道。BS270也可以被稱為基站收發(fā)器子系統(tǒng)(BTS)或者其它等效術語。在這樣的情況下,術語"基站"可以用于籠統(tǒng)地表示單個BSC275和至少一個BS270。基站也可以被稱為〃蜂窩站〃?;蛘?,特定BS270的各分區(qū)可以被稱為多個蜂窩站。
[0074]如圖2中所示,廣播發(fā)射器(BT)295將廣播信號發(fā)送給在系統(tǒng)內(nèi)操作的移動終端100。如圖1中所示的廣播接收模塊111被設置在移動終端100處以接收由BT295發(fā)送的廣播信號。在圖2中,示出了幾個全球定位系統(tǒng)(GPS)衛(wèi)星300。衛(wèi)星300幫助定位多個移動終端100中的至少一個。
[0075]在圖2中,描繪了多個衛(wèi)星300,但是理解的是,可以利用任何數(shù)目的衛(wèi)星獲得有用的定位信息。如圖1中所示的GPS模塊115通常被構造為與衛(wèi)星300配合以獲得想要的定位信息。替代GPS跟蹤技術或者在GPS跟蹤技術之外,可以使用可以跟蹤移動終端的位置的其它技術。另外,至少一個GPS衛(wèi)星300可以選擇性地或者額外地處理衛(wèi)星DMB傳輸。
[0076]作為無線通信系統(tǒng)的一個典型操作,BS270接收來自各種移動終端100的反向鏈路信號。移動終端100通常參與通話、消息收發(fā)和其它類型的通信。特定基站270接收的每個反向鏈路信號被在特定BS270內(nèi)進行處理。獲得的數(shù)據(jù)被轉發(fā)給相關的BSC275 ASC提供通話資源分配和包括BS270之間的軟切換過程的協(xié)調(diào)的移動管理功能。BSC275還將接收到的數(shù)據(jù)路由到MSC280,其提供用于與PSTN290形成接口的額外的路由服務。類似地,PSTN290與MSC280形成接口,MSC與BSC275形成接口,并且BSC275相應地控制BS270以將正向鏈路信號發(fā)送到移動終端100。
[0077]基于上述移動終端硬件結構以及通信系統(tǒng),提出本發(fā)明如下各個實施例。
[0078]如圖3所示,本發(fā)明第一實施例提出一種應用中動畫的顯示系統(tǒng),所述系統(tǒng)包括:
[0079]界面繪制模塊172,用于創(chuàng)建繪制線程,使所述繪制線程從預置的資源緩存區(qū)中請求讀取所述動畫當前幀的資源,以及基于讀取的所述資源在繪制界面上繪制所述動畫當前幀的用戶界面(即動畫界面);
[0080]界面顯示控制模塊173,用于調(diào)用所述應用的UI線程,使所述UI線程將界面繪制模塊172繪制的所述用戶界面顯示在所述應用的顯示界面上。
[0081]其中,資源包括以下資源中的一種或多種:圖片、文字、語音、位置、顏色等。
[0082 ]以下以Andro id (安卓)系統(tǒng)為例,詳細說明本發(fā)明實施例。
[0083]基于對于現(xiàn)有技術的分析發(fā)現(xiàn),動畫UI不適合在應用程序的主線程中進行繪制。這時候就必須要給那些需要復雜而高效UI的視圖生成一個獨立的繪圖表面,以及使用獨立的線程來繪制這些視圖的UI。具體理由如下:
[0084]如圖4所示,Android控件都是將自己的UI繪制在宿主窗口的繪圖表面(即應用程序的顯示界面)之上,這意味著它們的UI是在應用程序(簡稱應用或程序)的主線程(UI線程)中進行繪制的。由于應用程序的主線程除了要繪制UI之外,還需要及時地響應用戶輸入。
[0085]如圖5所示,宿主窗口的事件處理對象會接收系統(tǒng)采集的驅動事件(簡稱事件),然后,周期性的處理事件。其中事件包括請求資源事件、繪制界面事件等等。
[0086]如圖6所示,當UI線程不能及時響應事件的處理時,系統(tǒng)就會認為應用程序沒有響應了,因此就會彈出一個ANR(Applicat1n Not Responding,應用程序無響應)對話框出來。對于動畫來說,它們的UI都比較復雜,而且要求能夠進行高效的繪制。UI線程承擔了太多的工作,當有耗時操作在主線程時,事件不能及時執(zhí)行,負責處理的對象只處理事件鏈表中最后一個事件,這時,就會出現(xiàn)所謂的“跳幀”,“卡頓”現(xiàn)象。
[0087]基于上述發(fā)現(xiàn),本實施例中系統(tǒng)通過獨立的繪制線程和繪制界面來預繪制動畫界面,通過獨立的UI線程和顯示界面顯示繪制的動畫界面,解脫UI線程的負擔,使UI線程專注用于與用戶的交互,有效提升動畫的流暢程度以及用戶界面交互的響應度,同時可以有效解決了現(xiàn)有動畫顯示使的跳幀、卡頓等問題。
[0088]其中,繪制界面相當于一在后臺運行的界面。
[0089]在第一實施例顯示系統(tǒng)的基礎上,進一步提出第一實施例的變型實施例,在此需要說明的是,為了使描述簡要,在各變型實施例中僅描述與第一實施例的不同之處。
[0090]在本發(fā)明的另一個實施例中,所述系統(tǒng)還可以包括:
[0091]資源處理模塊,用于在接收到從預置的資源緩存區(qū)中請求讀取所述動畫當前幀的資源時,在所述資源緩存區(qū)中查找當前幀的資源;
[0092]在未查找到時,調(diào)用資源讀取線程,使所述資源讀取線程從所述動畫的資源中加載當前幀的資源,并將當前幀的資源存儲在所述資源緩存區(qū)。
[0093]因為現(xiàn)有技術中,資源1操作(即資源加載操作)和動畫界面計算操作的切換成本比較高,進一步降低動畫的流暢程度以及用戶界面交互的響應度,造成系統(tǒng)性能低下的問題,本實施例中通過資源讀取線程(即1線程)加載資源,從現(xiàn)有技術中的UI線程中將資源加載操作分離出來,可以有效現(xiàn)有技術的該問題。
[0094]在本發(fā)明的又一個實施例中,所述資源處理模塊還可以用于:
[0095]預置資源緩存區(qū);
[0096]啟用資源讀取線程,使所述資源讀取線程對所述動畫的資源進行預處理,并將完成預處理的資源存儲在所述資源緩存區(qū)。
[0097]本發(fā)明實施例中,通過預置資源緩存區(qū),并通過資源讀取線程將動畫所需的資源提前存入資源緩存區(qū)中,進一步加快動畫計算繪制過程的速度。
[0098]在本發(fā)明的再一個實施例中,所述資源處理模塊在進行預處理時具體用于:
[0099]基于預置的資源預測策略、緩存命中率策略和/或調(diào)度策略,從所述動畫的資源中加載下一幀(當前幀的下一幀)的資源。
[0100]本發(fā)明實施例通過預置的若干策略,提前加載下一幀資源,并將下一幀資源存儲到資源緩存區(qū),可以滿足動畫的其他幀進行資源請求,防止重復1加載,更進一步加快動畫計算繪制過程的處理速度。
[0101]其中,所述資源處理模塊在進行預處理時還具體用于:
[0102]獲取所述顯示界面的分辨率(即該應用所屬移動終端的屏幕分辨率);
[0103]基于所述分辨率對存儲在所述資源緩存區(qū)的資源進行壓縮。
[0104]本發(fā)明實施例可以有效解決某些資源的格式或大小與顯示界面分辨率不一致的問題。
[0105]以下,舉一具體應用例,描述本發(fā)明中顯示系統(tǒng)的工作時序。
[0106]如圖7所示,該應用例的顯示系統(tǒng)包括資源預處理模塊(簡稱資源處理模塊)、動畫UI繪制模塊(簡稱動畫繪制模塊)和界面顯示控制模塊(圖中僅示出界面顯示控制模塊中的顯示界面)。
[0107]其中,顯示界面包括普通UI區(qū)和動畫UI區(qū)。動畫UI繪制模塊包括動畫UI繪制區(qū)(gp繪制界面)。
[0108]步驟I,資源預處理模塊啟動獨立的線程,其主要功能就是進行資源的預處理,并將處理好的資源放入共享區(qū)供UI繪制線程使用。
[0109]單獨啟用資源讀取的線程是因為1操作和計算操作的切換成本比較高,容易造成性能低下的問題,所以,啟動1線程可以集中做一些讀寫優(yōu)化、預處理等對提高性能有很大的好處。
[0110]具體實現(xiàn)包括:在資源讀取模塊設置資源緩存區(qū),收到UI繪制模塊的資源請求,首先在資源緩存區(qū)進行查找,如果查找到,根據(jù)UI繪制的請求對資源進行處理,返回給UI繪制模塊;如果不存在,則進行資源加載,進行處理返回給UI繪制模塊,同時將其放入資源緩存區(qū);
[0111]設置資源緩存的目的是供動畫的其他幀進行資源請求,防止重復1加載,可以進一步加快動畫處理的速度。
[0112]步驟2,動畫UI繪制模塊基于讀取的所述資源在繪制界面上計算并繪制所述動畫當前幀的用戶界面;
[0113]在具體實現(xiàn)時,動畫UI繪制模塊還可以用于根據(jù)動畫運行時間和動畫運行曲線計算當前UI的顯示效果,如位置、透明度、顏色等等,并將其繪制到獨立的繪制界面。
[0114]在本應用例中,動畫U1繪制模塊主要使用了SurfaceView控件,其內(nèi)嵌了一個專門用于繪制的Surf ace。我們可以控制這個Surf ace的格式和尺寸。Surf ace view控制這個S u r f a c e的繪制位置。主要的繪制控制模塊繼承S u r f a c e V i e w并實現(xiàn)SurfaceHolder.CalIback接口,并創(chuàng)建繪制線程對界面進行繪制,并提交改變,將圖形顯示。這樣,可以在主線程之外的線程中向屏幕繪圖(顯示界面)上。這樣可以避免畫圖任務繁重的時候造成主線程阻塞,從而提高了程序的反應速度。
[0115]步驟3,界面顯示控制模塊調(diào)用所述應用的UI線程,使所述UI線程將所述用戶界面顯示在所述應用的顯示界面上。
[0116]上述的整個動畫的資源處理、UI運算和繪制都在獨立的線程中進行,UI的繪制也是在獨立的繪制界面進行,這樣,UI線程可以專一的處理用戶的交互,更加符合職責單一的原則,結構也更加的清晰,性能也大幅的提升,用戶的體驗度也更好。
[0117]本發(fā)明進一步提供一種顯示方法。
[0118]如圖8所示,本發(fā)明實施例中一種應用中動畫的顯示方法,所述方法包括步驟:
[0119]SlOl,創(chuàng)建繪制線程,使所述繪制線程從預置的資源緩存區(qū)中請求讀取所述動畫當前幀的資源,以及基于讀取的所述資源在繪制界面上計算并繪制所述動畫當前幀的用戶界面;
[0120]S102,調(diào)用所述應用的UI線程,使所述UI線程將所述用戶界面顯示在所述應用的顯示界面上。
[0121]在本發(fā)明的另一個實施例中,所述方法還包括步驟:
[0122]在接收到從預置的資源緩存區(qū)中請求讀取所述動畫當前幀的資源時,在所述資源緩存區(qū)中查找當前幀的資源;
[0123]在未查找到時,調(diào)用資源讀取線程,使所述資源讀取線程從所述動畫的資源中加載當前幀的資源,并將當前幀的資源存儲在所述資源緩存區(qū)。
[0124]在本發(fā)明的又一個實施例中,所述創(chuàng)建繪制線程的步驟之前還包括步驟:
[0125]預置資源緩存區(qū);
[0126]啟用資源讀取線程,使所述資源讀取線程對所述動畫的資源進行預處理,并將完成預處理的資源存儲在所述資源緩存區(qū)。
[0127]具體說,所述預處理的步驟包括步驟:
[0128]基于預置的資源預測策略、緩存命中率策略和/或調(diào)度策略,從所述動畫的資源中加載下一幀的資源。
[0129]具體說,所述預處理的步驟還可以包括步驟:
[0130]獲取所述顯示界面的分辨率;
[0131 ]基于所述分辨率對存儲在所述資源緩存區(qū)的資源進行壓縮。
[0132]本發(fā)明中顯示方法的各實施例,通過獨立的繪制線程和繪制界面來預繪制動畫界面,通過獨立的UI線程和顯示界面顯示繪制的動畫界面,解脫UI線程的負擔,使UI線程專注用于與用戶的交互,有效提升動畫的流暢程度以及用戶界面交互的響應度,同時可以有效解決了現(xiàn)有動畫顯示使的跳幀、卡頓等問題。
[0133]需要說明的是,在本文中,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者裝置不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者裝置所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括該要素的過程、方法、物品或者裝置中還存在另外的相同要素。
[0134]上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
[0135]通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到上述實施例方法可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術方案本質(zhì)上或者說對現(xiàn)有技術做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)(如R0M/RAM、磁碟、光盤)中,包括若干指令用以使得一臺終端設備(可以是手機,計算機,月艮務器,空調(diào)器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述的方法。
[0136]以上僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結構或等效流程變換,或直接或間接運用在其他相關的技術領域,均同理包括在本發(fā)明的專利保護范圍內(nèi)。
【主權項】
1.一種應用中動畫的顯示系統(tǒng),其特征在于,所述系統(tǒng)包括: 界面繪制模塊,用于創(chuàng)建繪制線程,使所述繪制線程從預置的資源緩存區(qū)中讀取所述動畫當前幀的資源,以及基于讀取的所述資源在繪制界面上繪制所述動畫當前幀的用戶界面; 界面顯示控制模塊,用于調(diào)用所述應用的UI線程,使所述UI線程將所述界面繪制模塊繪制的所述用戶界面顯示在所述應用的顯示界面上。2.如權利要求1所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括: 資源處理模塊,用于在接收到從預置的資源緩存區(qū)中讀取所述動畫當前幀的資源的請求時,在所述資源緩存區(qū)中查找當前幀的資源; 在未查找到時,調(diào)用資源讀取線程,使所述資源讀取線程從所述動畫的資源中加載當前幀的資源,并將當前幀的資源存儲在所述資源緩存區(qū)。3.如權利要求1或2所述的系統(tǒng),其特征在于,所述資源處理模塊還用于: 預置資源緩存區(qū); 啟用資源讀取線程,使所述資源讀取線程對所述動畫的資源進行預處理,并將完成預處理的資源存儲在所述資源緩存區(qū)。4.如權利要求3所述的系統(tǒng),其特征在于,所述資源處理模塊在進行預處理時具體用于: 基于預置的資源預測策略、緩存命中率策略和/或調(diào)度策略,從所述動畫的資源中加載下一幀的資源。5.如權利要求4所述的系統(tǒng),其特征在于,所述資源處理模塊在進行預處理時還具體用于: 獲取所述顯示界面的分辨率; 基于所述分辨率對存儲在所述資源緩存區(qū)的資源進行壓縮。6.一種應用中動畫的顯示方法,其特征在于,所述方法包括步驟: 創(chuàng)建繪制線程,使所述繪制線程從預置的資源緩存區(qū)中讀取所述動畫當前幀的資源,以及基于讀取的所述資源在繪制界面上計算并繪制所述動畫當前幀的用戶界面; 調(diào)用所述應用的UI線程,使所述UI線程將所述用戶界面顯示在所述應用的顯示界面上。7.如權利要求6所述的方法,其特征在于,所述方法還包括步驟: 在接收到從預置的資源緩存區(qū)中讀取所述動畫當前幀的資源的請求時,在所述資源緩存區(qū)中查找當前幀的資源; 在未查找到時,調(diào)用資源讀取線程,使所述資源讀取線程從所述動畫的資源中加載當前幀的資源,并將當前幀的資源存儲在所述資源緩存區(qū)。8.如權利要求6或7所述的方法,其特征在于,所述創(chuàng)建繪制線程的步驟之前還包括步驟: 預置資源緩存區(qū); 啟用資源讀取線程,使所述資源讀取線程對所述動畫的資源進行預處理,并將完成預處理的資源存儲在所述資源緩存區(qū)。9.如權利要求8所述的方法,其特征在于,所述預處理的步驟包括步驟: 基于預置的資源預測策略、緩存命中率策略和/或調(diào)度策略,從所述動畫的資源中加載下一幀的資源。10.如權利要求9所述的方法,其特征在于,所述預處理的步驟還包括步驟: 獲取所述顯示界面的分辨率; 基于所述分辨率對存儲在所述資源緩存區(qū)的資源進行壓縮。
【文檔編號】H04M1/725GK105957121SQ201610493270
【公開日】2016年9月21日
【申請日】2016年6月29日
【發(fā)明人】安占磊
【申請人】努比亞技術有限公司