欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

安卓應用中支持Unity的數(shù)據(jù)處理方法及裝置與流程

文檔序號:11519328閱讀:362來源:國知局
安卓應用中支持Unity的數(shù)據(jù)處理方法及裝置與流程

本申請涉及視頻直播技術領域,尤其涉及一種安卓(android)應用中支持unity的數(shù)據(jù)處理方法及裝置。



背景技術:

隨著互聯(lián)網(wǎng)技術的發(fā)展,基于互聯(lián)網(wǎng)的直播技術越來越廣泛。用戶界面(userinterface,ui)是開發(fā)直播應用的重要環(huán)節(jié),好的ui可以提高直播效果,增進用戶與主播之間的互動性,提升直播房間的人氣,增加直播應用的用戶流量。

在現(xiàn)有技術的基礎上,如何進一步開發(fā)更加豐富多彩、支持更酷更炫動畫效果的ui是開發(fā)直播應用急需解決的問題。



技術實現(xiàn)要素:

面對直播應用開發(fā)過程中急需解決的問題,本申請發(fā)明人經(jīng)過反復思考和研究提出一種解決思路,即在直播應用中融合unity,利用unity實現(xiàn)直播應用中的ui。其中,unity是一種跨平臺可視化的游戲引擎,主要用于開發(fā)游戲。

直播應用除了包括ui,還包括與ui互訪的底層業(yè)務邏輯。在一種應用場景中,底層業(yè)務邏輯基于android實現(xiàn)?;诖耍谥辈弥腥诤蟯nity,實際上是unity與android之間的融合,這就需要解決基于android實現(xiàn)的底層業(yè)務邏輯與基于unity實現(xiàn)的ui之間互訪的問題。

針對上述技術問題,本申請發(fā)明人想到將unity開發(fā)的工程封裝為android模塊,即aar模塊,從而解決基于android實現(xiàn)的底層業(yè)務邏輯與基于unity實現(xiàn)的ui之間互訪的問題。

其中,aar模塊內(nèi)部如何進行數(shù)據(jù)處理,成為另一問題。對此,本申請實施例提供一種android應用中支持unity的數(shù)據(jù)處理方法,該方法適用于所述android應用中基于unity封裝成的aar模塊,所述aar模塊包括android層和unity層;所述方法包括:

所述android層按照預設數(shù)據(jù)格式對來自所述aar模塊外部的消息進行組裝,以形成字符串;

所述android層通過所述android層內(nèi)部面向所述unity層的數(shù)據(jù)傳輸函數(shù)將所述字符串傳入所述unity層;

所述unity層通過所述unity層內(nèi)部面向所述android層的數(shù)據(jù)接收函數(shù)接收所述字符串;

所述unity層按照所述預設數(shù)據(jù)格式對所述字符串進行解析,以獲得所述字符串包含的命令號和數(shù)據(jù)內(nèi)容;

所述unity層根據(jù)所述命令號所標識的處理方式,對所述數(shù)據(jù)內(nèi)容進行相應處理。

在一可選實施方式中,所述android應用為直播應用;所述aar模塊用于構(gòu)建所述直播應用的直播間界面。

在一可選實施方式中,所述android層按照預設數(shù)據(jù)格式對來自所述aar模塊外部的消息進行組裝,以形成字符串之前,還包括:

所述android層監(jiān)聽所述直播間界面上的事件;

當監(jiān)聽到指定事件時,所述android層從所述直播應用的服務端和/或所述直播應用的主程序,獲取所述指定事件關聯(lián)的消息。

在一可選實施方式中,所述字符串包含的命令號為指示開啟彈幕的命令號;所述字符串包含的數(shù)據(jù)內(nèi)容為彈幕消息;或者

所述字符串包含的命令號為指示贈送禮物的命令號;所述字符串包含的數(shù)據(jù)內(nèi)容為用戶贈送給主播的虛擬禮物以及展示虛擬禮物的動效方式;或者

所述字符串包含的命令號為指示用戶升級的命令號;所述字符串包含的數(shù)據(jù)內(nèi)容為升級后的用戶等級信息;或者

所述字符串包含的命令號為指示主播升級的命令號;所述字符串包含的數(shù)據(jù)內(nèi)容為升級后的主播等級信息;或者

所述字符串包含的命令號為指示直播間封禁的命令號;所述字符串包含的數(shù)據(jù)內(nèi)容為關閉直播間的指示信息;或者

