本發(fā)明涉及互聯(lián)網(wǎng)應用技術領域,特別涉及一種動畫處理方法及裝置。
背景技術:
隨著互聯(lián)網(wǎng)技術的發(fā)展,人們從互聯(lián)網(wǎng)上可以獲得的信息越來越豐富,由于動畫能呈現(xiàn)給人們豐富、有趣的畫面和內(nèi)容,越來越多的人們喜歡在網(wǎng)上看動畫。互聯(lián)網(wǎng)中的動畫以各種各樣的形式呈現(xiàn)給用戶,如flash動畫,flash可以包含簡單的動畫、視頻內(nèi)容、復雜演示文稿或應用程序等。隨著終端技術的快速發(fā)展,人們可以在終端(如智能手機、平板電腦等)上播放動畫。然而,在終端上播放動畫會消耗大量的終端系統(tǒng)資源,如何節(jié)省終端系統(tǒng)資源成為亟待解決的問題。
技術實現(xiàn)要素:
本發(fā)明提供一種動畫處理方法及裝置,能夠在播放動畫重用圖層的時候避免重復圖層渲染,從而實現(xiàn)節(jié)省終端的系統(tǒng)資源的目的。
本發(fā)明提供一種動畫處理方法,包括:
調(diào)起用于動畫性能調(diào)優(yōu)的預設工具;
開啟所述預設工具中的指定屬性,利用所述指定屬性緩存一個或多個目標圖層各自對應的圖像,其中,所述目標圖層繪制圖像時所消耗的時長大于或等于指定時長。
在本發(fā)明一實施例中,利用所述指定屬性緩存一個或多個目標圖層各自對應的圖像,包括:
利用所述指定屬性將一個或多個目標圖層繪制到終端屏幕之外的圖像,并將所述圖像緩存起來。
在本發(fā)明一實施例中,所述方法還包括:
利用緩存的所述圖像進行后續(xù)目標圖層的繪制。
在本發(fā)明一實施例中,所述預設工具為Instruments中的Core Animation工具。
在本發(fā)明一實施例中,所述Core Animation工具為可視化工具。
在本發(fā)明一實施例中,所述指定屬性為shouldRasterizep屬性。
本發(fā)明還提供一種動畫處理裝置,包括:
調(diào)起模塊,用于調(diào)起用于動畫性能調(diào)優(yōu)的預設工具;
緩存模塊,用于開啟所述預設工具中的指定屬性,利用所述指定屬性緩存一個或多個目標圖層各自對應的圖像,其中,所述目標圖層繪制圖像時所消耗的時長大于或等于指定時長。
在本發(fā)明一實施例中,所述緩存模塊還用于:
利用所述指定屬性將一個或多個目標圖層繪制到終端屏幕之外的圖像,并將所述圖像緩存起來。
在本發(fā)明一實施例中,所述裝置還包括:
繪制模塊,用于利用緩存的所述圖像進行后續(xù)目標圖層的繪制。
在本發(fā)明一實施例中,所述預設工具為Instruments中的Core Animation工具。
在本發(fā)明一實施例中,所述Core Animation工具為可視化工具。
在本發(fā)明一實施例中,所述指定屬性為shouldRasterizep屬性。
在本發(fā)明實施例中,調(diào)起用于動畫性能調(diào)優(yōu)的預設工具;開啟所述預設工具中的指定屬性,利用所述指定屬性緩存一個或多個目標圖層各自對應的圖像,其中,所述目標圖層繪制圖像時所消耗的時長大于或等于指定時長。由此可見,本發(fā)明實施例能夠在播放動畫重用圖層的時候避免重復圖層渲染,從而實現(xiàn)節(jié)省終端的系統(tǒng)資源的目的。
本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在所寫的說明書、權利要求書、以及附圖中所特別指出的結(jié)構來實現(xiàn)和獲得。
下面通過附圖和實施例,對本發(fā)明的技術方案做進一步的詳細描述。
附圖說明
附圖用來提供對本發(fā)明的進一步理解,并且構成說明書的一部分,與本發(fā)明的實施例一起用于解釋本發(fā)明,并不構成對本發(fā)明的限制。在附圖中:
圖1所示為本發(fā)明一實施例中動畫處理方法的流程圖;
圖2所示為本發(fā)明另一實施例中動畫處理方法的流程圖;
圖3所示為本發(fā)明一實施例中動畫處理裝置的結(jié)構示意圖;以及
圖4所示為本發(fā)明另一實施例中動畫處理裝置的結(jié)構示意圖。
具體實施方式
以下結(jié)合附圖對本發(fā)明的優(yōu)選實施例進行說明,應當理解,此處所描述的優(yōu)選實施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
如圖1所示為本發(fā)明一實施例中動畫處理方法的流程圖,該方法可以應用在電腦、手機等終端上,該方法可以包括以下步驟S11-S12。
步驟S11,調(diào)起用于動畫性能調(diào)優(yōu)的預設工具。
在該步驟中,預設工具可以為Instruments中的Core Animation工具,該工具為可視化工具,可以用來監(jiān)測Core Animation動畫性能,并對動畫性能調(diào)優(yōu)。并且,Core Animation工具提供了一系列復選框選項來幫助調(diào)試渲染。
步驟S12,開啟預設工具中的指定屬性,利用該指定屬性緩存一個或多個目標圖層各自對應的圖像,其中,目標圖層繪制圖像時所消耗的時長大于或等于指定時長。
在該步驟中,預設工具中的指定屬性可以為shouldRasterizep屬性。當使用shouldRasterizep屬性的時候,耗時的圖層繪制會被緩存,然后當做一個簡單的扁平圖片呈現(xiàn)。當緩存再生的時候這個選項就用紅色對柵格化圖層進行了高亮。如果緩存頻繁再生的話,就意味著柵格化可能會有負面的性能影響了。啟用shouldRasterize屬性會將圖層繪制到一個屏幕之外的圖像。然后這個圖像將會被緩存起來并繪制到實際圖層的contents和子圖層。如果有很多的子圖層或者有復雜的效果應用,這樣做就會比重繪所有事務的所有幀劃得來得多。但是光柵化原始圖像需要時間,而且還會消耗額外的內(nèi)存。
此外,上文提及的指定時長可以根據(jù)實際需求進行設置,本發(fā)明不進行限制。在本發(fā)明實施例中,可以記錄圖層繪制圖像時所消耗的時長,將記錄的時長與指定時長進行比較,確定記錄的時長大于指定時長對應的圖層為目標圖層。
在本發(fā)明實施例中,調(diào)起用于動畫性能調(diào)優(yōu)的預設工具;開啟所述預設工具中的指定屬性,利用所述指定屬性緩存一個或多個目標圖層各自對應的圖像,其中,所述目標圖層繪制圖像時所消耗的時長大于或等于指定時長。由此可見,本發(fā)明實施例能夠在播放動畫重用圖層的時候避免重復圖層渲染,從而實現(xiàn)節(jié)省終端的系統(tǒng)資源(如內(nèi)存、CPU等)的目的。
在本發(fā)明的可選實施例中,上文步驟S12中利用該指定屬性緩存一個或多個目標圖層各自對應的圖像可以實施為以下步驟A1-A2:
步驟A1,利用該指定屬性將一個或多個目標圖層繪制到終端屏幕之外的圖像。
步驟A2,將上述繪制的圖像緩存起來,以便利用緩存的圖像進行后續(xù)目標圖層的繪制。
下面通過一具體實施例來詳細介紹本發(fā)明的動畫處理方法的實現(xiàn)過程。如圖2所示為本發(fā)明另一實施例中動畫處理方法的流程圖,該方法可以包括以下步驟S21-S24。
步驟S21,調(diào)起用于動畫性能調(diào)優(yōu)的Core Animation工具。
在該步驟中,Core Animation工具可以為可視化工具,可以用來監(jiān)測Core Animation動畫性能,并對動畫性能調(diào)優(yōu)。并且,Core Animation工具提供了一系列復選框選項來幫助調(diào)試渲染。
步驟S22,開啟Core Animation工具中的shouldRasterizep屬性。
在該步驟中,當使用shouldRasterizep屬性的時候,耗時的圖層繪制會被緩存,然后當做一個簡單的扁平圖片呈現(xiàn)。當緩存再生的時候這個選項就用紅色對柵格化圖層進行了高亮。如果緩存頻繁再生的話,就意味著柵格化可能會有負面的性能影響了。啟用shouldRasterize屬性會將圖層繪制到一個屏幕之外的圖像。然后這個圖像將會被緩存起來并繪制到實際圖層的contents和子圖層。如果有很多的子圖層或者有復雜的效果應用,這樣做就會比重繪所有事務的所有幀劃得來得多。但是光柵化原始圖像需要時間,而且還會消耗額外的內(nèi)存。
具體開啟Core Animation工具中的shouldRasterizep屬性的代碼如下:
view.layer.shouldRasterize=Y(jié)ES;
view.layer.rasterizationScale=[UIScreen mainScreen].scale。
步驟S23,利用shouldRasterizep屬性將一個或多個目標圖層繪制到終端屏幕之外的圖像。
步驟S24,將上述繪制的圖像緩存起來,以便利用緩存的圖像進行后續(xù)目標圖層的繪制,其中,目標圖層繪制圖像時所消耗的時長大于或等于指定時長。
需要說明的是,在實際應用中,上述所有可選實施方式可以采用結(jié)合的方式任意組合,形成本發(fā)明的可選實施例,在此不再一一贅述。
對應于上述實施例中的動畫處理方法,本發(fā)明還提供一種動畫處理裝置。如圖3所示為本發(fā)明一實施例中動畫處理裝置的結(jié)構示意圖,包括:
調(diào)起模塊31,用于調(diào)起用于動畫性能調(diào)優(yōu)的預設工具;
緩存模塊32,用于開啟所述預設工具中的指定屬性,利用所述指定屬性緩存一個或多個目標圖層各自對應的圖像,其中,所述目標圖層繪制圖像時所消耗的時長大于或等于指定時長。
在本發(fā)明一實施例中,所述緩存模塊32還用于:
利用所述指定屬性將一個或多個目標圖層繪制到終端屏幕之外的圖像,并將所述圖像緩存起來。
在本發(fā)明一實施例中,如圖4所示,上文圖3展示的裝置還可以包括:
繪制模塊41,用于利用緩存的所述圖像進行后續(xù)目標圖層的繪制。
在本發(fā)明一實施例中,所述預設工具為Instruments中的Core Animation工具。
在本發(fā)明一實施例中,所述Core Animation工具為可視化工具。
在本發(fā)明一實施例中,所述指定屬性為shouldRasterizep屬性。
本發(fā)明實施例的上述裝置:調(diào)起用于動畫性能調(diào)優(yōu)的預設工具;開啟所述預設工具中的指定屬性,利用所述指定屬性緩存一個或多個目標圖層各自對應的圖像,其中,所述目標圖層繪制圖像時所消耗的時長大于或等于指定時長。由此可見,本發(fā)明實施例能夠在播放動畫重用圖層的時候避免重復圖層渲染,從而實現(xiàn)節(jié)省終端的系統(tǒng)資源的目的。
本領域內(nèi)的技術人員應明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器和光學存儲器等)上實施的計算機程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設備(系統(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)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
顯然,本領域的技術人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權利要求及其等同技術的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。