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