所述字符串包含的命令號為指示變更在線人數(shù)的命令號;所述字符串包含的數(shù)據(jù)內(nèi)容為新的在線人數(shù)。

在一可選實施方式中,所述unity層根據(jù)所述命令號所標識的處理方式,對所述數(shù)據(jù)內(nèi)容進行相應處理,包括以下至少一種:

若所述命令號指示開啟彈幕,則在所述直播間界面上展示所述彈幕消息;

若所述命令號指示贈送禮物,則在所述直播間界面上,以所述動效方式展示所述用戶贈送給主播的虛擬禮物;

若所述命令號指示用戶升級,則將所述直播間界面上顯示的用戶等級信息變更為所述升級后的用戶等級信息;

若所述命令號指示主播升級,則將所述直播間界面上顯示的主播等級信息變更為所述升級后的主播等級信息;

若所述命令號指示直播間封禁,則根據(jù)所述關閉直播間的指示信息,關閉所述直播間界面;

若所述命令號指示變更在線人數(shù),則將所述直播間界面上顯示的在線人數(shù)變更為所述新的在線人數(shù)。

在一可選實施方式中,所述方法還包括:

在支持安卓的開發(fā)環(huán)境中,創(chuàng)建一模塊類型的android工程;

將unity工程中的資源文件全部復制到所述android工程中;

修改所述android工程中啟動activity的基類為unityplayeractivity;

編譯所述android工程,以輸出繼承所述unity工程全部特性的所述aar模塊。

相應地,本申請實施例還提供一種android應用中支持unity的數(shù)據(jù)處理裝置,所述數(shù)據(jù)處理裝置為所述android應用中基于unity封裝成的aar模塊,所述aar模塊包括android子模塊和unity子模塊;

所述android子模塊包括:

組裝單元,用于按照預設數(shù)據(jù)格式對來自所述aar模塊外部的消息進行組裝,以形成字符串;

傳輸單元,用于通過所述android子模塊內(nèi)部面向所述unity子模塊的數(shù)據(jù)傳輸函數(shù)將所述字符串傳入所述unity子模塊;

所述unity子模塊包括:

接收單元,用于通過所述unity子模塊內(nèi)部面向所述android子模塊的數(shù)據(jù)接收函數(shù)接收所述字符串;

解析單元,用于按照所述預設數(shù)據(jù)格式對所述字符串進行解析,以獲得所述字符串包含的命令號和數(shù)據(jù)內(nèi)容;

處理單元,用于根據(jù)所述命令號所標識的處理方式,對所述數(shù)據(jù)內(nèi)容進行相應處理。

在一可選實施方式中,所述android應用為直播應用;所述aar模塊用于構(gòu)建所述直播應用的直播間界面。

在一可選實施方式中,所述android子模塊還包括:

監(jiān)聽單元,用于監(jiān)聽所述直播間界面上的事件;

獲取單元,用于在所述監(jiān)聽單元監(jiān)聽到指定事件時,從所述直播應用的服務端和/或所述直播應用的主程序,獲取所述指定事件關聯(lián)的消息。

在一可選實施方式中,所述字符串包含的命令號為指示開啟彈幕的命令號;所述字符串包含的數(shù)據(jù)內(nèi)容為彈幕消息;所述處理單元具體用于:在所述直播間界面上展示所述彈幕消息;或者

所述字符串包含的命令號為指示贈送禮物的命令號;所述字符串包含的數(shù)據(jù)內(nèi)容為用戶贈送給主播的虛擬禮物以及展示虛擬禮物的動效方式;所述處理單元具體用于:在所述直播間界面上,以所述動效方式展示所述用戶贈送給主播的虛擬禮物;或者

所述字符串包含的命令號為指示用戶升級的命令號;所述字符串包含的數(shù)據(jù)內(nèi)容為升級后的用戶等級信息;所述處理單元具體用于:將所述直播間界面上顯示的用戶等級信息變更為所述升級后的用戶等級信息;或者

所述字符串包含的命令號為指示主播升級的命令號;所述字符串包含的數(shù)據(jù)內(nèi)容為升級后的主播等級信息;所述處理單元具體用于:將所述直播間界面上顯示的主播等級信息變更為所述升級后的主播等級信息;或者

所述字符串包含的命令號為指示直播間封禁的命令號;所述字符串包含的數(shù)據(jù)內(nèi)容為關閉直播間的指示信息;所述處理單元具體用于:根據(jù)所述關閉直播間的指示信息,關閉所述直播間界面;或者

