本申請(qǐng)涉及通信技術(shù)領(lǐng)域,尤其涉及一種圖形合成方法、信息交互方法及系統(tǒng)。
背景技術(shù):
云操作系統(tǒng)又稱云os,是以云計(jì)算、云存儲(chǔ)技術(shù)作為支撐的操作系統(tǒng)。云操作系統(tǒng)因其能夠整合海量的計(jì)算能力并能夠提供強(qiáng)大的資源調(diào)配能力,未來將得到更廣泛的應(yīng)用。
云操作系統(tǒng)既可以用于傳統(tǒng)的桌面系統(tǒng)設(shè)備(比如pc)又適用于移動(dòng)設(shè)備?;谠撇僮飨到y(tǒng)的應(yīng)用或服務(wù),以及基于傳統(tǒng)操作系統(tǒng)的應(yīng)用或服務(wù),將會(huì)在云操作系統(tǒng)框架內(nèi)運(yùn)行,這就要求云操作系統(tǒng)框架能夠?qū)⒒诓煌僮飨到y(tǒng)的應(yīng)用或服務(wù)進(jìn)行融合。
目前,針對(duì)在一種操作系統(tǒng)框架內(nèi),基于不同操作系統(tǒng)的應(yīng)用或服務(wù)如何在圖形合成層面融合或者在控制層面融合,目前尚未有相應(yīng)的解決方案。
申請(qǐng)內(nèi)容
本申請(qǐng)實(shí)施例提供了一種圖形合成方法及系統(tǒng),用以在圖形處理層面實(shí)現(xiàn)不同操作系統(tǒng)間的兼容。
本申請(qǐng)實(shí)施例提供的圖形合成方法,包括:
第一子系統(tǒng)中的第一控件接收第二子系統(tǒng)圖形合成器中與所述第一控件對(duì)應(yīng)的圖形對(duì)象發(fā)送的圖形數(shù)據(jù);
所述第一控件將所述圖形數(shù)據(jù)發(fā)送給第一子系統(tǒng)圖形合成器。
進(jìn)一步地,該方法還包括:第一子系統(tǒng)圖形合成器接收第一子系統(tǒng)中的 圖形對(duì)象發(fā)送的圖形數(shù)據(jù)。
進(jìn)一步地,該方法還包括:第一子系統(tǒng)圖形合成器對(duì)所述第一控件發(fā)送的圖形數(shù)據(jù)以及第一子系統(tǒng)中的圖形對(duì)象發(fā)送的圖形數(shù)據(jù)進(jìn)行合成。
優(yōu)選地,第一控件為多個(gè),所述第一控件將所述圖形數(shù)據(jù)發(fā)送給第一子系統(tǒng)圖形合成器,包括:
所述多個(gè)第一控件將各自接收到的圖形數(shù)據(jù)發(fā)送給第一子系統(tǒng)中的圖形對(duì)象;
所述第一子系統(tǒng)中的圖形對(duì)象將所述多個(gè)第一控件發(fā)送的圖形數(shù)據(jù)作為本圖形對(duì)象對(duì)應(yīng)的圖形數(shù)據(jù)發(fā)送給第一子系統(tǒng)圖形合成器。
優(yōu)選地,該方法還包括:所述第一控件接收第一子系統(tǒng)中的應(yīng)用組件發(fā)送的圖形對(duì)象設(shè)置信息;所述第一控件將接收到的圖形對(duì)象設(shè)置信息發(fā)送給第一子系統(tǒng)圖形合成器。
其中,所述圖形對(duì)象為應(yīng)用程序窗口,所述圖形對(duì)象設(shè)置信息包括窗口屬性信息。
進(jìn)一步地,第一子系統(tǒng)中的第一控件接收第二子系統(tǒng)圖形合成器發(fā)送的圖形數(shù)據(jù)之前,還包括:創(chuàng)建所述第一控件。
其中,創(chuàng)建所述第一控件,包括:第一子系統(tǒng)中的應(yīng)用組件根據(jù)使用第二子系統(tǒng)中的圖形數(shù)據(jù)的請(qǐng)求,創(chuàng)建與第二子系統(tǒng)中用于提供圖形數(shù)據(jù)的圖形對(duì)象所對(duì)應(yīng)的第一控件。
進(jìn)一步地,第一控件將第二子系統(tǒng)圖形合成器發(fā)送的圖形數(shù)據(jù)發(fā)送給第一子系統(tǒng)圖形合成器之后,還包括:銷毀所述第一控件。
其中,銷毀所述第一控件,包括:第一子系統(tǒng)中的應(yīng)用組件接收到第二子系統(tǒng)中與所述第一控件對(duì)應(yīng)的圖形對(duì)象被銷毀的信息,則銷毀所述第一控件;或者,第一子系統(tǒng)中的應(yīng)用組件接收到結(jié)束使用第二子系統(tǒng)中的圖形數(shù)據(jù)的指示,則銷毀與第二子系統(tǒng)中用于提供所述圖形數(shù)據(jù)的圖形對(duì)象所對(duì)應(yīng)的第一控件。
進(jìn)一步地,第一子系統(tǒng)中的第一控件接收第二子系統(tǒng)圖形合成器中與所述第一控件對(duì)應(yīng)的圖形對(duì)象發(fā)送的圖形數(shù)據(jù)之前,還包括:
第一子系統(tǒng)中的第一應(yīng)用組件向第一子系統(tǒng)中的第一系統(tǒng)服務(wù)組件發(fā)送控制信息,所述控制信息用于指示獲取第二子系統(tǒng)中的圖形數(shù)據(jù);
所述第一系統(tǒng)服務(wù)組件將所述控制信息發(fā)送給第二子系統(tǒng)中的第二系統(tǒng)服務(wù)組件;
所述第二系統(tǒng)服務(wù)組件將所述控制信息發(fā)送給第二子系統(tǒng)中的第二應(yīng)用組件。
優(yōu)選地,所述第一子系統(tǒng)為host子系統(tǒng),所述第二子系統(tǒng)為guest子系統(tǒng)。
本申請(qǐng)實(shí)施例提供的圖形合成系統(tǒng),包括:第一子系統(tǒng)圖形合成器、第二子系統(tǒng)圖形合成器,以及第一子系統(tǒng)中的第一控件;
第一子系統(tǒng)中的第一控件,用于接收第二子系統(tǒng)圖形合成器中與所述第一控件對(duì)應(yīng)的圖形對(duì)象發(fā)送的圖形數(shù)據(jù),并將所述圖形數(shù)據(jù)發(fā)送給第一子系統(tǒng)圖形合成器。
進(jìn)一步地,第一子系統(tǒng)圖形合成器還用于:接收第一子系統(tǒng)中的圖形對(duì)象發(fā)送的圖形數(shù)據(jù)。
進(jìn)一步地,第一子系統(tǒng)圖形合成器還用于:對(duì)所述第一控件發(fā)送的圖形數(shù)據(jù)以及第一子系統(tǒng)中的圖形對(duì)象發(fā)送的圖形數(shù)據(jù)進(jìn)行合成。
優(yōu)選地,第一控件為多個(gè),所述多個(gè)第一控件將各自接收到的圖形數(shù)據(jù)發(fā)送給第一子系統(tǒng)中的圖形對(duì)象;
第一子系統(tǒng)圖形合成器具體用于:接收所述第一子系統(tǒng)中的圖形對(duì)象發(fā)送的圖形數(shù)據(jù);其中,所述圖形對(duì)象將所述多個(gè)第一控件發(fā)送的圖形數(shù)據(jù)作為本圖形對(duì)象對(duì)應(yīng)的圖形數(shù)據(jù)發(fā)送給第一子系統(tǒng)圖形合成器。
進(jìn)一步地,所述第一控件還用于:
接收第一子系統(tǒng)中的應(yīng)用組件發(fā)送的圖形對(duì)象設(shè)置信息;
將接收到的圖形對(duì)象設(shè)置信息發(fā)送給第一子系統(tǒng)圖形合成器。
其中,所述圖形對(duì)象為應(yīng)用程序窗口,所述圖形對(duì)象設(shè)置信息包括窗口屬性信息。
優(yōu)選地,第一子系統(tǒng)中還包括應(yīng)用組件;所述第一子系統(tǒng)中的應(yīng)用組件,用于創(chuàng)建所述第一控件。
其中,所述第一子系統(tǒng)中的應(yīng)用組件具體用于:根據(jù)使用第二子系統(tǒng)中的圖形數(shù)據(jù)的請(qǐng)求,創(chuàng)建與第二子系統(tǒng)中用于提供圖形數(shù)據(jù)的圖形對(duì)象所對(duì)應(yīng)的第一控件。
優(yōu)選地,第一子系統(tǒng)中還包括應(yīng)用組件;所述第一子系統(tǒng)中的應(yīng)用組件,用于銷毀所述第一控件。
其中,所述第一子系統(tǒng)中的應(yīng)用組件具體用于:
接收到第二子系統(tǒng)中與所述第一控件對(duì)應(yīng)的圖形對(duì)象被銷毀的信息,則銷毀所述第一控件;或者,
接收到結(jié)束使用第二子系統(tǒng)中的圖形數(shù)據(jù)的指示,則銷毀與第二子系統(tǒng)中用于提供所述圖形數(shù)據(jù)的圖形對(duì)象所對(duì)應(yīng)的第一控件。
優(yōu)選地,第一子系統(tǒng)中還包括第一應(yīng)用組件,第二子系統(tǒng)中還包括第二應(yīng)用組件;
第一子系統(tǒng)中的第一應(yīng)用組件,用于向第一子系統(tǒng)中的第一系統(tǒng)服務(wù)組件發(fā)送控制信息,所述控制信息用于指示獲取第二子系統(tǒng)中的圖形數(shù)據(jù);
第一系統(tǒng)服務(wù)組件具體用于,將所述控制信息發(fā)送給第二子系統(tǒng)中的第二系統(tǒng)服務(wù)組件;
所述第二系統(tǒng)服務(wù)組件具體用于,將所述控制信息發(fā)送給第二子系統(tǒng)中的第二應(yīng)用組件。
優(yōu)選地,所述第一子系統(tǒng)為host子系統(tǒng),所述第二子系統(tǒng)為guest子系統(tǒng)。
本申請(qǐng)的上述實(shí)施例中,第一子系統(tǒng)中的第一控件接收第二子系統(tǒng)圖形合 成器中與所述第一控件對(duì)應(yīng)的圖形對(duì)象發(fā)送的圖形數(shù)據(jù),第一控件將接收到的圖形數(shù)據(jù)發(fā)送給第一子系統(tǒng)圖形合成器,可以看出,第一子系統(tǒng)中,對(duì)應(yīng)于第二子系統(tǒng)圖形合成器中的圖形對(duì)象存在對(duì)應(yīng)的第一控件,該第一控件提供了兩個(gè)子系統(tǒng)間圖形數(shù)據(jù)的傳輸功能,從而在圖形處理層面實(shí)現(xiàn)了不同操作系統(tǒng)間的兼容。
本申請(qǐng)實(shí)施例提供了一種信息交互方法及系統(tǒng),用以在控制層面實(shí)現(xiàn)不同操作系統(tǒng)間的兼容。
本申請(qǐng)實(shí)施例提供的信息交互方法,包括:
第一子系統(tǒng)中的第一系統(tǒng)服務(wù)組件接收第一子系統(tǒng)中的第一應(yīng)用組件發(fā)送的第一信息;
所述第一系統(tǒng)服務(wù)組件將所述第一信息發(fā)送給第二子系統(tǒng)中的第二系統(tǒng)服務(wù)組件;
所述第二系統(tǒng)服務(wù)組件將所述第一信息發(fā)送給第二子系統(tǒng)中的第二應(yīng)用組件。
優(yōu)選地,該方法還包括:
所述第二系統(tǒng)服務(wù)組件接收所述第二應(yīng)用組件發(fā)送的第二信息,所述第二信息為所述第一應(yīng)用組件根據(jù)所述第一信息得到的;
所述第二系統(tǒng)服務(wù)組件將所述第二信息發(fā)送給所述第一系統(tǒng)服務(wù)組件;
所述第一系統(tǒng)服務(wù)組件將所述第二信息發(fā)送給所述第一應(yīng)用組件。
優(yōu)選地,所述第一應(yīng)用組件在以下之一或多種情況下,向所述第一系統(tǒng)服務(wù)組件發(fā)送第一信息:
需要使用第二子系統(tǒng)中的圖形數(shù)據(jù);
需要通知第二子系統(tǒng)中的應(yīng)用組件進(jìn)行處理。
優(yōu)選地,該方法還包括:創(chuàng)建所述第一系統(tǒng)服務(wù)組件。
其中,所述第一應(yīng)用組件被創(chuàng)建時(shí),創(chuàng)建所述第一系統(tǒng)服務(wù)組件。
優(yōu)選地,該方法還包括:銷毀所述第一系統(tǒng)服務(wù)組件。
其中,所述第一應(yīng)用組件被銷毀時(shí),銷毀所述第一系統(tǒng)服務(wù)組件。
優(yōu)選地,所述信息包括:控制信息和/或數(shù)據(jù)。
優(yōu)選地,所述第一子系統(tǒng)為host子系統(tǒng),所述第二子系統(tǒng)為guest子系統(tǒng);或者,所述第一子系統(tǒng)為guest子系統(tǒng),所述第二子系統(tǒng)為host子系統(tǒng)。
本申請(qǐng)實(shí)施例提供的信息交互系統(tǒng),包括:
第一子系統(tǒng)中的第一系統(tǒng)服務(wù)組件,用于接收第一子系統(tǒng)中的第一應(yīng)用組件發(fā)送的第一信息;
所述第一系統(tǒng)服務(wù)組件,用于將所述第一信息發(fā)送給第二子系統(tǒng)中的第二系統(tǒng)服務(wù)組件;
所述第二系統(tǒng)服務(wù)組件,用于將所述第一信息發(fā)送給第二子系統(tǒng)中的第二應(yīng)用組件。
優(yōu)選地,所述第二系統(tǒng)服務(wù)組件還用于:接收所述第二應(yīng)用組件發(fā)送的第二信息,將所述第二信息發(fā)送給所述第一系統(tǒng)服務(wù)組件;其中,所述第二信息為所述第一應(yīng)用組件根據(jù)所述第一信息得到的;
所述第一系統(tǒng)服務(wù)組件還用于:將所述第二信息發(fā)送給所述第一應(yīng)用組件。
優(yōu)選地,所述第一應(yīng)用組件具體用于:在以下之一或多種情況下,向所述第一系統(tǒng)服務(wù)組件發(fā)送第一信息:
需要使用第二子系統(tǒng)中的圖形數(shù)據(jù);
需要通知第二子系統(tǒng)中的應(yīng)用組件進(jìn)行處理。
優(yōu)選地,所述信息包括:控制信息和/或數(shù)據(jù)。
優(yōu)選地,所述第一子系統(tǒng)為host子系統(tǒng),所述第二子系統(tǒng)為guest子系統(tǒng);或者,所述第一子系統(tǒng)為guest子系統(tǒng),所述第二子系統(tǒng)為host子系統(tǒng)。
本申請(qǐng)的上述實(shí)施例中,第一子系統(tǒng)中的第一系統(tǒng)服務(wù)組件接收第一子系統(tǒng)中的第一應(yīng)用組件發(fā)送的信息;第一系統(tǒng)服務(wù)組件將該信息發(fā)送給第二子系統(tǒng)中的第二系統(tǒng)服務(wù)組件,第二系統(tǒng)服務(wù)組件將該信息發(fā)送給第二子系統(tǒng)中 的第二應(yīng)用組件,從而實(shí)現(xiàn)了不同子系統(tǒng)中的應(yīng)用組件之間的信息交互。
附圖說明
圖1為本申請(qǐng)實(shí)施例所適用的操作系統(tǒng)框架示意圖;
圖2為本申請(qǐng)實(shí)施例提供的跨系統(tǒng)的信息交互架構(gòu)示意圖;
圖3為本申請(qǐng)實(shí)施例提供的圖形合成層面的雙系統(tǒng)兼容架構(gòu)示意圖;
圖4為本申請(qǐng)實(shí)施例提供的視頻回放應(yīng)用程序的用戶界面示意圖;
圖5為本申請(qǐng)實(shí)施例提供的圖形合成系統(tǒng)的結(jié)構(gòu)示意圖;
圖6為本申請(qǐng)實(shí)施例提供的信息交互系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了在第一操作系統(tǒng)框架內(nèi)更好地兼容第二操作系統(tǒng),為用戶提供更加自然平滑的體驗(yàn)過渡,本申請(qǐng)實(shí)施例提供了在第一操作系統(tǒng)框架內(nèi),在圖形處理層面上的融合和統(tǒng)一,為用戶提供無縫的雙系統(tǒng)用戶體驗(yàn)。本申請(qǐng)實(shí)施例可適用于針對(duì)需要跨操作系統(tǒng)運(yùn)行的應(yīng)用程序,也可適用于基于不同操作系統(tǒng)的應(yīng)用程序之間需要傳遞圖形數(shù)據(jù)或控制信息的場(chǎng)景,對(duì)此本申請(qǐng)實(shí)施例不作限制。
其中,第一操作系統(tǒng)和第二操作系統(tǒng)為不同的操作系統(tǒng)。具體地,第一操作系統(tǒng)可以是云操作系統(tǒng),第二操作系統(tǒng)可以是傳統(tǒng)的操作系統(tǒng)。更具體地,第一操作系統(tǒng)可以是yunos,第二操作系統(tǒng)可以是android。
下面結(jié)合附圖對(duì)本申請(qǐng)實(shí)施例進(jìn)行詳細(xì)描述。
參見圖1,為本申請(qǐng)實(shí)施例適用的操作系統(tǒng)框架示意圖。以yunos作為第一操作系統(tǒng),android為第二操作系統(tǒng)為例,圖1示出了在yunos框架內(nèi)的雙系統(tǒng)兼容架構(gòu)。
如圖1所示,系統(tǒng)框架中包括host與guest兩個(gè)子系統(tǒng),其中,yunos即為host子系統(tǒng),android即為guest子系統(tǒng),兩個(gè)子系統(tǒng)通過container(容 器)技術(shù)隔離。該框架內(nèi)的硬件抽象層(hardwareabstractionlayer,hal)提供了圖形顯示等方面的接口和驅(qū)動(dòng)服務(wù)。
host子系統(tǒng)中的glibc,即c運(yùn)行庫(kù),是linux中最底層的api(applicationprogramminginterface,應(yīng)用程序編程接口)。guest子系統(tǒng)中的bioric,是android的linux內(nèi)核庫(kù)。
libhybris為兼容層,能夠使基于glibc的操作系統(tǒng)重用現(xiàn)有的android的驅(qū)動(dòng)(driver)服務(wù);在圖形(graphics)處理方面,libhybris還實(shí)現(xiàn)了eglplatform。eglplatform這是一套后臺(tái)(backend)無關(guān)的遵循egl接口的圖形平臺(tái),以及多個(gè)后臺(tái)(backend)實(shí)現(xiàn)。
gralloc模塊位于硬件抽象層中,封裝了對(duì)幀緩沖區(qū)的所有訪問操作。
guest子系統(tǒng)中的inputmanageerservice(輸入管理模塊)主要用于對(duì)輸入事件進(jìn)行監(jiān)控和管理。
surfaceflinger是guest子系統(tǒng)的圖形合成器;waylandcompositor(或weston)是host子系統(tǒng)的圖形合成器,其中,weston是waylandcompositor的參考實(shí)現(xiàn)。
本申請(qǐng)實(shí)施例中,guest子系統(tǒng)的圖形合成器與host子系統(tǒng)的圖形合成器之間可采用wayland協(xié)議進(jìn)行通信。wayland協(xié)議定義了如何與內(nèi)核通信,如何與客戶端(client)通信;wayland復(fù)用了所有l(wèi)inux內(nèi)核的圖形、輸入輸出技術(shù)。
本申請(qǐng)實(shí)施例中andriod的圖形合成器與yunos的圖形合成器之間可采用wayland協(xié)議進(jìn)行通信,使得android中的圖形系統(tǒng)架空,并橋接到y(tǒng)unos的圖形系統(tǒng),實(shí)現(xiàn)了雙系統(tǒng)的統(tǒng)一合成渲染,從而提供了較好地雙系統(tǒng)兼容性,又實(shí)現(xiàn)了雙系統(tǒng)的無縫用戶體驗(yàn)。
需要說明的是,上述系統(tǒng)架構(gòu)僅以yunos和andriod為例進(jìn)行說明,對(duì)于其他類型的操作系統(tǒng),也可基于上述原理實(shí)現(xiàn)雙系統(tǒng)在圖形合成層面的兼容以及有效融合。
基于上述框架,本申請(qǐng)實(shí)施例提供了在以下兩個(gè)層面上的雙系統(tǒng)兼容:
(一)信息交互層面的雙系統(tǒng)兼容方案
(二)圖形合成層面的雙系統(tǒng)兼容方案
在實(shí)際應(yīng)用場(chǎng)景中,上述兩種雙系統(tǒng)兼容方案可能獨(dú)立使用,也可能結(jié)合使用。
下面以第一子系統(tǒng)為host子系統(tǒng)、第二子系統(tǒng)為guest子系統(tǒng)為例,分別對(duì)這兩種雙系統(tǒng)兼容方案進(jìn)行描述。其中,host子系統(tǒng)為yunos,guest子系統(tǒng)為android。
(一)信息交互層面的雙系統(tǒng)兼容方案
為了實(shí)現(xiàn)交互和控制上的統(tǒng)一,本申請(qǐng)實(shí)施例建立了從第一子系統(tǒng)到第二子系統(tǒng)的跨操作系統(tǒng)環(huán)境的數(shù)據(jù)和/或控制信息的連接通路,即,提供了一種ipc(inter-processcommunication,進(jìn)程間通信)機(jī)制,以實(shí)現(xiàn)不同子系統(tǒng)的應(yīng)用組件(或進(jìn)程)之間的信息交互。
參見圖2,為本申請(qǐng)實(shí)施例提供的信息交互架構(gòu)。
如圖2所示,在host子系統(tǒng)中建立有bridgeproxy,在guest子系統(tǒng)中建立有bridgeservice。其中,bridgeproxy和bridgeservice均為系統(tǒng)服務(wù)組件。
通常,android系統(tǒng)采用binder機(jī)制作為ipc(inter-processcommunication,進(jìn)程間通信)機(jī)制,yunos采用socket或dbus作為ipc通信機(jī)制,為了使信息在不同操作系統(tǒng)的應(yīng)用組件(也即應(yīng)用程序進(jìn)程)間進(jìn)行交互,本申請(qǐng)實(shí)施例采用bridageproxy作為系統(tǒng)服務(wù)對(duì)于這兩個(gè)系統(tǒng)之間的ipc機(jī)制進(jìn)行轉(zhuǎn)換。
應(yīng)用組件是應(yīng)用程序(application)的組件之一,在android系統(tǒng)中稱為activity,在yunos中稱為page,是實(shí)現(xiàn)應(yīng)用程序的主體。進(jìn)程是運(yùn)行態(tài)的應(yīng)用程序或應(yīng)用組件。
bridgeservice通常為常駐服務(wù),bridgeproxy可在需要時(shí)創(chuàng)建或啟用。例如,在一些實(shí)施例中,當(dāng)在host子系統(tǒng)中有應(yīng)用組件(進(jìn)程)被創(chuàng)建時(shí),bridge proxy被創(chuàng)建或啟用,從而通過該bridgeproxy實(shí)現(xiàn)在不同子系統(tǒng)中的信息交互。進(jìn)一步地,當(dāng)在host子進(jìn)程中有應(yīng)用組件(進(jìn)程)被銷毀時(shí),該bridgeproxy被銷毀或關(guān)閉。其中,本申請(qǐng)實(shí)施例中所描述的“應(yīng)用組件(進(jìn)程)”表示應(yīng)用組件和進(jìn)程為可替代關(guān)系,這里的進(jìn)程可理解為運(yùn)行態(tài)的應(yīng)用組件。
在一些實(shí)施例中,host子系統(tǒng)中的應(yīng)用組件(進(jìn)程)可將信息,比如數(shù)據(jù)和/或控制信息,發(fā)送給bridgeproxy,bridgeproxy將bridgeproxy發(fā)送來的數(shù)據(jù)和/或控制信息發(fā)送給bridgeservice,bridgeservice將該數(shù)據(jù)和/或控制信息發(fā)送給guest子系統(tǒng)中的應(yīng)用組件(進(jìn)程)。
其中,bridgeproxy與bridgeservice之間可基于binder機(jī)制進(jìn)行通信。bridgeservice可通過intent或socket方式與guest子系統(tǒng)中的應(yīng)用組件(進(jìn)程)進(jìn)行交互。
進(jìn)一步地,guest子系統(tǒng)中的應(yīng)用組件(進(jìn)程)根據(jù)接收到的數(shù)據(jù)和/或控制信息進(jìn)行處理后,可將作為處理結(jié)果的數(shù)據(jù)和/或控制信息發(fā)送給bridgeservice,bridgeservice將該數(shù)據(jù)和/或控制信息發(fā)送給bridgeproxy,bridgeproxy將該數(shù)據(jù)和/或控制信息發(fā)送給host子系統(tǒng)中的應(yīng)用組件(進(jìn)程)。
在另一些實(shí)施例中,guest子系統(tǒng)中的應(yīng)用組件(進(jìn)程)可將信息,比如數(shù)據(jù)和/或控制信息,發(fā)送給bridgeservice,bridgeservice將該數(shù)據(jù)和/或控制信息發(fā)送給bridgeproxy,bridgeproxy將該數(shù)據(jù)和/或控制信息發(fā)送給host子系統(tǒng)中的應(yīng)用組件(進(jìn)程)。
進(jìn)一步地,host子系統(tǒng)中的應(yīng)用組件(進(jìn)程)根據(jù)接收到的數(shù)據(jù)和/或控制信息進(jìn)行處理后,可將作為處理結(jié)果的數(shù)據(jù)和/或控制信息發(fā)送給bridgeproxy,bridgeproxy將該數(shù)據(jù)和/或控制信息發(fā)送給bridgeservice,bridgeservice將該數(shù)據(jù)和/或控制信息發(fā)送給guest子系統(tǒng)中的應(yīng)用組件(進(jìn)程)。
上述ipc架構(gòu)中,不同子系統(tǒng)中的進(jìn)程之間所交互的信息可以是數(shù)據(jù)也可以是控制信息,所述控制信息可包括事件,或者請(qǐng)求信息,或者窗口屬性信息等。
在具體實(shí)施時(shí),基于上述ipc架構(gòu),當(dāng)host子系統(tǒng)中的應(yīng)用組件(進(jìn)程)需要使用guest子系統(tǒng)中的圖形對(duì)象的數(shù)據(jù),或者需要通知guest子系統(tǒng)中的應(yīng)用組件(進(jìn)程)進(jìn)行某種或某些操作時(shí),可通過bridgeproxy將控制信息發(fā)送給bridgeservice,由bridgeservice發(fā)送給guest子系統(tǒng)中的應(yīng)用組件(進(jìn)程),由該應(yīng)用組件(進(jìn)程)根據(jù)該控制信息進(jìn)行相應(yīng)處理,并將處理結(jié)果通過bridgeservice發(fā)送給bridgeproxy,由bridgeproxy發(fā)送給host子系統(tǒng)中的應(yīng)用組件(進(jìn)程)。
上述信息交互方法可適用于一個(gè)應(yīng)用程序的部分功能需要基于host子系統(tǒng)實(shí)現(xiàn),部分功能需要基于guest子系統(tǒng)實(shí)現(xiàn)的場(chǎng)景。例如,以視頻回放應(yīng)用程序(videoplaybackapp)為例,當(dāng)用戶通過videoplaybackapp用戶界面提交播放影片的請(qǐng)求后,該事件被videoplaybackapp在host子系統(tǒng)中的進(jìn)程獲取到,由于受到視頻內(nèi)容提供商加密及版權(quán)限制,只提供了android平臺(tái)的sdk(softwaredevelopmentkit,軟件開發(fā)工具包),因此視頻內(nèi)容相關(guān)的邏輯在android環(huán)境中開發(fā),即,該事件所請(qǐng)求的對(duì)象是guse子系統(tǒng)中的圖形數(shù)據(jù),因此,videoplaybackapp在host子系統(tǒng)中的進(jìn)程將該事件發(fā)送給bridgeproxy,bridgeproxy將該事件發(fā)送給bridgeservice,由bridgeservice發(fā)送給videoplaybackapp在guest子系統(tǒng)中的進(jìn)程,從而使videoplaybackapp在guest子系統(tǒng)中的進(jìn)程將所請(qǐng)求的視頻數(shù)據(jù)發(fā)送給host子系統(tǒng)的圖形合成器進(jìn)行處理。
可以看出,通過本申請(qǐng)實(shí)施例提供的ipc架構(gòu)實(shí)現(xiàn)了跨操作系統(tǒng)的信息交互,使得不同操作系統(tǒng)之間在控制層面得到融合,從而使得應(yīng)用級(jí)融合的交互體驗(yàn)變得無縫。
(二)圖形合成層面的雙系統(tǒng)兼容方案
參見圖3,為本申請(qǐng)實(shí)施例提供的圖形合成層面的雙系統(tǒng)兼容架構(gòu)示意圖。
如圖3所示,guest子系統(tǒng)的圖形合成器surfaceflinger中創(chuàng)建有l(wèi)ayer,圖中僅示例性地示出了兩個(gè)layer,分別為layer1和layer2。
在host子系統(tǒng)中,創(chuàng)建有p_surface1和p_surface2,其中,p_surface1與 guest子系統(tǒng)中的layer1對(duì)應(yīng),并與host子系統(tǒng)的圖形合成器中的surface1對(duì)應(yīng)(未在圖中示出),用于連接layer1和host子系統(tǒng)的圖形合成器weston,更具體地是用于連接layer1和weston中的surface1;p_surface2與layer2對(duì)應(yīng),并與host子系統(tǒng)的圖形合成器中的surface2對(duì)應(yīng)(未在圖中示出),用于連接layer2和host子系統(tǒng)的圖形合成器weston,更具體地是用于連接layer2和weston中的surface2。
p_surface可以是控件,用于連接guest子系統(tǒng)圖形合成器中的layer與host子系統(tǒng)的圖形合成器,作為guest子系統(tǒng)中的layer的代理(proxy),將guest子系統(tǒng)的圖形數(shù)據(jù)傳遞給host子系統(tǒng)的圖形合成器。具體地,layer1可將圖形數(shù)據(jù)發(fā)送給p_surface1,p_surface1可將layer1發(fā)送來的圖形數(shù)據(jù)發(fā)送給host子系統(tǒng)的圖形合成器weston;layer2可將圖形數(shù)據(jù)發(fā)送給p_surface1,p_surface2可將layer2發(fā)送來的圖形數(shù)據(jù)發(fā)送給host子系統(tǒng)的圖形合成器weston。
進(jìn)一步地,在host子系統(tǒng)中,應(yīng)用組件(進(jìn)程)還可以在host子系統(tǒng)中創(chuàng)建localsurface,通過localsurface將host子系統(tǒng)中的圖形數(shù)據(jù)發(fā)送給host子系統(tǒng)的圖形合成器weston。其中,localsurface是host子系統(tǒng)中的surface。這樣,host子系統(tǒng)的圖形合成器既可以對(duì)host子系統(tǒng)的圖形數(shù)據(jù)進(jìn)行合成處理,又可以對(duì)guest子系統(tǒng)的圖形數(shù)據(jù)進(jìn)行合成處理,實(shí)現(xiàn)了跨操作系統(tǒng)的圖形合成。
進(jìn)一步地,在guest子系統(tǒng)中,應(yīng)用組件(進(jìn)程)還可以創(chuàng)建layer3。layer3可將guest子系統(tǒng)中的圖形數(shù)據(jù)發(fā)送給host子系統(tǒng)中的圖形合成器weston,由weston對(duì)圖形數(shù)據(jù)進(jìn)行合成處理。
基于android框架特點(diǎn),大部分的圖形數(shù)據(jù)是以layer的形式提交給surfaceflinger進(jìn)行合成的,因此,本申請(qǐng)實(shí)施例以layercontent作為兩個(gè)子系統(tǒng)融合的基本單位,即,通過p_surface發(fā)送的圖形數(shù)據(jù)可以是layercontent,更具體地,可以是layer所對(duì)應(yīng)的graphicbuffer隊(duì)列中存儲(chǔ)的圖形數(shù)據(jù)。layer是應(yīng)用程序進(jìn)程創(chuàng)建的圖形對(duì)象,一般地,一個(gè)layer代表一個(gè)圖層,多個(gè)layer 可按照z-order順序疊加以形成用戶界面。一個(gè)layer可對(duì)應(yīng)一個(gè)graphicbuffer隊(duì)列,graphicbuffer隊(duì)列中包含多個(gè)graphicbuffer。本實(shí)施例中,graphicbuffer是應(yīng)用組件在guest子系統(tǒng)中的進(jìn)程創(chuàng)建的,其中存儲(chǔ)有圖形數(shù)據(jù),比如存儲(chǔ)有應(yīng)用組件在guest子系統(tǒng)中的進(jìn)程所渲染的圖形數(shù)據(jù)。
當(dāng)然,圖3的架構(gòu)是以yunos和android為例描述的,且圖形數(shù)據(jù)以layer為單位提交給surfaceflinger進(jìn)行合成,在其他情況下,連接guest子系統(tǒng)中的圖形對(duì)象和host子系統(tǒng)圖形合成器的控件,也可以以其他類型的圖形對(duì)象為單位,將該圖形對(duì)象對(duì)應(yīng)的圖形數(shù)據(jù)發(fā)送給host子系統(tǒng)圖形合成器進(jìn)行合成。
進(jìn)一步地,p_surface還可以接收host子系統(tǒng)中的應(yīng)用組件發(fā)送的圖形對(duì)象設(shè)置信息,并將該圖形對(duì)象設(shè)置信息發(fā)送給host子系統(tǒng)的圖形合成器weston。weston可根據(jù)該圖形對(duì)象設(shè)置信息進(jìn)行圖形對(duì)象設(shè)置或更新。具體地,該圖形對(duì)象可以是應(yīng)用程序窗口,該圖形對(duì)象設(shè)置信息可以是窗口屬性信息,weston可根據(jù)該窗口屬性信息對(duì)相應(yīng)窗口進(jìn)行更新,比如改變窗口透明度等。
具體地,p_surface可提供接口給host子系統(tǒng)中的應(yīng)用組件進(jìn)行調(diào)用,當(dāng)應(yīng)用組件調(diào)用其中的圖形對(duì)象處理相關(guān)的接口時(shí),執(zhí)行該接口對(duì)應(yīng)的操作以實(shí)現(xiàn)圖形對(duì)象設(shè)置,比如窗口屬性更新。
作為一個(gè)例子,host子系統(tǒng)中的應(yīng)用組件接收到視頻窗口屬性更新事件后(該事件可由用戶通過調(diào)整視頻窗口大小或透明度等操作觸發(fā)),該應(yīng)用組件將更新的窗口屬性信息發(fā)送給與該視頻窗口的surface對(duì)應(yīng)的p_surface1,由p_surface1將窗口屬性信息發(fā)送給weston,weston根據(jù)該窗口屬性信息重繪窗口。
p_surface的生命周期可由host子系統(tǒng)中的應(yīng)用組件進(jìn)行管理。
具體地,以p_surface1為例,host子系統(tǒng)中的應(yīng)用組件可根據(jù)顯示guest子系統(tǒng)獲得的圖形數(shù)據(jù)的請(qǐng)求,創(chuàng)建p_surface1;當(dāng)guest子系統(tǒng)中與p_surface1對(duì)應(yīng)的圖形對(duì)象被銷毀時(shí),則銷毀p_surface1。
在另外的實(shí)施例中,當(dāng)host子系統(tǒng)中的應(yīng)用組件接收到結(jié)束使用guest 子系統(tǒng)中的圖形數(shù)據(jù)的指示時(shí),則銷毀與guest子系統(tǒng)中用于提供該圖形數(shù)據(jù)的圖形對(duì)象所對(duì)應(yīng)的p_surface1。
優(yōu)選地,p_surface可基于系統(tǒng)提供的類來創(chuàng)建,這樣可以繼承父類(即系統(tǒng)提供的類)的功能特性。進(jìn)一步地,考慮到不同的應(yīng)用場(chǎng)景下可能有不同的需求,因此可在基于系統(tǒng)提供的類創(chuàng)建p_surface時(shí),結(jié)合當(dāng)前的應(yīng)用場(chǎng)景對(duì)一些參數(shù)或?qū)傩赃M(jìn)行重新設(shè)置。
例如,videoplayback應(yīng)用程序可在創(chuàng)建p_surface時(shí),基于系統(tǒng)提供的類進(jìn)行創(chuàng)建,并設(shè)置為h5surface的sub-surface(特殊surface),控制相應(yīng)寬高、位置等。
再例如,在另外一些實(shí)施例中,可將多個(gè)p_surface發(fā)送的圖形數(shù)據(jù)發(fā)送給localsurface(即host子系統(tǒng)中的surface),以得到合成的圖形數(shù)據(jù),由localsurface發(fā)送給weston,從而最終提交一塊surface到weston。
上述圖形合成方法可適用于一個(gè)應(yīng)用程序的部分功能需要基于host子系統(tǒng)實(shí)現(xiàn),部分功能需要基于guest子系統(tǒng)實(shí)現(xiàn)的場(chǎng)景。以視頻回放應(yīng)用程序(videoplaybackapp)為例來說,當(dāng)videoplaybackapp在host子系統(tǒng)中的進(jìn)程獲取到視頻播放事件后(該事件可由用戶通過用戶界面提交視頻播放請(qǐng)求觸發(fā)),創(chuàng)建p_surface1,p_surface1與weston中的視頻窗口的surface對(duì)應(yīng);進(jìn)一步地,videoplaybackapp在host子系統(tǒng)中的進(jìn)程將該事件發(fā)送給videoplaybackapp在guest子系統(tǒng)中的進(jìn)程(跨操作系統(tǒng)進(jìn)程間的信息交互可參見前述實(shí)施例),videoplaybackapp在guest子系統(tǒng)中的進(jìn)程根據(jù)該事件從網(wǎng)絡(luò)側(cè)獲取視頻數(shù)據(jù),視頻解碼后的內(nèi)容通過mediacodec(媒體解碼器)傳遞到videoview控件,然后提交到surfaceflinger,并通過p_surface1將圖形數(shù)據(jù)發(fā)送給weston進(jìn)行合成,從而在視頻窗口中顯示。
當(dāng)視頻播放完成后,videoplaybackapp在guest子系統(tǒng)中的進(jìn)程將該事件發(fā)送給videoplaybackapp在host子系統(tǒng)中的進(jìn)程,videoplaybackapp在host子系統(tǒng)中的進(jìn)程根據(jù)該事件銷毀p_surface1。
當(dāng)用戶再次請(qǐng)求播放視頻時(shí),可按照上述流程執(zhí)行,以再次創(chuàng)建p_surface,并通過p_surface將圖形數(shù)據(jù)從guest子系統(tǒng)傳輸給host子系統(tǒng)中的圖形合成器。
通過本申請(qǐng)上述實(shí)施例對(duì)于圖形合成層面的雙系統(tǒng)兼容方案可以看出,host子系統(tǒng)中的p_surface接收guest子系統(tǒng)圖形合成器中與該p_surface對(duì)應(yīng)的layer發(fā)送的圖形數(shù)據(jù),該p_surface將接收到的圖形數(shù)據(jù)發(fā)送給host子系統(tǒng)圖形合成器,可以看出,host子系統(tǒng)中,對(duì)應(yīng)于guest子系統(tǒng)圖形合成器中的layer存在對(duì)應(yīng)的p_surface,該p_surface提供了兩個(gè)子系統(tǒng)間圖形數(shù)據(jù)的傳輸功能,從而在圖形處理層面實(shí)現(xiàn)了不同操作系統(tǒng)間的兼容。
為了更清楚地理解本申請(qǐng)的上述實(shí)施例,下面以視頻回放應(yīng)用程序(videoplaybackapp)為例,結(jié)合具體應(yīng)用場(chǎng)景描述本申請(qǐng)實(shí)施例的實(shí)現(xiàn)過程。
tom的手機(jī)采用yunos系統(tǒng),其系統(tǒng)架構(gòu)如圖1所示。該手機(jī)上安裝有videoplaybackapp,該應(yīng)用程序中視頻數(shù)據(jù)下載和解碼相關(guān)功能基于android實(shí)現(xiàn),播放控制相關(guān)功能基于yunos實(shí)現(xiàn)。
tom使用videoplaybackapp觀看電影影片的操作以及手機(jī)響應(yīng)tom的操作行為的過程如下所述。
tom的操作行為1:
tom點(diǎn)擊手機(jī)屏幕上操作系統(tǒng)主界面中顯示的videoplaybackapp圖標(biāo),videoplaybackapp被啟動(dòng),videoplaybackapp的主界面顯示在手機(jī)屏幕上,該主界面如圖4所示,其中主要包括視頻窗口100、播放控制條200、窗口控制條300。播放控制條200上設(shè)置有播放控制鍵,具體可包括暫停鍵201、停止鍵202、播放鍵203以及進(jìn)程拖動(dòng)條204。窗口控制條300上設(shè)置有窗口最大化鍵301、窗口還原鍵302。videoplaybackapp的主界面中還包括退出鍵400。
基于tom的上述操作行為1,點(diǎn)擊videoplaybackapp圖標(biāo)的事件觸發(fā)host子系統(tǒng)開啟videoplaybackapp,在host子系統(tǒng)和guest子系統(tǒng)中分別創(chuàng)建videoplaybackapp進(jìn)程。在host子系統(tǒng)中,創(chuàng)建該應(yīng)用程序?qū)?yīng)的localsurface,通 過weston繪制該應(yīng)用程序的主界面并顯示。此外,在host子系統(tǒng)中,針對(duì)videoplaybackapp還創(chuàng)建bridgeproxy,該bridgeproxy能夠與guest子系統(tǒng)中的videoplaybackapp進(jìn)程所對(duì)應(yīng)的bridgeservice進(jìn)行連接,以進(jìn)行控制信息和/或數(shù)據(jù)的交互。
tom的操作行為2:
tom選取一影片后提交收看該電影的請(qǐng)求,此后,該影片在視頻窗口100中播放。
基于tom的上述操作行為2,host子系統(tǒng)中的videoplaybackapp進(jìn)程創(chuàng)建p_surface;guest子系統(tǒng)中的videoplaybackapp進(jìn)程創(chuàng)建buffer隊(duì)列,從網(wǎng)絡(luò)側(cè)獲取該影片的視頻數(shù)據(jù),對(duì)獲取到的視頻數(shù)據(jù)進(jìn)行解碼,將解碼后的視頻數(shù)據(jù)存入buffer隊(duì)列。
guest子系統(tǒng)中,圖形合成器surfaceflinger中的layer將buffer隊(duì)列中的視頻數(shù)據(jù)發(fā)送給p_surface;在host子系統(tǒng)中,p_surface將該視頻數(shù)據(jù)發(fā)送給圖形合成器weston,weston將該視頻數(shù)據(jù)進(jìn)行合成,并通過顯示驅(qū)動(dòng)顯示于視頻窗口100。
tom的操作行為3:
tom點(diǎn)擊窗口控制條300上的窗口最大化鍵301,視頻窗口100被最大化顯示。
基于tom的上述操作行為3,在host子系統(tǒng)中,videoplaybackapp進(jìn)程將最大化視頻窗口100的相關(guān)信息(比如最大化窗口的指示信息和/或窗口屬性信息等)發(fā)送給p_surface,p_surface將該信息發(fā)送給weston,weston根據(jù)該信息重新繪制視頻窗口100,以實(shí)現(xiàn)最大化顯示。
tom的操作行為4:
tom點(diǎn)擊播放控制條200中的暫停鍵201,視頻窗口100中正在播放的影片被暫停播放。
基于tom的上述操作行為4,host子系統(tǒng)中的videoplaybackapp進(jìn)程將 點(diǎn)擊暫停鍵201所產(chǎn)生的事件發(fā)送給bridgeproxy,bridgeproxy將該事件發(fā)送給guest子系統(tǒng)中的videoplaybackapp進(jìn)程對(duì)應(yīng)的bridgeservice,bridgeservice將該事件發(fā)送給guest子系統(tǒng)中的videoplaybackapp進(jìn)程,videoplaybackapp進(jìn)程響應(yīng)該事件,不再通過layer發(fā)送視頻數(shù)據(jù)給p_surface。
tom的操作行為5:
tom點(diǎn)擊播放控制條200中的播放鍵203,視頻窗口100中的視頻數(shù)據(jù)恢復(fù)播放。
基于tom的上述操作行為5,host子系統(tǒng)中的videoplaybackapp進(jìn)程將點(diǎn)擊播放鍵203所產(chǎn)生的事件發(fā)送給bridgeproxy,bridgeproxy將該事件發(fā)送給guest子系統(tǒng)中的videoplaybackapp進(jìn)程對(duì)應(yīng)的bridgeservice,bridgeservice將該事件發(fā)送給guest子系統(tǒng)中的videoplaybackapp進(jìn)程,videoplaybackapp進(jìn)程響應(yīng)該事件,繼續(xù)通過layer發(fā)送視頻數(shù)據(jù)給p_surface。
當(dāng)影片播放完畢后,視頻窗口100關(guān)閉。
基于該事件,guest子系統(tǒng)中的videoplaybackapp進(jìn)程將該事件通過bridgeservice發(fā)送給bridgeproxy,bridgeproxy將該事件發(fā)送給host子系統(tǒng)中的videoplaybackapp進(jìn)程;host子系統(tǒng)中的videoplaybackapp進(jìn)程響應(yīng)該事件,將視頻窗口100關(guān)閉,銷毀p_surface。
tom的操作行為6:
tom點(diǎn)擊退出videoplaybackapp的退出鍵400。
基于tom的上述操作行為6,host子系統(tǒng)中的videoplaybackapp進(jìn)程獲取到點(diǎn)擊退出鍵400的事件后,銷毀bridgeproxy,關(guān)閉videoplaybackapp。
綜上所述,在將本申請(qǐng)實(shí)施例應(yīng)用于android和yunos融合的場(chǎng)景中時(shí),可以使android應(yīng)用透明化,android應(yīng)用可通過sdk或ndk編譯出相應(yīng)的apk或二進(jìn)制代碼,無需對(duì)android應(yīng)用做過多改進(jìn)。
另外,本申請(qǐng)實(shí)施例可實(shí)現(xiàn)跨系統(tǒng)融合的多樣化,針對(duì)不同類型的hostsdk,比如,h5、qt、domoless、native等,可以自定義輸入接入方法。
還有,本申請(qǐng)實(shí)施例提供了應(yīng)用級(jí)內(nèi)容的融合,可在一個(gè)窗口內(nèi)展現(xiàn)yunos和android的應(yīng)用程序進(jìn)程處理的內(nèi)容,將兩種不同操作系統(tǒng)有機(jī)地融合為一體,統(tǒng)一的交互體驗(yàn),無需切換窗口來統(tǒng)一管理所有的內(nèi)容。
基于相同的技術(shù)構(gòu)思,本申請(qǐng)實(shí)施例提供了一種圖形合成系統(tǒng),可以實(shí)現(xiàn)前述實(shí)施例描述的圖形合成流程。
參見圖5,為本申請(qǐng)實(shí)施例提供的圖形合成系統(tǒng)的結(jié)構(gòu)示意圖,該系統(tǒng)可包括:第一子系統(tǒng)圖形合成器51、第二子系統(tǒng)圖形合成器52,以及第一子系統(tǒng)中的第一控件53;
第一子系統(tǒng)中的第一控件53,用于接收第二子系統(tǒng)圖形合成器52中與所述第一控件對(duì)應(yīng)的圖形對(duì)象發(fā)送的圖形數(shù)據(jù),并將所述圖形數(shù)據(jù)發(fā)送給第一子系統(tǒng)圖形合成器51。
進(jìn)一步地,第一子系統(tǒng)圖形合成器51還用于:接收第一子系統(tǒng)中的圖形對(duì)象發(fā)送的圖形數(shù)據(jù)。
進(jìn)一步地,第一子系統(tǒng)圖形合成器51還用于:對(duì)第一控件53發(fā)送的圖形數(shù)據(jù)以及第一子系統(tǒng)中的圖形對(duì)象發(fā)送的圖形數(shù)據(jù)進(jìn)行合成。
優(yōu)選地,第一控件為多個(gè),所述多個(gè)第一控件將各自接收到的圖形數(shù)據(jù)發(fā)送給第一子系統(tǒng)中的圖形對(duì)象;相應(yīng)地,第一子系統(tǒng)圖形合成器51具體用于:接收第一子系統(tǒng)中的圖形對(duì)象發(fā)送的圖形數(shù)據(jù);其中,所述圖形對(duì)象將所述多個(gè)第一控件發(fā)送的圖形數(shù)據(jù)作為本圖形對(duì)象對(duì)應(yīng)的圖形數(shù)據(jù)發(fā)送給第一子系統(tǒng)圖形合成器。
進(jìn)一步地,第一控件53還用于:接收第一子系統(tǒng)中的應(yīng)用組件發(fā)送的圖形對(duì)象設(shè)置信息;將接收到的圖形對(duì)象設(shè)置信息發(fā)送給第一子系統(tǒng)圖形合成器51。
其中,所述圖形對(duì)象為應(yīng)用程序窗口,所述圖形對(duì)象設(shè)置信息包括窗口屬性信息。
優(yōu)選地,第一子系統(tǒng)中還包括應(yīng)用組件;所述第一子系統(tǒng)中的應(yīng)用組件, 用于創(chuàng)建所述第一控件。
其中,所述第一子系統(tǒng)中的應(yīng)用組件具體用于:根據(jù)使用第二子系統(tǒng)中的圖形數(shù)據(jù)的請(qǐng)求,創(chuàng)建與第二子系統(tǒng)中用于提供圖形數(shù)據(jù)的圖形對(duì)象所對(duì)應(yīng)的第一控件53。
優(yōu)選地,第一子系統(tǒng)中還包括應(yīng)用組件;所述第一子系統(tǒng)中的應(yīng)用組件,用于銷毀所述第一控件53。
其中,所述第一子系統(tǒng)中的應(yīng)用組件具體用于:接收到第二子系統(tǒng)中與所述第一控件53對(duì)應(yīng)的圖形對(duì)象被銷毀的信息,則銷毀所述第一控件53;或者,接收到結(jié)束使用第二子系統(tǒng)中的圖形數(shù)據(jù)的指示,則銷毀與第二子系統(tǒng)中用于提供所述圖形數(shù)據(jù)的圖形對(duì)象所對(duì)應(yīng)的第一控件53。
優(yōu)選地,第一子系統(tǒng)中還包括第一應(yīng)用組件,第二子系統(tǒng)中還包括第二應(yīng)用組件;相應(yīng)地,第一子系統(tǒng)中的第一應(yīng)用組件,用于向第一子系統(tǒng)中的第一系統(tǒng)服務(wù)組件54發(fā)送控制信息,所述控制信息用于指示獲取第二子系統(tǒng)中的圖形數(shù)據(jù);第一系統(tǒng)服務(wù)組件54具體用于,將所述控制信息發(fā)送給第二子系統(tǒng)中的第二系統(tǒng)服務(wù)組件55;第二系統(tǒng)服務(wù)組件55具體用于,將所述控制信息發(fā)送給第二子系統(tǒng)中的第二應(yīng)用組件。
優(yōu)選地,所述第一子系統(tǒng)為host子系統(tǒng),所述第二子系統(tǒng)為guest子系統(tǒng)。
基于相同的技術(shù)構(gòu)思,本申請(qǐng)實(shí)施例提供了一種信息交互系統(tǒng),該系統(tǒng)可實(shí)現(xiàn)前述實(shí)施例描述的信息交互方法。
參見圖6,為本申請(qǐng)實(shí)施例提供的信息交互系統(tǒng)架構(gòu)示意圖,該系統(tǒng)可包括:第一子系統(tǒng)中的第一系統(tǒng)服務(wù)組件61、第二子系統(tǒng)中的第二系統(tǒng)服務(wù)組件62,其中:
第一子系統(tǒng)中的第一系統(tǒng)服務(wù)組件61,用于接收第一子系統(tǒng)中的第一應(yīng)用組件發(fā)送的第一信息,并將所述第一信息發(fā)送給第二子系統(tǒng)中的第二系統(tǒng)服務(wù)組件62;
第二系統(tǒng)服務(wù)組件62,用于將所述第一信息發(fā)送給第二子系統(tǒng)中的第二應(yīng)用組件。
優(yōu)選地,所述第二系統(tǒng)服務(wù)組件62還用于:接收所述第二應(yīng)用組件發(fā)送的第二信息,將所述第二信息發(fā)送給所述第一系統(tǒng)服務(wù)組件61;其中,所述第二信息為所述第一應(yīng)用組件根據(jù)所述第一信息得到的。相應(yīng)地,第一系統(tǒng)服務(wù)組件61還用于:將所述第二信息發(fā)送給所述第一應(yīng)用組件。
優(yōu)選地,第一應(yīng)用組件具體用于:在以下之一或多種情況下,向所述第一系統(tǒng)服務(wù)組件61發(fā)送第一信息:
需要使用第二子系統(tǒng)中的圖形數(shù)據(jù);
需要通知第二子系統(tǒng)中的應(yīng)用組件進(jìn)行處理。
優(yōu)選地,所述信息包括:控制信息和/或數(shù)據(jù)。
優(yōu)選地,所述第一子系統(tǒng)為host子系統(tǒng),所述第二子系統(tǒng)為guest子系統(tǒng);或者,所述第一子系統(tǒng)為guest子系統(tǒng),所述第二子系統(tǒng)為host子系統(tǒng)。
本申請(qǐng)是參照根據(jù)本申請(qǐng)實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處 理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
盡管已描述了本申請(qǐng)的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本申請(qǐng)范圍的所有變更和修改。
顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本申請(qǐng)進(jìn)行各種改動(dòng)和變型而不脫離本申請(qǐng)的精神和范圍。這樣,倘若本申請(qǐng)的這些修改和變型屬于本申請(qǐng)權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本申請(qǐng)也意圖包含這些改動(dòng)和變型在內(nèi)。