本發(fā)明涉及終端技術(shù)領(lǐng)域,尤其涉及一種圖形渲染方法及相關(guān)設(shè)備。
背景技術(shù):
隨著終端技術(shù)的發(fā)展,在終端上運(yùn)行的應(yīng)用也有更加精美的畫(huà)面效果,尤其是游戲類應(yīng)用;在另一方面,對(duì)這類應(yīng)用中精細(xì)畫(huà)面的渲染能力也是評(píng)價(jià)終端設(shè)備顯示效果的一個(gè)重要指標(biāo)。
在運(yùn)行安卓系統(tǒng)的終端設(shè)備中,可以通過(guò)直接采用OpenGL ES(Open Graphics Library for Embedded Systems,嵌入式設(shè)備開(kāi)放圖形接口)和GPU(Graphics Processing Unit,圖像處理器)加速進(jìn)行圖像渲染,除此以外,還可以通過(guò)虛擬機(jī)的方式來(lái)進(jìn)行渲染,然而,如果采用虛擬機(jī),也就是軟件模擬的方式進(jìn)行渲染,其實(shí)現(xiàn)復(fù)雜,運(yùn)行速度慢,對(duì)CPU(Central Processing Unit,中央處理器)的占用率高,容易出現(xiàn)畫(huà)面卡頓和丟幀的現(xiàn)象。
因此,如何對(duì)圖形渲染進(jìn)行加速,并獲得更好的渲染效果,成為一個(gè)亟待解決的問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種圖形渲染方法及相關(guān)設(shè)備,可以在需要進(jìn)行圖形渲染時(shí),將圖形渲染的計(jì)算遷移至服務(wù)器進(jìn)行,從而獲得更好的渲染效果。
本發(fā)明實(shí)施例第一方面公開(kāi)了一種圖形渲染方法,包括:
終端設(shè)備獲取所述終端設(shè)備中應(yīng)用進(jìn)行圖形渲染的請(qǐng)求指令;
提取所述請(qǐng)求指令調(diào)用的函數(shù)的第一函數(shù)信息;其中,所述第一函數(shù)信息包含所述圖形渲染的對(duì)象的參數(shù)信息;
將所述第一函數(shù)信息打包成輸入輸出流;
將所述輸入輸出流傳輸至服務(wù)器;
接收所述服務(wù)器返回的處理結(jié)果并根據(jù)所述處理結(jié)果繪制所述應(yīng)用請(qǐng)求的圖形渲染界面圖像。
作為一種可選的實(shí)施方式,所述提取所述請(qǐng)求指令調(diào)用的函數(shù)的第一函數(shù)信息之前,所述方法還包括:
通過(guò)模擬器模擬所述終端設(shè)備中圖形渲染的實(shí)現(xiàn);
所述提取所述請(qǐng)求指令調(diào)用的函數(shù)的第一函數(shù)信息,包括:
利用所述模擬器修改所述終端設(shè)備中圖形渲染的實(shí)現(xiàn),以提取所述請(qǐng)求指令調(diào)用的函數(shù)的所述第一函數(shù)信息。
作為一種可選的實(shí)施方式,所述將所述第一函數(shù)信息打包成輸入輸出流之前,所述方法還包括:
確定所述請(qǐng)求指令調(diào)用的函數(shù)是否有返回值,若所述請(qǐng)求指令調(diào)用的函數(shù)沒(méi)有返回值,將所述第一函數(shù)信息緩存;
若所述請(qǐng)求指令調(diào)用的函數(shù)有返回值,則執(zhí)行所述將所述第一函數(shù)信息打包成輸入輸出流。
作為一種可選的實(shí)施方式,所述將所述輸入輸出流傳輸至服務(wù)器,包括:
利用外設(shè)部件互連標(biāo)準(zhǔn)設(shè)備實(shí)現(xiàn)共享內(nèi)存以將所述輸入輸出流傳輸至所述服務(wù)器。
本發(fā)明實(shí)施例第二方面公開(kāi)了一種圖形渲染方法,包括:
服務(wù)器接收終端設(shè)備傳輸?shù)妮斎胼敵隽鳎?/p>
所述服務(wù)器中的模擬器識(shí)別所述輸入輸出流中是否有圖形渲染的函數(shù)調(diào)用;
若是,則對(duì)所述輸入輸出流進(jìn)行解包以得到所述終端設(shè)備調(diào)用的圖形渲染的函數(shù)信息;
根據(jù)所述函數(shù)信息轉(zhuǎn)調(diào)所述服務(wù)器中的對(duì)應(yīng)函數(shù);其中,所述函數(shù)信息包含所述終端設(shè)備圖形渲染的對(duì)象的參數(shù)信息;
獲取所述服務(wù)器中的對(duì)應(yīng)函數(shù)的處理結(jié)果,并將所述處理結(jié)果返回給所述終端設(shè)備。
作為一種可選的實(shí)施方式,所述服務(wù)器中的模擬器識(shí)別所述輸入輸出流中是否有圖形渲染的函數(shù)調(diào)用,包括:
通過(guò)所述模擬器的渲染插件識(shí)別所述輸入輸出流中是否有圖形渲染的函數(shù)調(diào)用。
作為一種可選的實(shí)施方式,所述通過(guò)所述模擬器的渲染插件識(shí)別所述輸入輸出流中是否有圖形渲染的函數(shù)調(diào)用之前,所述方法還包括:
判斷所述模擬器是否第一次添加所述渲染插件;若是,則為所述模擬器添加所述渲染插件。
作為一種可選的實(shí)施方式,所述根據(jù)所述函數(shù)信息轉(zhuǎn)調(diào)所述服務(wù)器中的對(duì)應(yīng)函數(shù),包括:
利用所述模擬器的翻譯插件根據(jù)所述函數(shù)信息轉(zhuǎn)調(diào)所述服務(wù)器中的對(duì)應(yīng)函數(shù)。
本發(fā)明實(shí)施例第三方面公開(kāi)了一種終端設(shè)備,包括:
獲取單元,用于獲取所述終端設(shè)備中應(yīng)用進(jìn)行圖形渲染的請(qǐng)求指令;
提取單元,用于提取所述請(qǐng)求指令調(diào)用的函數(shù)的第一函數(shù)信息;其中,所述第一函數(shù)信息包含所述圖形渲染的對(duì)象的參數(shù)信息;
打包單元,用于將所述第一函數(shù)信息打包成輸入輸出流;
傳輸單元,用于將所述輸入輸出流傳輸至服務(wù)器;
接收單元,用于接收所述服務(wù)器返回的處理結(jié)果;
繪制單元,用于根據(jù)所述處理結(jié)果繪制所述應(yīng)用請(qǐng)求的圖形渲染界面圖像。
作為一種可選的實(shí)施方式,所述終端設(shè)備還包括:
模擬單元,用于通過(guò)模擬器模擬所述終端設(shè)備中圖形渲染的實(shí)現(xiàn);
所述提取單元,具體用于利用所述模擬器修改所述終端設(shè)備中圖形渲染的實(shí)現(xiàn),以提取所述請(qǐng)求指令調(diào)用的函數(shù)的所述第一函數(shù)信息。
作為一種可選的實(shí)施方式,所述終端設(shè)備還包括:
確定單元,用于確定所述請(qǐng)求指令調(diào)用的函數(shù)是否有返回值;
緩存單元,用于當(dāng)所述請(qǐng)求指令調(diào)用的函數(shù)沒(méi)有返回值時(shí),將所述第一函數(shù)信息緩存;
所述打包單元,具體用于當(dāng)所述請(qǐng)求指令調(diào)用的函數(shù)有返回值時(shí),將所述第一函數(shù)信息打包成所述輸入輸出流。
作為一種可選的實(shí)施方式,所述傳輸單元,具體用于利用外設(shè)部件互連標(biāo)準(zhǔn)設(shè)備實(shí)現(xiàn)共享內(nèi)存以將所述輸入輸出流傳輸至所述服務(wù)器。
本發(fā)明實(shí)施例第四方面公開(kāi)了一種服務(wù)器,包括:
接收單元,用于接收終端設(shè)備傳輸?shù)妮斎胼敵隽鳎?/p>
識(shí)別單元,用于利用所述服務(wù)器中的模擬器識(shí)別所述輸入輸出流中是否有圖形渲染的函數(shù)調(diào)用;
解包單元,用于當(dāng)所述輸入輸出流中有圖形渲染的函數(shù)調(diào)用時(shí),對(duì)所述輸入輸出流進(jìn)行解包以得到所述終端設(shè)備調(diào)用的圖形渲染的函數(shù)信息;
轉(zhuǎn)調(diào)單元,用于根據(jù)所述函數(shù)信息轉(zhuǎn)調(diào)所述服務(wù)器中的對(duì)應(yīng)函數(shù);其中,所述函數(shù)信息包含所述終端設(shè)備圖形渲染的對(duì)象的參數(shù)信息;
獲取單元,用于獲取所述服務(wù)器中的對(duì)應(yīng)函數(shù)的處理結(jié)果;
返回單元,用于將所述處理結(jié)果返回給所述終端設(shè)備。
作為一種可選的實(shí)施方式,所述識(shí)別單元,具體用于通過(guò)所述模擬器的渲染插件識(shí)別所述輸入輸出流中是否有圖形渲染的函數(shù)調(diào)用。
作為一種可選的實(shí)施方式,所述服務(wù)器還包括:
判斷單元,用于判斷所述模擬器是否第一次添加所述渲染插件;
添加單元,用于當(dāng)所述模擬器為第一次添加所述渲染插件時(shí),為所述模擬器添加所述渲染插件。
作為一種可選的實(shí)施方式,所述轉(zhuǎn)調(diào)單元,具體用于利用所述模擬器的翻譯插件根據(jù)所述函數(shù)信息轉(zhuǎn)調(diào)所述服務(wù)器中的對(duì)應(yīng)函數(shù)。
本發(fā)明實(shí)施例第五方面公開(kāi)了一種終端設(shè)備,包括:
存儲(chǔ)有可執(zhí)行程序代碼的存儲(chǔ)器;
與所述存儲(chǔ)器耦合的處理器;
所述處理器調(diào)用所述存儲(chǔ)器中存儲(chǔ)的所述可執(zhí)行程序代碼,執(zhí)行如上述第一方面所描述的方法。
本發(fā)明實(shí)施例第六方面公開(kāi)了一種服務(wù)器,包括:
存儲(chǔ)有可執(zhí)行程序代碼的存儲(chǔ)器;
與所述存儲(chǔ)器耦合的處理器;
所述處理器調(diào)用所述存儲(chǔ)器中存儲(chǔ)的所述可執(zhí)行程序代碼,執(zhí)行如上述第二方面所描述的方法。
從以上技術(shù)方案可以看出,本發(fā)明實(shí)施例具有以下優(yōu)點(diǎn):
本發(fā)明實(shí)施例中,終端設(shè)備獲取所述終端設(shè)備中應(yīng)用進(jìn)行圖形渲染的請(qǐng)求指令;提取所述請(qǐng)求指令調(diào)用的函數(shù)的第一函數(shù)信息;其中,所述第一函數(shù)信息包含所述圖形渲染的對(duì)象的參數(shù)信息;將所述第一函數(shù)信息打包成輸入輸出流;將所述輸入輸出流傳輸至服務(wù)器;接收所述服務(wù)器返回的處理結(jié)果并根據(jù)所述處理結(jié)果繪制所述應(yīng)用請(qǐng)求的圖形渲染界面圖像。由此可見(jiàn),實(shí)施本發(fā)明實(shí)施例,終端設(shè)備可以在需要進(jìn)行圖形渲染時(shí),將圖形渲染的計(jì)算遷移至服務(wù)器進(jìn)行,從而獲得更好的渲染效果。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)要介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域的普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例公開(kāi)的一種圖形渲染方法的流程示意圖;
圖2為本發(fā)明實(shí)施例公開(kāi)的另一種圖形渲染方法的流程示意圖;
圖3為本發(fā)明實(shí)施例公開(kāi)的一種終端設(shè)備的結(jié)構(gòu)示意圖;
圖4為本發(fā)明實(shí)施例公開(kāi)的另一種終端設(shè)備的結(jié)構(gòu)示意圖;
圖5為本發(fā)明實(shí)施例公開(kāi)的一種終端設(shè)備的實(shí)體裝置結(jié)構(gòu)示意圖;
圖6為本發(fā)明實(shí)施例公開(kāi)的一種服務(wù)器的結(jié)構(gòu)示意圖;
圖7為本發(fā)明實(shí)施例公開(kāi)的一種服務(wù)器實(shí)體裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步地詳細(xì)描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部份實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明的說(shuō)明書(shū)和權(quán)利要求書(shū)及上述附圖中的術(shù)語(yǔ)“第一”、“第二”等是用于區(qū)別不同的對(duì)象,而不是用于描述特定順序。此外,術(shù)語(yǔ)“包括”和“具有”以及它們?nèi)魏巫冃?,意圖在于覆蓋不排他的包含。例如包含了一系列步驟或單元的過(guò)程、方法、系統(tǒng)、產(chǎn)品或設(shè)備沒(méi)有限定于已列出的步驟或單元,而是可選地還包括沒(méi)有列出的步驟或單元,或可選地還包括對(duì)于這些過(guò)程、方法或設(shè)備固有的其他步驟或單元。
本發(fā)明實(shí)施例提供了一種圖形渲染方法及相關(guān)設(shè)備,可以在需要進(jìn)行圖形渲染時(shí),將圖形渲染的計(jì)算遷移至服務(wù)器進(jìn)行,從而獲得更好的渲染效果。以下分別進(jìn)行詳細(xì)說(shuō)明。
請(qǐng)參閱圖1,圖1是本發(fā)明實(shí)施例公開(kāi)的一種圖形渲染方法的流程示意圖。其中,圖1所示的圖形渲染方法可以包括以下步驟:
101、終端設(shè)備獲取終端設(shè)備中應(yīng)用進(jìn)行圖形渲染的請(qǐng)求指令。
本發(fā)明實(shí)施例中,終端設(shè)備可為智能手機(jī)、智能手表、掌上電腦、平板電腦、個(gè)人數(shù)字助理(Personal Digital Assistant,PDA)、銷售終端(Point of Sales,POS)等,本發(fā)明實(shí)施例后續(xù)不作復(fù)述。
本發(fā)明實(shí)施例中,終端設(shè)備中的應(yīng)用在需要顯示復(fù)雜、精細(xì)的畫(huà)面效果時(shí),需要向終端設(shè)備的處理器發(fā)送請(qǐng)求指令,調(diào)用Open GL ES的方法來(lái)進(jìn)行圖形渲染。
102、提取上述請(qǐng)求指令調(diào)用的函數(shù)的第一函數(shù)信息;其中,上述第一函數(shù)信息包含上述圖形渲染的對(duì)象的參數(shù)信息。
終端設(shè)備在進(jìn)行圖形渲染時(shí),可以通過(guò)虛擬機(jī)的方式進(jìn)行軟件模擬,即通過(guò)在終端設(shè)備中運(yùn)行模擬器,利用模擬器模擬對(duì)于Open GL ES方法的實(shí)現(xiàn),再通過(guò)模擬器提取上述請(qǐng)求指令調(diào)用的函數(shù)和圖形渲染的對(duì)象的參數(shù)信息作為上述第一函數(shù)信息。舉例來(lái)說(shuō),終端設(shè)備運(yùn)行安卓系統(tǒng),在運(yùn)行模擬器之后,利用模擬器產(chǎn)生對(duì)Open GL ES方法的模擬EMULATION GLES,利用EMULATION GLES修改終端設(shè)備的系統(tǒng)中對(duì)Open GL ES的處理,在目錄Android/device/generic/goldfish/opengl/system下提取OpenGL ES方法中的函數(shù)和參數(shù)信息。
103、將上述第一函數(shù)信息打包成輸入輸出流。
在提取了上述請(qǐng)求指令調(diào)用的函數(shù)的第一函數(shù)信息之后,終端設(shè)備可以將第一函數(shù)信息打包發(fā)送至服務(wù)器,該服務(wù)器具有OpenGL的實(shí)現(xiàn),可以利用第一函數(shù)信息完成圖形渲染所需的處理,再將處理結(jié)果返回至終端設(shè)備,從而降低進(jìn)行圖形渲染對(duì)終端設(shè)備CPU的運(yùn)行壓力,并且由于服務(wù)器的計(jì)算能力一般強(qiáng)于終端設(shè)備,因而可以獲得更好的圖形渲染效果,除此以外,服務(wù)器進(jìn)行圖形渲染計(jì)算較快,可以降低圖形渲染過(guò)程所需時(shí)間,避免終端設(shè)備的應(yīng)用在需要進(jìn)行圖形渲染時(shí)出現(xiàn)卡頓、丟幀的現(xiàn)象。
在將上述第一函數(shù)信息打包成輸入輸出流之前,先確定上述請(qǐng)求指令調(diào)用的函數(shù)是否有返回值,若上述請(qǐng)求指令調(diào)用的函數(shù)沒(méi)有返回值,則將第一函數(shù)信息緩存,直至終端設(shè)備出現(xiàn)調(diào)用的函數(shù)有返回值的圖形渲染請(qǐng)求指令,將第一函數(shù)信息打包成輸入輸出流發(fā)送至服務(wù)器,或者,將第一函數(shù)信息與后續(xù)的調(diào)用的函數(shù)有返回值的圖形渲染請(qǐng)求指令的函數(shù)信息共同打包成輸入輸出流發(fā)送至服務(wù)器。
104、將上述輸入輸出流傳輸至服務(wù)器。
作為一種可選的實(shí)施方式,終端設(shè)備的模擬器利用外設(shè)部件互連標(biāo)準(zhǔn)設(shè)備實(shí)現(xiàn)共享內(nèi)存以將上述輸入輸出流傳輸至服務(wù)器。該服務(wù)器具有OpenGL的實(shí)現(xiàn),可以利用輸入輸出流中包含的第一函數(shù)信息完成圖形渲染所需的處理,再將處理結(jié)果返回至終端設(shè)備。
105、接收服務(wù)器返回的處理結(jié)果。
106、根據(jù)上述處理結(jié)果繪制上述應(yīng)用請(qǐng)求的圖形渲染界面圖像。
由此可見(jiàn),利用圖1所描述的方法,終端設(shè)備可以將圖形渲染的計(jì)算轉(zhuǎn)移至服務(wù)器完成,從而降低進(jìn)行圖形渲染對(duì)終端設(shè)備CPU的運(yùn)行壓力;并且由于服務(wù)器的計(jì)算能力一般強(qiáng)于終端設(shè)備,因而可以獲得更好的圖形渲染效果;除此以外,服務(wù)器進(jìn)行圖形渲染計(jì)算較快,可以降低圖形渲染過(guò)程所需時(shí)間,避免終端設(shè)備的應(yīng)用在需要進(jìn)行圖形渲染時(shí)出現(xiàn)卡頓、丟幀的現(xiàn)象。
請(qǐng)參閱圖2,圖2是本發(fā)明實(shí)施例公開(kāi)的另一種圖形渲染方法的流程示意圖。如圖2所示,該圖形渲染方法可以包括以下步驟:
201、服務(wù)器接收終端設(shè)備傳輸?shù)妮斎胼敵隽鳌?/p>
本發(fā)明實(shí)施例中,服務(wù)器可為大型機(jī)、小型機(jī)甚至個(gè)人電腦,其共同的特點(diǎn)為可以為終端設(shè)備的圖形渲染提供類似“云計(jì)算”的服務(wù),即將終端設(shè)備中應(yīng)用進(jìn)行圖形渲染的計(jì)算轉(zhuǎn)移至該服務(wù)器進(jìn)行。
202、服務(wù)器中的模擬器識(shí)別上述輸入輸出流中是否有圖形渲染的函數(shù)調(diào)用。
本發(fā)明實(shí)施例中,服務(wù)器可運(yùn)行模擬器,通過(guò)模擬器的渲染插件識(shí)別上述輸入輸出流中是否有圖形渲染的函數(shù)調(diào)用。在此之前,先判斷上述模擬器是否第一次添加上述渲染插件,若是,則為上述模擬器添加上述渲染插件。
203、若是,則對(duì)上述輸入輸出流進(jìn)行解包以得到終端設(shè)備調(diào)用的圖形渲染的函數(shù)信息。
本發(fā)明實(shí)施例中,終端設(shè)備發(fā)送給服務(wù)器的輸入輸出流中包含終端設(shè)備進(jìn)行圖形渲染所調(diào)用的函數(shù)和圖形渲染對(duì)象的參數(shù)信息,因此服務(wù)器對(duì)該輸入輸出流進(jìn)行解包后,可以獲得該終端設(shè)備調(diào)用的圖形渲染的函數(shù)信息(即進(jìn)行圖形渲染所調(diào)用的函數(shù)和圖形渲染對(duì)象的參數(shù)信息)。
204、根據(jù)上述函數(shù)信息轉(zhuǎn)調(diào)服務(wù)器中的對(duì)應(yīng)函數(shù);其中,上述函數(shù)信息包含終端設(shè)備圖形渲染的對(duì)象的參數(shù)信息。
舉例來(lái)說(shuō),終端設(shè)備可以利用Open GL ES來(lái)實(shí)現(xiàn)終端設(shè)備中的圖形渲染,因而解包后得到的終端設(shè)備調(diào)用的圖形渲染的函數(shù)為Open GL ES方法的函數(shù),而服務(wù)器中往往利用Open GL來(lái)進(jìn)行圖形渲染,因而服務(wù)器需根據(jù)Open GL ES方法的函數(shù)轉(zhuǎn)調(diào)Open GL的對(duì)應(yīng)函數(shù)來(lái)完成渲染。
作為一種可選的實(shí)施方式,當(dāng)服務(wù)器上運(yùn)行有模擬器時(shí),利用上述模擬器的翻譯插件根據(jù)上述函數(shù)信息轉(zhuǎn)調(diào)服務(wù)器中的對(duì)應(yīng)函數(shù)。
205、獲取服務(wù)器中的對(duì)應(yīng)函數(shù)的處理結(jié)果,并將上述處理結(jié)果返回給終端設(shè)備。
服務(wù)器完成圖形渲染之后,將進(jìn)行圖形渲染的處理結(jié)果打包并返回給終端設(shè)備,以供終端設(shè)備根據(jù)上述處理結(jié)果繪制圖形渲染的界面圖像。
由此可見(jiàn),利用圖2所描述的方法,終端設(shè)備可以將圖形渲染的計(jì)算轉(zhuǎn)移至服務(wù)器完成,從而降低進(jìn)行圖形渲染對(duì)終端設(shè)備CPU的運(yùn)行壓力;并且由于服務(wù)器的計(jì)算能力一般強(qiáng)于終端設(shè)備,因而可以獲得更好的圖形渲染效果;除此以外,服務(wù)器進(jìn)行圖形渲染計(jì)算較快,可以降低圖形渲染過(guò)程所需時(shí)間,避免終端設(shè)備的應(yīng)用在需要進(jìn)行圖形渲染時(shí)出現(xiàn)卡頓、丟幀的現(xiàn)象。
請(qǐng)參閱圖3,圖3是本發(fā)明實(shí)施例公開(kāi)的一種終端設(shè)備300的結(jié)構(gòu)示意圖。如圖3所示,該終端設(shè)備可以包括:
獲取單元301,用于獲取終端設(shè)備中應(yīng)用進(jìn)行圖形渲染的請(qǐng)求指令。
提取單元302,用于提取上述請(qǐng)求指令調(diào)用的函數(shù)的第一函數(shù)信息;其中,上述第一函數(shù)信息包含上述圖形渲染的對(duì)象的參數(shù)信息。
打包單元303,用于將上述第一函數(shù)信息打包成輸入輸出流。
傳輸單元304,用于將上述輸入輸出流傳輸至服務(wù)器。
接收單元305,用于接收服務(wù)器返回的處理結(jié)果。
繪制單元306,用于根據(jù)上述處理結(jié)果繪制上述應(yīng)用請(qǐng)求的圖形渲染界面圖像。
由此可見(jiàn),在圖3所描述的終端設(shè)備中,可以將圖形渲染的計(jì)算轉(zhuǎn)移至服務(wù)器完成,從而降低進(jìn)行圖形渲染對(duì)終端設(shè)備CPU的運(yùn)行壓力;并且由于服務(wù)器的計(jì)算能力一般強(qiáng)于終端設(shè)備,因而可以獲得更好的圖形渲染效果;除此以外,服務(wù)器進(jìn)行圖形渲染計(jì)算較快,可以降低圖形渲染過(guò)程所需時(shí)間,避免終端設(shè)備的應(yīng)用在需要進(jìn)行圖形渲染時(shí)出現(xiàn)卡頓、丟幀的現(xiàn)象。
請(qǐng)一并參閱圖4,圖4是本發(fā)明實(shí)施例公開(kāi)的另一種終端設(shè)備400的結(jié)構(gòu)示意圖。其中,圖4所示的終端設(shè)備是由圖3所示的終端設(shè)備進(jìn)行優(yōu)化得到的,與圖3所示的終端設(shè)備相比,圖4所示的終端設(shè)備還包括:
模擬單元307,用于通過(guò)模擬器模擬終端設(shè)備中圖形渲染的實(shí)現(xiàn);
上述提取單元302,具體用于利用上述模擬器修改終端設(shè)備中圖形渲染的實(shí)現(xiàn),以提取上述請(qǐng)求指令調(diào)用的函數(shù)的上述第一函數(shù)信息。
作為一種可選的實(shí)施方式,終端設(shè)備還包括:
確定單元308,用于確定上述請(qǐng)求指令調(diào)用的函數(shù)是否有返回值;
緩存單元309,用于當(dāng)上述請(qǐng)求指令調(diào)用的函數(shù)沒(méi)有返回值時(shí),將上述第一函數(shù)信息緩存;
上述打包單元303,具體用于當(dāng)上述請(qǐng)求指令調(diào)用的函數(shù)有返回值時(shí),將上述第一函數(shù)信息打包成上述輸入輸出流。
作為一種可選的實(shí)施方式,上述傳輸單元304,具體用于利用外設(shè)部件互連標(biāo)準(zhǔn)設(shè)備實(shí)現(xiàn)共享內(nèi)存以將上述輸入輸出流傳輸至服務(wù)器。
由此可見(jiàn),在圖4所描述的終端設(shè)備中,可以將圖形渲染的計(jì)算轉(zhuǎn)移至服務(wù)器完成,從而降低進(jìn)行圖形渲染對(duì)終端設(shè)備CPU的運(yùn)行壓力;并且由于服務(wù)器的計(jì)算能力一般強(qiáng)于終端設(shè)備,因而可以獲得更好的圖形渲染效果;除此以外,服務(wù)器進(jìn)行圖形渲染計(jì)算較快,可以降低圖形渲染過(guò)程所需時(shí)間,避免終端設(shè)備的應(yīng)用在需要進(jìn)行圖形渲染時(shí)出現(xiàn)卡頓、丟幀的現(xiàn)象。
請(qǐng)參閱圖5,圖5為本發(fā)明實(shí)施例公開(kāi)的一種終端設(shè)備500的實(shí)體裝置結(jié)構(gòu)示意圖。如圖5所示,為了便于說(shuō)明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分,具體技術(shù)細(xì)節(jié)未揭示的,請(qǐng)參照本發(fā)明實(shí)施例方法部分。該終端可以為包括手機(jī)、平板電腦、PDA(Personal Digital Assistant,個(gè)人數(shù)字助理)、POS(Point ofSales,銷售終端)、車載電腦等任意終端設(shè)備,以終端為手機(jī)為例:
圖5示出的是與本發(fā)明實(shí)施例提供的終端相關(guān)的手機(jī)的部分結(jié)構(gòu)的框圖。參考圖5,手機(jī)包括:射頻(Radio Frequency,RF)電路501、存儲(chǔ)器502、輸入單元503、顯示單元504、傳感器505、音頻電路506、無(wú)線保真(wireless fidelity,WiFi)模塊507、處理器508、以及電源509等部件。本領(lǐng)域技術(shù)人員可以理解,圖5中示出的手機(jī)結(jié)構(gòu)并不構(gòu)成對(duì)手機(jī)的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。
下面結(jié)合圖5對(duì)手機(jī)的各個(gè)構(gòu)成部件進(jìn)行具體的介紹:
RF電路501可用于收發(fā)信息或通話過(guò)程中,信號(hào)的接收和發(fā)送,特別地,將基站的下行信息接收后,給處理器508處理;另外,將設(shè)計(jì)上行的數(shù)據(jù)發(fā)送給基站。通常,RF電路501包括但不限于天線、至少一個(gè)放大器、收發(fā)信機(jī)、耦合器、低噪聲放大器(Low Noise Amplifier,LNA)、雙工器等。此外,RF電路501還可以通過(guò)無(wú)線通信與網(wǎng)絡(luò)和其他設(shè)備通信。上述無(wú)線通信可以使用任一通信標(biāo)準(zhǔn)或協(xié)議,包括但不限于全球移動(dòng)通訊系統(tǒng)(Global System of Mobile communication,GSM)、通用分組無(wú)線服務(wù)(General Packet Radio Service,GPRS)、碼分多址(Code Division Multiple Access,CDMA)、寬帶碼分多址(Wideband Code Division Multiple Access,WCDMA)、長(zhǎng)期演進(jìn)(Long Term Evolution,LTE)、電子郵件、短消息服務(wù)(Short Messaging Service,SMS)等。
存儲(chǔ)器502可用于存儲(chǔ)軟件程序以及模塊,處理器508通過(guò)運(yùn)行存儲(chǔ)在存儲(chǔ)器502的軟件程序以及模塊,從而執(zhí)行手機(jī)的各種功能應(yīng)用以及數(shù)據(jù)處理。存儲(chǔ)器502可主要包括存儲(chǔ)程序區(qū)和存儲(chǔ)數(shù)據(jù)區(qū),其中,存儲(chǔ)程序區(qū)可存儲(chǔ)操作系統(tǒng)、至少一個(gè)功能所需的應(yīng)用程序(比如聲音播放功能、圖像播放功能等)等;存儲(chǔ)數(shù)據(jù)區(qū)可存儲(chǔ)根據(jù)手機(jī)的使用所創(chuàng)建的數(shù)據(jù)(比如音頻數(shù)據(jù)、電話本等)等。此外,存儲(chǔ)器502可以包括高速隨機(jī)存取存儲(chǔ)器,還可以包括非易失性存儲(chǔ)器,例如至少一個(gè)磁盤(pán)存儲(chǔ)器件、閃存器件、或其他易失性固態(tài)存儲(chǔ)器件。
輸入單元503可用于接收輸入的數(shù)字或字符信息,以及產(chǎn)生與手機(jī)的用戶設(shè)置以及功能控制有關(guān)的鍵信號(hào)輸入。具體地,輸入單元503可包括觸控面板5031以及其他輸入設(shè)備5032。觸控面板5031,也稱為觸摸屏,可收集用戶在其上或附近的觸摸操作(比如用戶使用手指、觸筆等任何適合的物體或附件在觸控面板5031上或在觸控面板5031附近的操作),并根據(jù)預(yù)先設(shè)定的程式驅(qū)動(dòng)相應(yīng)的連接裝置??蛇x的,觸控面板5031可包括觸摸檢測(cè)裝置和觸摸控制器兩個(gè)部分。其中,觸摸檢測(cè)裝置檢測(cè)用戶的觸摸方位,并檢測(cè)觸摸操作帶來(lái)的信號(hào),將信號(hào)傳送給觸摸控制器;觸摸控制器從觸摸檢測(cè)裝置上接收觸摸信息,并將它轉(zhuǎn)換成觸點(diǎn)坐標(biāo),再送給處理器508,并能接收處理器508發(fā)來(lái)的命令并加以執(zhí)行。此外,可以采用電阻式、電容式、紅外線以及表面聲波等多種類型實(shí)現(xiàn)觸控面板5031。除了觸控面板5031,輸入單元503還可以包括其他輸入設(shè)備5032。具體地,其他輸入設(shè)備5032可以包括但不限于物理鍵盤(pán)、功能鍵(比如音量控制按鍵、開(kāi)關(guān)按鍵等)、軌跡球、鼠標(biāo)、操作桿等中的一種或多種。
顯示單元504可用于顯示由用戶輸入的信息或提供給用戶的信息以及手機(jī)的各種菜單。顯示單元504可包括顯示面板5041,可選的,可以采用液晶顯示器(Liquid Crystal Display,LCD)、有機(jī)發(fā)光二極管(Organic Light-Emitting Diode,OLED)等形式來(lái)配置顯示面板5041。進(jìn)一步的,觸控面板5031可覆蓋顯示面板5041,當(dāng)觸控面板5031檢測(cè)到在其上或附近的觸摸操作后,傳送給處理器508以確定觸摸事件的類型,隨后處理器508根據(jù)觸摸事件的類型在顯示面板5041上提供相應(yīng)的視覺(jué)輸出。雖然在圖5中,觸控面板5031與顯示面板5041是作為兩個(gè)獨(dú)立的部件來(lái)實(shí)現(xiàn)手機(jī)的輸入和輸入功能,但是在某些實(shí)施例中,可以將觸控面板5031與顯示面板5041集成而實(shí)現(xiàn)手機(jī)的輸入和輸出功能。
手機(jī)還可包括至少一種傳感器505,比如光傳感器、運(yùn)動(dòng)傳感器以及其他傳感器。具體地,光傳感器可包括環(huán)境光傳感器及接近傳感器,其中,環(huán)境光傳感器可根據(jù)環(huán)境光線的明暗來(lái)調(diào)節(jié)顯示面板5041的亮度,接近傳感器可在手機(jī)移動(dòng)到耳邊時(shí),關(guān)閉顯示面板5041和/或背光。作為運(yùn)動(dòng)傳感器的一種,加速計(jì)傳感器可檢測(cè)各個(gè)方向上(一般為三軸)加速度的大小,靜止時(shí)可檢測(cè)出重力的大小及方向,可用于識(shí)別手機(jī)姿態(tài)的應(yīng)用(比如橫豎屏切換、相關(guān)游戲、磁力計(jì)姿態(tài)校準(zhǔn))、振動(dòng)識(shí)別相關(guān)功能(比如計(jì)步器、敲擊)等;至于手機(jī)還可配置的陀螺儀、氣壓計(jì)、濕度計(jì)、溫度計(jì)、紅外線傳感器等其他傳感器,在此不再贅述。
音頻電路506、揚(yáng)聲器5061,傳聲器5062可提供用戶與手機(jī)之間的音頻接口。音頻電路506可將接收到的音頻數(shù)據(jù)轉(zhuǎn)換后的電信號(hào),傳輸?shù)綋P(yáng)聲器5061,由揚(yáng)聲器5061轉(zhuǎn)換為聲音信號(hào)輸出;另一方面,傳聲器5062將收集的聲音信號(hào)轉(zhuǎn)換為電信號(hào),由音頻電路506接收后轉(zhuǎn)換為音頻數(shù)據(jù),再將音頻數(shù)據(jù)輸出處理器508處理后,經(jīng)RF電路501以發(fā)送給比如另一手機(jī),或者將音頻數(shù)據(jù)輸出至存儲(chǔ)器502以便進(jìn)一步處理。
WiFi屬于短距離無(wú)線傳輸技術(shù),手機(jī)通過(guò)WiFi模塊507可以幫助用戶收發(fā)電子郵件、瀏覽網(wǎng)頁(yè)和訪問(wèn)流式媒體等,它為用戶提供了無(wú)線的寬帶互聯(lián)網(wǎng)訪問(wèn)。雖然圖5示出了WiFi模塊507,但是可以理解的是,其并不屬于手機(jī)的必須構(gòu)成,完全可以根據(jù)需要在不改變發(fā)明的本質(zhì)的范圍內(nèi)而省略。
處理器508是手機(jī)的控制中心,利用各種接口和線路連接整個(gè)手機(jī)的各個(gè)部分,通過(guò)運(yùn)行或執(zhí)行存儲(chǔ)在存儲(chǔ)器502內(nèi)的軟件程序和/或模塊,以及調(diào)用存儲(chǔ)在存儲(chǔ)器502內(nèi)的數(shù)據(jù),執(zhí)行手機(jī)的各種功能和處理數(shù)據(jù),從而對(duì)手機(jī)進(jìn)行整體監(jiān)控??蛇x的,處理器508可包括一個(gè)或多個(gè)處理單元;優(yōu)選的,處理器508可集成應(yīng)用處理器和調(diào)制解調(diào)處理器,其中,應(yīng)用處理器主要處理操作系統(tǒng)、用戶界面和應(yīng)用程序等,調(diào)制解調(diào)處理器主要處理無(wú)線通信??梢岳斫獾氖牵鲜稣{(diào)制解調(diào)處理器也可以不集成到處理器508中。
手機(jī)還包括給各個(gè)部件供電的電源509(比如電池),優(yōu)選的,電源可以通過(guò)電源管理系統(tǒng)與處理器508邏輯相連,從而通過(guò)電源管理系統(tǒng)實(shí)現(xiàn)管理充電、放電、以及功耗管理等功能。
盡管未示出,手機(jī)還可以包括攝像頭、藍(lán)牙模塊等,在此不再贅述。
前述實(shí)施例中,各步驟方法流程可以基于該終端設(shè)備的結(jié)構(gòu)實(shí)現(xiàn)。其中應(yīng)用層和操作系統(tǒng)內(nèi)核均可視為處理器508的抽象化結(jié)構(gòu)的組成部分。
在本發(fā)明實(shí)施例中,處理器508通過(guò)調(diào)用存儲(chǔ)于存儲(chǔ)器502中的程序代碼,用于執(zhí)行以下操作:
終端設(shè)備獲取終端設(shè)備中應(yīng)用進(jìn)行圖形渲染的請(qǐng)求指令;
提取上述請(qǐng)求指令調(diào)用的函數(shù)的第一函數(shù)信息;其中,上述第一函數(shù)信息包含上述圖形渲染的對(duì)象的參數(shù)信息;
將上述第一函數(shù)信息打包成輸入輸出流;
將上述輸入輸出流傳輸至服務(wù)器;
接收服務(wù)器返回的處理結(jié)果并根據(jù)上述處理結(jié)果繪制上述應(yīng)用請(qǐng)求的圖形渲染界面圖像。
由此可見(jiàn),在圖5所描述的終端設(shè)備中,可以將圖形渲染的計(jì)算轉(zhuǎn)移至服務(wù)器完成,從而降低進(jìn)行圖形渲染對(duì)終端設(shè)備CPU的運(yùn)行壓力;并且由于服務(wù)器的計(jì)算能力一般強(qiáng)于終端設(shè)備,因而可以獲得更好的圖形渲染效果;除此以外,服務(wù)器進(jìn)行圖形渲染計(jì)算較快,可以降低圖形渲染過(guò)程所需時(shí)間,避免終端設(shè)備的應(yīng)用在需要進(jìn)行圖形渲染時(shí)出現(xiàn)卡頓、丟幀的現(xiàn)象。
請(qǐng)參閱圖6,圖6是本發(fā)明實(shí)施例公開(kāi)的一種服務(wù)器600的結(jié)構(gòu)示意圖。如圖6所示,該服務(wù)器可以包括:
接收單元601,用于接收終端設(shè)備傳輸?shù)妮斎胼敵隽鳌?/p>
識(shí)別單元602,用于利用服務(wù)器中的模擬器識(shí)別上述輸入輸出流中是否有圖形渲染的函數(shù)調(diào)用。
上述識(shí)別單元602,具體用于通過(guò)上述模擬器的渲染插件識(shí)別上述輸入輸出流中是否有圖形渲染的函數(shù)調(diào)用。
解包單元603,用于當(dāng)上述輸入輸出流中有圖形渲染的函數(shù)調(diào)用時(shí),對(duì)上述輸入輸出流進(jìn)行解包以得到終端設(shè)備調(diào)用的圖形渲染的函數(shù)信息。
轉(zhuǎn)調(diào)單元604,用于根據(jù)上述函數(shù)信息轉(zhuǎn)調(diào)服務(wù)器中的對(duì)應(yīng)函數(shù);其中,上述函數(shù)信息包含終端設(shè)備圖形渲染的對(duì)象的參數(shù)信息。
上述轉(zhuǎn)調(diào)單元604,具體用于利用上述模擬器的翻譯插件根據(jù)上述函數(shù)信息轉(zhuǎn)調(diào)服務(wù)器中的對(duì)應(yīng)函數(shù)。
獲取單元605,用于獲取服務(wù)器中的對(duì)應(yīng)函數(shù)的處理結(jié)果。
返回單元606,用于將上述處理結(jié)果返回給終端設(shè)備。
由此可見(jiàn),利用圖6所描述的服務(wù)器,可以將終端設(shè)備中圖形渲染的計(jì)算轉(zhuǎn)移至服務(wù)器完成,從而降低進(jìn)行圖形渲染對(duì)終端設(shè)備CPU的運(yùn)行壓力;并且由于服務(wù)器的計(jì)算能力一般強(qiáng)于終端設(shè)備,因而可以獲得更好的圖形渲染效果;除此以外,服務(wù)器進(jìn)行圖形渲染計(jì)算較快,可以降低圖形渲染過(guò)程所需時(shí)間,避免終端設(shè)備的應(yīng)用在需要進(jìn)行圖形渲染時(shí)出現(xiàn)卡頓、丟幀的現(xiàn)象。
請(qǐng)參閱圖7,圖7為本發(fā)明實(shí)施例公開(kāi)的一種終端設(shè)備700的結(jié)構(gòu)示意圖。如圖7所示,終端設(shè)備700包括:處理器701以及存儲(chǔ)器702;其中存儲(chǔ)器702可以用于處理器701執(zhí)行數(shù)據(jù)處理所需要的緩存,還可以用于提供處理器701執(zhí)行數(shù)據(jù)處理調(diào)用的數(shù)據(jù)以及獲得的結(jié)果數(shù)據(jù)的存儲(chǔ)空間。
在本發(fā)明實(shí)施例中,處理器701通過(guò)調(diào)用存儲(chǔ)于存儲(chǔ)器702中的程序代碼,用于執(zhí)行以下操作:
服務(wù)器接收終端設(shè)備傳輸?shù)妮斎胼敵隽鳎?/p>
服務(wù)器中的模擬器識(shí)別上述輸入輸出流中是否有圖形渲染的函數(shù)調(diào)用;
若是,則對(duì)上述輸入輸出流進(jìn)行解包以得到終端設(shè)備調(diào)用的圖形渲染的函數(shù)信息;
根據(jù)上述函數(shù)信息轉(zhuǎn)調(diào)服務(wù)器中的對(duì)應(yīng)函數(shù);其中,上述函數(shù)信息包含終端設(shè)備圖形渲染的對(duì)象的參數(shù)信息;
獲取服務(wù)器中的對(duì)應(yīng)函數(shù)的處理結(jié)果,并將上述處理結(jié)果返回給終端設(shè)備。
由此可見(jiàn),利用圖7所描述的服務(wù)器,可以將終端設(shè)備圖形渲染的計(jì)算轉(zhuǎn)移至服務(wù)器完成,從而降低進(jìn)行圖形渲染對(duì)終端設(shè)備CPU的運(yùn)行壓力;并且由于服務(wù)器的計(jì)算能力一般強(qiáng)于終端設(shè)備,因而可以獲得更好的圖形渲染效果;除此以外,服務(wù)器進(jìn)行圖形渲染計(jì)算較快,可以降低圖形渲染過(guò)程所需時(shí)間,避免終端設(shè)備的應(yīng)用在需要進(jìn)行圖形渲染時(shí)出現(xiàn)卡頓、丟幀的現(xiàn)象。
值得注意的是,終端設(shè)備和服務(wù)器實(shí)施例中,所包括的各個(gè)單元只是按照功能邏輯進(jìn)行劃分的,但并不局限于上述的劃分,只要能夠?qū)崿F(xiàn)相應(yīng)的功能即可;另外,各功能單元的具體名稱也只是為了便于相互區(qū)分,并不用于限制本發(fā)明的保護(hù)范圍。
另外,本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述各方法實(shí)施例中的全部或部分步驟是可以通過(guò)程序來(lái)指令相關(guān)的硬件完成,相應(yīng)的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤(pán)或光盤(pán)等。
以上僅為本發(fā)明較佳的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明實(shí)施例揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。