所述字符串包含的命令號為指示變更在線人數(shù)的命令號;所述字符串包含的數(shù)據(jù)內(nèi)容為新的在線人數(shù);所述處理單元具體用于:將所述直播間界面上顯示的在線人數(shù)變更為所述新的在線人數(shù)。

在本申請實施例中,將unity實現(xiàn)的代碼封裝成aar模塊,并提供了aar模塊內(nèi)部的數(shù)據(jù)處理方式,為unity與android的結(jié)合提供了條件,使得可以利用unity開發(fā)android應用的界面,為android應用提供豐富多彩的界面,提高android應用的界面的友好程度。

附圖說明

此處所說明的附圖用來提供對本申請的進一步理解,構(gòu)成本申請的一部分,本申請的示意性實施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當限定。在附圖中:

圖1為本申請一實施例提供的android應用中支持unity的數(shù)據(jù)處理方法的流程示意圖;

圖2為本申請另一實施例提供的android應用中支持unity的數(shù)據(jù)處理方法的流程示意圖;

圖3為本申請又一實施例提供的android應用中支持unity的數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖。

具體實施方式

為使本申請的目的、技術方案和優(yōu)點更加清楚,下面將結(jié)合本申請具體實施例及相應的附圖對本申請技術方案進行清楚、完整地描述。顯然,所描述的實施例僅是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├?,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護的范圍。

為了在基于android開發(fā)的應用(簡稱為android應用)中,提供更加豐富多彩、支持更酷更炫動畫效果的界面,本申請發(fā)明人想到利用unity開發(fā)android應用的界面。unity是一種跨平臺可視化的游戲引擎,能夠開發(fā)出豐富多彩的ui,還可以開發(fā)出2d或3d的ui。因此,利用unity開發(fā)android應用的界面,可以解決android應用面臨的界面問題。

android應用除了包括界面層,還包括與界面層互訪的底層業(yè)務邏輯。底層業(yè)務邏輯基于android實現(xiàn)?;诖?,利用unity開發(fā)android應用的界面,需要解決基于android實現(xiàn)的底層業(yè)務邏輯與基于unity實現(xiàn)的界面層之間互訪的問題。

針對上述技術問題,本申請發(fā)明人想到將unity工程封裝成android模塊,即aar模塊,從而將基于android實現(xiàn)的底層業(yè)務邏輯與基于unity實現(xiàn)的界面層之間的互訪,轉(zhuǎn)換成android模塊之間的互訪。

在基于unity封裝成的aar模塊內(nèi)部,如何進行數(shù)據(jù)處理是必須解決的問題。對此,本申請發(fā)明人提供一種解決方案,主要原理是:將aar模塊劃分為android層和unity層,在android層提供面向unity層的數(shù)據(jù)傳輸函數(shù),相應地,在unity層提供面向android層的數(shù)據(jù)接收函數(shù);android層負責數(shù)據(jù)格式的轉(zhuǎn)換,并通過面向unity層的數(shù)據(jù)傳輸函數(shù)將形成的字符串傳入unity層;unity層通過unity層內(nèi)部面向android層的數(shù)據(jù)接收函數(shù)接收字符串,然后對字符串進行解析并根據(jù)解析結(jié)果進行相應處理,從而解決在基于unity封裝成的aar模塊內(nèi)部如何進行數(shù)據(jù)處理的問題。

以下結(jié)合附圖,詳細說明本申請各實施例提供的技術方案。

圖1為本申請一實施例提供的android應用中支持unity的數(shù)據(jù)處理方法的流程示意圖。該方法適用于android應用中基于unity封裝成的aar模塊,所述aar模塊包括android層和unity層。如圖1所示,所述方法包括:

101、aar模塊中的android層按照預設數(shù)據(jù)格式對來自所述aar模塊外部的消息進行組裝,以形成字符串。

102、android層通過android層內(nèi)部面向aar模塊中的unity層的數(shù)據(jù)傳輸函數(shù)將所述字符串傳入unity層。

103、unity層通過unity層內(nèi)部面向android層的數(shù)據(jù)接收函數(shù)接收所述字符串。

104、unity層按照預設數(shù)據(jù)格式對所述字符串進行解析,以獲得所述字符串包含的命令號和數(shù)據(jù)內(nèi)容。

105、unity層根據(jù)所述命令號所標識的處理方式,對所述數(shù)據(jù)內(nèi)容進行相應處理。

在本實施例中,不對預設數(shù)據(jù)格式做限定,可以根據(jù)具體應用場景而定??蛇x地,所述預設數(shù)據(jù)格式可以是json(javascriptobjectnotation)格式?;诖?,android層需按照json數(shù)據(jù)格式對來自aar模塊外部的消息進行組裝,以形成json格式的字符串。

其中,所述來自aar模塊外部的消息是指android應用中aar模塊接收到的消息。根據(jù)android應用的不同,aar模塊接收到的消息也會有所不同。

在本實施例中,android層面向unity層提供一數(shù)據(jù)傳輸函數(shù);相應地,unity層面向android層提供一數(shù)據(jù)接收函數(shù),這是android層與unity層之間實現(xiàn)信息交互的基礎?;诖?,android層在形成字符串之后,可以通過android層內(nèi)部面向unity層的數(shù)據(jù)傳輸函數(shù)將所述字符串傳入unity層。對unity層來說,可以通過unity層內(nèi)部面向android層的數(shù)據(jù)接收函數(shù)接收所述字符串。

在aar模塊中,主要操作由unity層實現(xiàn)。為了執(zhí)行有關操作,unity層需要按照預設數(shù)據(jù)格式對字符串進行解析,從而獲得字符串中的命令號和數(shù)據(jù)內(nèi)容。其中,命令號用于指示動作類型或處理方式;數(shù)據(jù)內(nèi)容用于指示動作的方式和/或?qū)ο蟆?/p>

基于上述,unity層根據(jù)所述命令號所標識的處理方式,對數(shù)據(jù)內(nèi)容進行相應處理。一般來說,unity層主要用于實現(xiàn)界面功能,因此,unity層對數(shù)據(jù)內(nèi)容進行相應處理主要是指界面層的處理。

在本實施例中,將unity實現(xiàn)的代碼封裝成aar模塊,并提供了aar模塊內(nèi)部的數(shù)據(jù)處理方式,為unity與android的結(jié)合提供了條件,使得可以利用unity開發(fā)android應用的界面,為android應用提供豐富多彩的界面,提高android應用的界面的友好程度。

在一種具體應用場景中,android應用為直播應用;相應地,aar模塊用于構(gòu)建直播應用的直播間界面。更為具體地,是由aar模塊中的unity層實現(xiàn)直播應用的直播間界面。

在上述具體應用場景中,aar模塊內(nèi)部的數(shù)據(jù)處理流程,如圖2所示,包括以下步驟:

201、aar模塊中的android層監(jiān)聽直播應用中直播間界面上的事件。

202、當監(jiān)聽到指定事件時,android層從直播應用的服務端和/或直播應用的主程序,獲取所述指定事件關聯(lián)的消息。

203、android層按照預設數(shù)據(jù)格式對所述指定事件關聯(lián)的消息進行組裝,以形成字符串。

204、android層通過android層內(nèi)部面向aar模塊中的unity層的數(shù)據(jù)傳輸函數(shù)將所述字符串傳入unity層。

205、unity層通過unity層內(nèi)部面向android層的數(shù)據(jù)接收函數(shù)接收所述字符串。

206、unity層按照預設數(shù)據(jù)格式對所述字符串進行解析,以獲得所述字符串包含的命令號和數(shù)據(jù)內(nèi)容。

207、unity層根據(jù)所述命令號所標識的處理方式,對所述數(shù)據(jù)內(nèi)容進行相應處理。

在本實施例中,直播應用的直播間界面上經(jīng)常發(fā)生各種事件,例如用戶向主播贈送禮物的事件,用戶進入直播間的事件,主播升級的事件,用戶發(fā)表評論的事件,用戶登錄直播間的事件等等。直播間界面上發(fā)生的事件一般是與界面有關的,需要aar模塊來處理。當然,可能有些例外事件不需要aar模塊處理?;诖?,將直播間界面上與界面相關,需要aar模塊處理的事件定義為指定事件。例如,指定事件可以包括但不限于:開啟彈幕的事件,贈送禮物的事件,用戶升級的事件,主播升級的事件,直播間封禁的事件,變更在線人數(shù)的事件等。

基于此,android層負責監(jiān)聽直播應用中直播間界面上的事件。當在直播間界面上監(jiān)聽到指定事件時,從直播應用的服務端和/或直播應用的主程序,獲取所述指定事件關聯(lián)的消息。其中指定事件關聯(lián)的消息是unity層進行相應處理的基礎。根據(jù)指定事件的不同,指定事件關聯(lián)的消息也會有所不同。根據(jù)指定事件關聯(lián)的消息的不同,android層獲取所述消息的方式也會有所不同。有些指定事件關聯(lián)的消息存儲于直播客戶端本地,因此可以通過直播應用的主程序來獲取。有些指定事件關聯(lián)的消息存儲于服務端,因此可以從直播應用的服務端來獲取。值得說明的是,本申請各處的直播應用主要是指直播應用的客戶端。

例如,彈幕消息一般存儲于服務端,當需要在直播間界面上顯示彈幕消息時,可以與服務端建立彈幕獲取長鏈接,基于該彈幕獲取長鏈接從服務端獲取彈幕消息?;诖?,若指定事件為開啟彈幕事件,則因此android需要從服務端獲取彈幕消息,作為數(shù)據(jù)內(nèi)容。

例如,在線人數(shù)一般由服務端定時向客戶端推送,當服務端向客戶端推送新的在線人數(shù)時,意味著需要更新在線人數(shù),此時,服務端已經(jīng)將新的在線人數(shù)推送至客戶端的主程序中?;诖耍糁付ㄊ录樽兏诰€人數(shù)的事件,則android層可以從客戶端的主程序中獲取新的在線人數(shù)。

又例如,主播等級信息一般包括主播的等級數(shù)和主播等級圖標等,考慮主播等級圖標更新頻率較低,故可以預先將所有主播等級圖標下載至客戶端本地,以節(jié)約網(wǎng)絡流量,但主播等級數(shù)可由服務端實時推送。基于此,若指定事件為主播升級事件,則需要更新主播的等級數(shù)以及主播等級圖標,android層一方面需要從客戶端的主程序中獲取主播等級圖標,另一方面需要從服務端獲取主播等級數(shù)。

當android層獲取到指定事件關聯(lián)的消息之后,可以按照預設數(shù)據(jù)格式,例如json數(shù)據(jù)格式對指定事件關聯(lián)的消息進行組裝,以形成json格式的字符串;并通過android層內(nèi)部面向unity層的數(shù)據(jù)傳輸函數(shù)將所述字符串傳入unity層。

可選地,android層的一種代碼實現(xiàn)如下:

在上述代碼中,unityplayer.unitysendmessage函數(shù)之前的代碼部分,主要實現(xiàn)字符串的封裝;unityplayer.unitysendmessage函數(shù)是面向unity層的數(shù)據(jù)傳輸函數(shù)。該函數(shù)包含三個參數(shù),分別為application、onadaptercallmessage以及strjson。其中,strjson是上述代碼形成的字符串;onadaptercallmessage是unity層中面向android層的數(shù)據(jù)接收函數(shù);application是unity層中負責對數(shù)據(jù)內(nèi)容進行處理的函數(shù)。unityplayer.unitysendmessage函數(shù)的含義是將strjson傳入unity層中的onadaptercallmessage函數(shù),并由unity層中的application函數(shù)進行相應處理。

對unity層來說,可以通過unity層內(nèi)部面向android層的數(shù)據(jù)接收函數(shù)接收所述字符串;然后,按照預設數(shù)據(jù)格式對字符串進行解析,從而獲得字符串中的命令號和數(shù)據(jù)內(nèi)容;進一步根據(jù)所述命令號所標識的處理方式,對數(shù)據(jù)內(nèi)容進行相應處理。

相應地,unity層的一種代碼實現(xiàn)如下:

在直播應用中,根據(jù)指定事件的不同,命令號以及數(shù)據(jù)內(nèi)容都會有所不同。下面舉例說明:

在一種情況下,指定事件為開啟彈幕事件,android層可以由開啟彈幕事件關聯(lián)的消息組裝成一字符串,相應地,unity層可以從該字符串中解析出指示開啟彈幕的命令號,并解析出彈幕消息作為數(shù)據(jù)內(nèi)容?;诖?,unity層可以根據(jù)指示開啟彈幕的命令號,在直播間界面上展示彈幕消息。

在另一種情況下,指定事件為贈送禮物的事件,android層可以由贈送禮物的事件關聯(lián)的消息組裝成一字符串,相應地,unity層可以從該字符串中解析出指示贈送禮物的命令號,并解析出用戶贈送給主播的虛擬禮物以及虛擬禮物的動效方式作為數(shù)據(jù)內(nèi)容?;诖?,unity層可以根據(jù)指示贈送禮物的命令號,在直播間界面上,以所述動效方式展示所述用戶贈送給主播的虛擬禮物。

在又一種情況下,指定事件為用戶升級事件,android層可以由用戶升級事件關聯(lián)的消息組裝成一字符串,相應地,unity層可以從該字符串中解析出指示用戶升級的命令號,并解析出升級后的用戶等級消息作為數(shù)據(jù)內(nèi)容?;诖?,unity層可以根據(jù)指示用戶升級的命令號,將直播間界面上顯示的用戶等級信息變更為所述升級后的用戶等級信息。其中,升級后的用戶升級信息可以包括但不限于:升級后的用戶等級數(shù)、升級后的用戶等級圖標等。

在又一種情況下,指定事件為主播升級事件,android層可以由主播升級事件關聯(lián)的消息組裝成一字符串,相應地,unity層可以從該字符串中解析出指示主播升級的命令號,并解析出升級后的主播等級消息作為數(shù)據(jù)內(nèi)容?;诖耍瑄nity層可以根據(jù)指示主播升級的命令號,將直播間界面上顯示的主播等級信息變更為所述升級后的主播等級信息。其中,升級后的主播升級信息可以包括但不限于:升級后的主播等級數(shù)、升級后的主播等級圖標等。

在又一種情況下,指定事件為直播間封禁事件,android層可以由直播間封禁事件關聯(lián)的消息組裝成一字符串,相應地,unity層可以從該字符串中解析出指示直播間封禁的命令號,并解析出關閉直播間的指示消息作為數(shù)據(jù)內(nèi)容?;诖?,unity層可以根據(jù)指示直播間封禁的命令號,根據(jù)所述關閉直播間的指示信息,關閉所述直播間界面。

在又一種情況下,指定事件為變更在線人數(shù)事件,android層可以由變更在線人數(shù)事件關聯(lián)的消息組裝成一字符串,相應地,unity層可以從該字符串中解析出指示變更在線人數(shù)的命令號,并解析出新的在線人數(shù)作為數(shù)據(jù)內(nèi)容。基于此,unity層可以根據(jù)指示變更在線人數(shù)的命令號,將直播間界面上顯示的在線人數(shù)變更為所述新的在線人數(shù)。

由此可見,在直播應用中,基于unity開發(fā)直播應用的界面,并將unity實現(xiàn)的界面代碼封裝成aar模塊,并提供了aar模塊內(nèi)部的數(shù)據(jù)處理方式,為unity與android的結(jié)合提供了條件,充分利用unity開發(fā)的優(yōu)勢,可以為直播應用提供豐富多彩的界面,提高直播應用的界面的友好程度。

在上述實施例中,需要預先基于unity封裝為aar模塊。其中,一種封裝方式包括:在支持android的開發(fā)環(huán)境中,創(chuàng)建一模塊類型的android工程;將unity工程中的資源文件全部復制到所述android工程中;修改所述android工程中啟動activity的基類為unityplayeractivity;編譯所述android工程,以輸出繼承所述unity工程全部特性的所述aar模塊。

其中,根據(jù)應用場景的不同,支持android的開發(fā)環(huán)境也會有所不同。其中,可以自行搭建支持android的開發(fā)環(huán)境。自行搭建支持android的開發(fā)環(huán)境主要包括:安裝java語言開發(fā)工具包(javadevelopmentkit,jdk);安裝eclipse;安裝adt等操作。eclipse是一個開放源代碼的、基于java的可擴展開發(fā)平臺;adt是eclipse平臺下用來開發(fā)android應用程序的插件?;蛘撸部梢圆捎矛F(xiàn)有的支持android的開發(fā)環(huán)境,例如,androidstudio。androidstudio是google開發(fā)的一款面向android開發(fā)者的ide,支持windows、mac、linux等操作系統(tǒng),是基于流行的java語言集成開發(fā)環(huán)境intellij搭建而成。

上述在支持android的開發(fā)環(huán)境中所創(chuàng)建的android工程實際上是一個工程框架,并未包含任何應用相關的內(nèi)容或邏輯,是為了封裝unity工程而創(chuàng)建。其中,應用相關的內(nèi)容或邏輯均在unity工程中實現(xiàn)。可選地,在一應用場景中,由unity工程實現(xiàn)的應用相關的內(nèi)容或邏輯主要為應用中與ui相關的內(nèi)容或邏輯,例如包括界面的布局樣式、交互方式以及輸入輸出方式等。

其中,將unity工程中的資源文件全部復制到所創(chuàng)建的android工程中,這是實現(xiàn)將unity工程封裝成aar模塊的主要步驟。

可選地,unity工程主要實現(xiàn)應用中與ui相關的內(nèi)容或邏輯,例如包括界面的布局樣式、交互方式、動畫渲染以及輸入輸出方式等。根據(jù)具體應用需求的不同,unity工程所實現(xiàn)的ui也會有所不同。相應地,unity工程中的資源文件主要包括與ui相關的資源,例如圖片資源、以及樣式資源等。以直播應用為例,unity工程中的資源文件主要包括直播間圖片、主播等級、動畫、頻道頁或直播間頁面的樣式資源等。

可選地,在unity工程和android工程中,可以采用資源文件夾(例如assets文件夾)管理各自的資源文件?;诖?,可以從unity工程的資源文件夾中拷貝unity工程中的資源文件,并全部復制到android工程的資源文件夾中。為便于區(qū)分,可將unity工程的資源文件夾稱之為a_assets,將android工程的資源文件夾稱之為b_assets。

進一步可選地,若在創(chuàng)建android工程時,并未建立其資源文件夾,則可以先在android工程的源代碼的主函數(shù)目錄下,新建一資源文件夾;然后,將unity工程中的資源文件全部復制到新建的資源文件夾中。

unityplayeractivity是unity下的一個activity,是unity(例如unity3d)的加載入口。通過unityplayeractivity可以加載unity工程實現(xiàn)的一切功能,例如模型、動畫渲染等。

在將android工程中啟動activity的基類修改為unityplayeractivity之后,android工程將會從unityplayeractivity開始,通過unityplayeractivity可以加載unity工程實現(xiàn)的一切功能,進而得到一個繼承了unity工程所有特性的android工程。

可選地,可以打開android工程的編輯界面;通過該編輯界面,修改所述啟動activity的基類為unityplayeractivity。

需要說明的是,上述實施例所提供方法的各步驟的執(zhí)行主體均可以是同一設備,或者,該方法也由不同設備作為執(zhí)行主體。比如,步驟101至步驟104的執(zhí)行主體可以為設備a;又比如,步驟101-103的執(zhí)行主體可以為設備a,步驟104的執(zhí)行主體可以為設備b;等等。

圖3為本申請又一實施例提供的android應用中支持unity的數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖。所述數(shù)據(jù)處理裝置為所述android應用中基于unity封裝成的aar模塊。如圖3所示,所述aar模塊或裝置包括:android子模塊30和unity子模塊40。

進一步,android子模塊30的一種實現(xiàn)結(jié)構(gòu)包括:組裝單元31和傳輸單元32。相應地,unity子模塊40的一種實現(xiàn)結(jié)構(gòu)包括:接收單元41、解析單元42和處理單元43。

其中,組裝單元31,用于按照預設數(shù)據(jù)格式對來自所述aar模塊外部的消息進行組裝,以形成字符串。

傳輸單元32,用于通過android子模塊30內(nèi)部面向unity子模塊40的數(shù)據(jù)傳輸函數(shù)將所述字符串傳入unity子模塊40。

接收單元41,用于通過unity子模塊40內(nèi)部面向android子模塊30的數(shù)據(jù)接收函數(shù)接收所述字符串。

解析單元42,用于按照預設數(shù)據(jù)格式對所述字符串進行解析,以獲得所述字符串包含的命令號和數(shù)據(jù)內(nèi)容。

處理單元43,用于根據(jù)所述命令號所標識的處理方式,對所述數(shù)據(jù)內(nèi)容進行相應處理。

在一可選實施方式中,所述android應用為直播應用;所述aar模塊或裝置用于構(gòu)建所述直播應用的直播間界面。

在一可選實施方式中,android子模塊還包括:監(jiān)聽單元和獲取單元。

監(jiān)聽單元,用于監(jiān)聽所述直播間界面上的事件。相應地,獲取單元,用于在所述監(jiān)聽單元監(jiān)聽到指定事件時,從所述直播應用的服務端和/或所述直播應用的主程序,獲取所述指定事件關聯(lián)的消息。獲取單元為組裝單元31提供數(shù)據(jù)基礎。

在一可選實施方式中,上述字符串包含的命令號為指示開啟彈幕的命令號;所述字符串包含的數(shù)據(jù)內(nèi)容為彈幕消息?;诖耍幚韱卧?3具體用于:在所述直播間界面上展示所述彈幕消息。

在一可選實施方式中,上述字符串包含的命令號為指示贈送禮物的命令號;所述字符串包含的數(shù)據(jù)內(nèi)容為用戶贈送給主播的虛擬禮物以及展示虛擬禮物的動效方式?;诖?,處理單元43具體用于:在所述直播間界面上,以所述動效方式展示所述用戶贈送給主播的虛擬禮物。

在一可選實施方式中,上述字符串包含的命令號為指示用戶升級的命令號;所述字符串包含的數(shù)據(jù)內(nèi)容為升級后的用戶等級信息。處理單元43具體用于:將所述直播間界面上顯示的用戶等級信息變更為所述升級后的用戶等級信息。

在一可選實施方式中,上述字符串包含的命令號為指示主播升級的命令號;所述字符串包含的數(shù)據(jù)內(nèi)容為升級后的主播等級信息?;诖?,處理單元43具體用于:將所述直播間界面上顯示的主播等級信息變更為所述升級后的主播等級信息。

在一可選實施方式中,上述字符串包含的命令號為指示直播間封禁的命令號;所述字符串包含的數(shù)據(jù)內(nèi)容為關閉直播間的指示信息?;诖?,處理單元43具體用于:根據(jù)所述關閉直播間的指示信息,關閉所述直播間界面;

在一可選實施方式中,上述字符串包含的命令號為指示變更在線人數(shù)的命令號;所述字符串包含的數(shù)據(jù)內(nèi)容為新的在線人數(shù)?;诖?,處理單元43具體用于:將所述直播間界面上顯示的在線人數(shù)變更為所述新的在線人數(shù)。

本實施例提供的裝置作為android應用中基于unity封裝成的aar模塊,可用于執(zhí)行上述方法實施例中的流程,具體工作原理可參見前述方法實施例,在此不再贅述。

本實施例提供的裝置作為android應用中基于unity封裝成的aar模塊,提供了aar模塊內(nèi)部的數(shù)據(jù)處理方式,為unity與android的結(jié)合提供了條件,使得可以利用unity開發(fā)android應用的界面,為android應用提供豐富多彩的界面,提高android應用的界面的友好程度。

本領域內(nèi)的技術人員應明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、cd-rom、光學存儲器等)上實施的計算機程序產(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)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。

在一個典型的配置中,計算設備包括一個或多個處理器(cpu)、輸入/輸出接口、網(wǎng)絡接口和內(nèi)存。

內(nèi)存可能包括計算機可讀介質(zhì)中的非永久性存儲器,隨機存取存儲器(ram)和/或非易失性內(nèi)存等形式,如只讀存儲器(rom)或閃存(flashram)。內(nèi)存是計算機可讀介質(zhì)的示例。

計算機可讀介質(zhì)包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現(xiàn)信息存儲。信息可以是計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計算機的存儲介質(zhì)的例子包括,但不限于相變內(nèi)存(pram)、靜態(tài)隨機存取存儲器(sram)、動態(tài)隨機存取存儲器(dram)、其他類型的隨機存取存儲器(ram)、只讀存儲器(rom)、電可擦除可編程只讀存儲器(eeprom)、快閃記憶體或其他內(nèi)存技術、只讀光盤只讀存儲器(cd-rom)、數(shù)字多功能光盤(dvd)或其他光學存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設備或任何其他非傳輸介質(zhì),可用于存儲可以被計算設備訪問的信息。按照本文中的界定,計算機可讀介質(zhì)不包括暫存電腦可讀媒體(transitorymedia),如調(diào)制的數(shù)據(jù)信號和載波。

還需要說明的是,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、商品或者設備中還存在另外的相同要素。

本領域技術人員應明白,本申請的實施例可提供為方法、系統(tǒng)或計算機程序產(chǎn)品。因此,本申請可采用完全硬件實施例、完全軟件實施例或結(jié)合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、cd-rom、光學存儲器等)上實施的計算機程序產(chǎn)品的形式。

以上所述僅為本申請的實施例而已,并不用于限制本申請。對于本領域技術人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內(nèi)所作的任何修改、等同替換、改進等,均應包含在本申請的權(quán)利要求范圍之內(nèi)。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
都兰县| 宜都市| 金阳县| 泾源县| 兰坪| 江川县| 临清市| 上饶县| 筠连县| 广东省| 安国市| 虞城县| 乌恰县| 油尖旺区| 姚安县| 福清市| 建水县| 蓬溪县| 锡林郭勒盟| 岳阳县| 满城县| 尚义县| 凤山县| 同心县| 进贤县| 乐安县| 白城市| 巢湖市| 集贤县| 汽车| 台东市| 滦平县| 邳州市| 闽清县| 吴江市| 济阳县| 章丘市| 耿马| 涿州市| 盐亭县| 新巴尔虎右旗|