CN115617427A - 应用的跨平台显示方法、可读介质和电子设备 - Google Patents
应用的跨平台显示方法、可读介质和电子设备 Download PDFInfo
- Publication number
- CN115617427A CN115617427A CN202110791240.8A CN202110791240A CN115617427A CN 115617427 A CN115617427 A CN 115617427A CN 202110791240 A CN202110791240 A CN 202110791240A CN 115617427 A CN115617427 A CN 115617427A
- Authority
- CN
- China
- Prior art keywords
- application
- window
- system platform
- desktop
- android
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
- Digital Computer Display Output (AREA)
Abstract
本申请涉及计算机技术领域,公开了一种应用的跨平台显示方法、可读介质和电子设备。包括:第一***平台获取第二***平台上运行的第一应用的第一窗口的第一尺寸,并在第一***平台中创建对应第一应用的第三窗口,其中第三窗口用于显示第二***平台上运行的第一应用的显示界面;第一***平台获取第二***平台上运行的第二应用的第二窗口的第二尺寸,并在第一***平台中创建对应第二应用的第四窗口,其中第四窗口用于显示第二***平台上运行的第二应用的显示界面。从而实现在第一***平台上显示多个第二***平台上运行的第二应用的显示界面。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种应用的跨平台显示方法、可读介质和电子设备。
背景技术
发明内容
本申请实施例提供了一种应用的跨平台显示方法、可读介质和电子设备。
第一方面,本申请实施例提供了一种应用的跨平台显示方法,包括:第一***平台获取第二***平台上运行的第一应用的第一窗口的第一尺寸,并在第一***平台中创建对应第一应用的第三窗口,其中第三窗口用于显示第二***平台上运行的第一应用的显示界面;第一***平台获取第二***平台上运行的第二应用的第二窗口的第二尺寸,并在第一***平台中创建对应第二应用的第四窗口,其中第四窗口用于显示第二***平台上运行的第二应用的显示界面。
例如,第一***平台可以是下文中的运行于第二电子设备上的第二操作***,例如,***,也称桌面***;第二***平台可以是下文中运行于第一电子设备上的第二操作***,例如,***,也称安卓***;第二***平台也可以是下文中运行于第三电子设备上的虚拟机上的第二操作***,例如,***,也称安卓***。其中,第二电子设备和第三电子设备可以是电脑,第一电子设备可以是手机。
例如,第一应用的第一窗口可以是下文的“计算器”应用的安卓应用窗口。第一应用的第三窗口可以是下文的“计算器”应用的桌面应用窗口。第一应用的第一窗口的第一尺寸可以是下文中的“计算器”应用的安卓应用窗口的参数,其中,安卓应用窗口的参数包括但不限于安卓应用窗口的标识、安卓应用窗口的尺寸以及窗口区域位置坐标等。
例如,第二应用的第二窗口可以是下文的“设置”应用的安卓应用窗口。第二应用的第四窗口可以是下文的“设置”应用的桌面应用窗口。第二应用的第二窗口的第二尺寸可以是下文中的“计算器”应用的安卓应用窗口的参数。
例如,手机可以将“计算器”的安卓应用窗口的参数发送给电脑,其中,安卓应用窗口的参数包含安卓应用窗口的尺寸以及窗口区域位置坐标;电脑基于接收的“计算器”应用的安卓应用窗口的参数创建桌面应用窗口并将桌面应用窗口的窗口句柄发送手机,其中,桌面应用窗口的窗口句柄用于唯一标识桌面应用窗口;手机使用接收的窗口句柄生成绘图信息并将绘图信息发送给电脑;电脑可以基于接收的绘图信息调用电脑的图形库对桌面应用窗口进行图像渲染;如下文中的图1B所示,从而实现“计算器”应用的桌面应用窗口显示安卓应用“计算器”的内容。可以理解,根据上述方法,如下文中的图1C所示,电脑可以启动多个安卓应用,创建多个安卓应用窗口并同时显示多个安卓应用的内容。
在上述第一方面的一种可能的实现中,上述方法还包括:第一***平台在检测到用户在第一***平台中打开第一应用或者第二应用的情况下,从所述第二***平台获取所述第一尺寸或第二尺寸。
例如,电脑可以同步显示手机的安卓应用。例如,手机与电脑建立分布式连接后,电脑可以通过在电脑的桌面上创建安卓应用的快捷方式从而实现电脑同步显示安卓应用。电脑可以通过检测到用户打开电脑的桌面上创建安卓应用的快捷方式的操作,获得启动的安卓应用的参数。
例如,电脑还可以在显示界面上创建安卓应用的显示按钮。电脑还可以通过检测到用户打开电脑的显示窗口上创建的安卓应用的显示按钮的操作,获得安卓应用的参数。
例如,手机可以基于安卓应用的参数,启动安卓应用。其中,在启动安卓应用的过程中,手机会创建该应用的安卓应用窗口,手机将安卓应用窗口的参数发送给电脑。
在上述第一方面的一种可能的实现中,上述方法还包括:第二***平台不显示第一窗口和第二窗口。
例如,安卓应用可以启动在手机的虚拟屏上,也可以启动在手机的显示屏上,当安卓应用启动在手机的虚拟屏上时,可以实现电脑启动安卓应用,并且启动安卓应用的显示内容只在电脑上显示。例如,如图1B所示,安卓应用“计算器”的内容只在电脑上显示。从而使得在不影响手机正常使用的情况下实现跨平台应用分布式应用显示。
可以理解,由下文的图10所示,手机的显示屏可以不显示“视频播放器”应用的安卓应用窗口,桌面应用窗口执行“视频播放器”应用的绘图信息实现视频图像渲染并消耗电脑的GPU资源,安卓应用窗口不执行该指令从而不消耗手机的GPU资源,从而实现既可以在电脑上显示手机的应用的显示界面,又可以不消耗手机的GPU资源。
在上述第一方面的一种可能的实现中,上述方法还包括:在第一***平台中创建对应第一应用的第三窗口,或者在第一***平台中创建对应第二应用的第四窗口,包括:第一***平台为第一应用设置第一标识,或者第一***平台为第二应用设置第二标识;其中第一标识用于标识第三窗口用于显示第一应用的显示界面,第二标识用于标识第四窗口用于显示第二应用的显示界面。
例如,第一标识可以是“计算器”应用的桌面应用窗口的窗口句柄,第二标识可以是“设置”应用的桌面应用窗口的窗口句柄。其中,“计算器”应用的桌面应用窗口的窗口句柄用于唯一标识“计算器”应用的桌面应用窗口;“设置”应用的桌面应用窗口的窗口句柄用于唯一标识“设置”应用的桌面应用窗口。
可以理解,电脑基于安卓应用窗口的参数,创建桌面应用窗口,并为创建的桌面应用窗口分配窗口句柄。其中,分配的窗口句柄用于唯一标识创建的桌面应用窗口。例如,电脑创建10个桌面应用窗口,电脑给每个桌面应用窗口分配一个窗口句柄;当电脑对桌面应用窗口进行操作时,需要先获取该桌面应用窗口的窗口句柄才可以对该桌面应用窗口进行操作。
在上述第一方面的一种可能的实现中,上述方法还包括:第一***平台向第二***平台发送第一标识或第二标识。
例如,手机接收电脑发送的桌面应用窗口的窗口句柄后,继续创建安卓应用窗口,并将安卓应用窗口与桌面应用窗口的窗口句柄关联。在手机继续创建安卓应用窗口的过程中,安卓应用窗口与桌面应用窗口的窗口句柄关联,手机可以使用窗口句柄生成的绘图信息,从而使得生成的绘图信息可以直接在电脑上被执行。
在上述第一方面的一种可能的实现中,上述方法还包括:第一***平台通过以下方式在第三窗口中显示第二***平台上运行的第一应用:第一***平台从第二***平台接收第一绘图信息,其中第一绘图信息包括第一标识;第一***平台根据第一绘图信息所包括的第一标识,在第三窗口中显示根据第一绘图信息所绘制的,第一应用的第一显示界面。
例如,第一绘图信息可以是“计算器”应用的绘图信息,电脑可以根据接收的“计算器”应用的绘图信息调用电脑的图像库,例如EGL、OpenGL等,第一显示界面可以是电脑调用图像库进行图像渲染,获得的在“计算器”的桌面应用窗口上用于显示“计算器”应用的显示界面。
可以理解,手机只需要向电脑发送安卓应用窗口的参数以及绘图信息,电脑基于接收的安卓应用窗口的参数以及绘图信息创建桌面应用窗口并调用图形库绘制窗口显示内容,从而实现在电脑上启动并显示安卓应用的内容。相较于现有的投屏技术的跨平台应用分布式显示,本申请的应用分布式显示不需要在设备之间传输大量视频图像数据即可实现分布式显示。
在上述第一方面的一种可能的实现中,上述方法还包括:第一***平台通过以下方式在第四窗口中显示第二***平台上运行的第二应用:第一***平台从第二***平台接收第二绘图信息,其中第二绘图信息包括第二标识;第二***平台根据第二绘图信息所包括的第二标识,在第四窗口中显示根据第二绘图信息所绘制的,第二应用的第二显示界面。
例如,第二绘图信息可以是“设置”应用的绘图信息,电脑可以根据接收的“设置”应用的绘图信息调用电脑的图像库,例如EGL、OpenGL等,第二显示界面可以是电脑调用图像库进行图像渲染,获得的在“设置”的桌面应用窗口上用于显示“计算器”应用的显示界面。
在上述第一方面的一种可能的实现中,上述方法还包括:第一***平台检测到用户对第一***平台上的第三窗口的第一操作;第一***平台生成操作信息,并将操作信息发送给第二***平台,其中,操作信息包括第一标识;第一***平台从第二***平台接收第三绘图信息,其中第三绘图信息包括第一标识,并且第三绘图信息是第二***平台,通过执行操作信息对应的操作生成的;第一***平台基于第三绘图信息在第三窗口中显示第三显示界面,其中第三显示界面为第一显示界面对应第一操作改变后的显示界面。
例如,如下文的图1B所示,桌面应用窗口中的显示内容可以是“计算器”应用的桌面应用窗口中的数字或运算符号等;桌面应用窗口大小可以是“计算器”应用的桌面应用窗口在显示界面的位置、“计算器”应用的桌面应用窗口的显示区域大小等;“计算器”应用的桌面应用窗口状态可以是打开、关闭、最小化等。
如图1B所示,电脑基于接收的安卓应用窗口的参数以及绘图信息创建桌面应用窗口并调用图形库绘制窗口显示内容,从而实现图1B中的“计算器”应用的桌面应用窗口的显示。因此,安卓应用窗口的窗口区域的绝对坐标与桌面应用窗口的窗口区域的绝对坐标具有映射关系,即手机可以基于操作信息中的操作位置坐标对安卓应用窗口显示的内容进行重新绘制,生成操作绘图信息。
例如,第三绘图信息可以是下文的“计算器”应用的操作绘图信息。例如,用户对手机的“计算器”应用的桌面应用窗口进行“放大”操作,电脑的桌面***检测到桌面应用窗口的“放大”操作,电脑的桌面***生成“放大”操作的窗口区域位置坐标以及操作位置坐标,桌面***将“放大”的控制操作信息发送给手机的手机代理进程;手机的手机代理进程基于接收的窗口区域位置坐标以及操作位置坐标,通过调用ActivityTaskManagerService的resize Task接口调整安卓应用窗口的位置坐标。手机的安卓***调整“计算器”应用的安卓应用窗口的区域坐标,并生成操作绘图信息。该操作绘图信息用于绘制放大后的“计算器”应用的桌面应用窗口显示的内容。
例如,第三绘图信息也可以是下文的“设置”应用的操作绘图信息。例如,“设置”应用的桌面应用窗口的区域位置坐标与安卓应用窗口的区域位置坐标的相对位置坐标具有映射关系。如下文的图13A所示,手机的安卓***基于“设置选项4”的按钮图标的区域位置坐标检测到对设置选项4的操作。手机的安卓***通过调用InputManagerService服务接口对“设置”应用的安卓应用窗口关联的任务标识对应的任务执行控制操作,并生成操作绘图信息。例如,设置选项4为飞行模式,按钮图标为飞行模式的状态开关按钮。手机的安卓***通过调用InputManagerService服务接口打开飞行模式,并生成操作绘图信息,生成的操作绘图信息用于绘制飞行模式打开后的显示窗口。
在上述第一方面的一种可能的实现中,上述方法还包括:第一操作包括以下操作中的至少一种:改变第一显示界面的大小的操作;对第一显示界面中的控件的操作。
例如,用户对第一***平台上的第三窗口的第一操作可以是用户通过鼠标、键盘以及触摸等对“计算器”应用的桌面应用窗口中的显示内容(例如,显示界面的控件)、窗口状态以及窗口大小等进行的控制操作。其中,操作信息可以包括桌面应用窗口的尺寸、窗口区域位置坐标以及操作位置坐标等。
在上述第一方面的一种可能的实现中,上述方法还包括:第一***平台和第二***平台具有不同的操作***。
在上述第一方面的一种可能的实现中,上述方法还包括:第一***平台和第二***平台运行于不同的电子设备上。
在上述第一方面的一种可能的实现中,上述方法还包括:第一***平台为运行于电子设备上的虚拟机上的操作***,第二***平台为电子设备的操作***。
第二方面,本申请实施里提供了一种应用的跨平台显示方法,其特征在于,包括:第二***平台上运行有第一应用;第一***平台从第二***平台获取第一应用的第一窗口的第一尺寸;第一***平台在第一***平台中创建对应第一应用的第三窗口和第一标识,其中第一标识用于标识第三窗口用于显示第一应用的显示界面;第二***平台从第一***平台接收到第一标识后,生成第一绘图信息,其中第一绘图信息包括第一标识;第一***平台从第二***平台接收第一绘图信息,并根据第一绘图信息所包括的第一标识,在第三窗口中显示根据第一绘图信息所绘制的,第一应用的第一显示界面。
在上述第二方面的一种可能的实现中,上述方法还包括:第一***平台在检测到用户在第一***平台中打开第一应用的情况下,第一***平台将第一应用信息发送给第二***平台;第二***平台根据第一应用信息运行第一应用,并在第二***平台中创建第一应用的第一窗口;第二***平台将第一应用的第一窗口的第一尺寸发送给第一***平台。
在上述第二方面的一种可能的实现中,上述方法还包括:第二***平台不显示第一窗口。
在上述第二方面的一种可能的实现中,上述方法还包括:第一***平台检测到用户对第一***平台上的第三窗口的第一操作;第一***平台生成操作信息,并将操作信息发送给第二***平台,其中,操作信息包括第一标识;第二***平台通过执行操作信息对应的操作生成第三绘图信息,并将第三绘图信息发送给第一***平台;第一***平台基于第三绘图信息在第三窗口中显示第三显示界面,其中第三显示界面为第一显示界面对应第一操作改变后的显示界面。
在上述第二方面的一种可能的实现中,上述方法还包括:第一操作包括以下操作中的至少一种:改变第一显示界面的大小的操作;对第一显示界面中的控件的操作。
在上述第二方面的一种可能的实现中,上述方法还包括:第一***平台和第二***平台具有不同的操作***,其中,第一***平台和第二***包括以下至少一种:第一***平台和第二***平台运行于不同的电子设备上;第一***平台为运行于电子设备上的虚拟机上的操作***,第二***平台为电子设备的操作***。
第三方面,本申请实施里提供了一种应用的跨平台显示方法,其特征在于,包括:第二***平台上运行有第一应用;第二***平台向第一***平台发送第一应用的第一窗口的第一尺寸;第二***平台从第一***平台接收到第一标识后,生成第一绘图信息,其中第一标识用于标识:第一***平台中的第三窗口用于显示第一应用的显示界面,并且第一绘图信息包括第一标识,并且第一绘图信息能够被第一***平台用于绘制在第三窗口中显示的第一应用的第一显示界面。
第四方面,本申请实施例提供了一种可读介质,可读介质上存储有指令,该指令在电子设备上执行时使电子设备执行上述第一方面至第三方面以及第一方面至第三方面的各种可能实现中的任意一种应用的跨平台显示方法。
第五方面,本申请实施例提供了一种电子设备,包括:
存储器,用于存储由电子设备的一个或多个处理器执行的指令,以及
处理器,是电子设备的处理器之一,用于执行上述第一方面至第三方面以及第一方面至第三方面的各种可能实现中的任意一种应用的跨平台显示方法。
附图说明
图1A根据本申请的一些实施例,示出了一种手机与电脑建立分布式显示连接示意图;
图1B根据本申请的一些实施例,示出了一种“设置”应用的分布式显示示意图;
图1C根据本申请的一些实施例,示出了一种多个应用的分布式显示示意图;
图1D根据本申请的一些实施例,示出了一种应用的显示窗口“放大”示意图;
图2根据本申请的一些实施例,示出了一种应用的跨平台显示***的场景图;
图3根据本申请的一些实施例,示出了一种应用的跨平台显示***的跨平台应用分布式显示交互图;
图4根据本申请的一些实施例,示出了另一种应用的跨平台显示***的跨平台应用分布式显示交互图;
图5根据本申请的一些实施例,示出了一种启动手机代理进程的监听功能的示意图;
图6根据本申请的一些实施例,示出了一种启动桌面代理进程的监听功能的示意图;
图7根据本申请的一些实施例,示出了一种手机与电脑成功建立分布式显示连接的示意图;
图8根据本申请的一些实施例,示出了一种电脑显示界面显示安卓应用的示意图;
图9根据本申请的一些实施例,示出了另一种电脑显示界面显示安卓应用的示意图;
图10根据本申请的一些实施例,示出了一种“视频播放器”应用的分布式显示示意图;
图11根据本申请的一些实施例,示出了一种对安卓应用的桌面应用窗口进行“放大”操作的交互图;
图12根据本申请的一些实施例,示出了一种“计算器”应用的桌面应用窗口大小调整前后的示意图;
图13A根据本申请的一些实施例,示出了一种调整前的“设置”应用的桌面应用窗口的显示示意图;
图13B根据本申请的一些实施例,示出了一种调整后的“设置”应用的桌面应用窗口的显示示意图;
图14根据本申请的一些实施例,示出了一种对安卓应用的桌面应用窗口的显示内容进行控制操作的交互图;
图15根据本申请的一些实施例,示出了另一种跨平台应用分布式显示的场景图;
图16根据本申请的一些实施例,示出了另一种跨平台分布式显示的交互图;
图17根据本申请的一些实施例,示出了另一种启动桌面代理进程的监听功能的示意图;
图18根据本申请的一些实施例,示出了一种虚拟机与电脑成功建立分布式显示连接的示意图;
图19根据本申请的一些实施例,示出了另一种“视频播放器”应用的分布式显示示意图;
图20根据本申请的一些实施例,示出了一种电子设备的结构示意图;
图21根据本申请的一些实施例,示出了一种电子设备的软件结构框图;
图22根据本申请的一些实施例,示出了另一种电子设备的结构示意图;
图23根据本申请的一些实施例,示出了另一种电子设备的软件结构框图。
具体实施方式
本申请的说明性实施例包括但不限于应用的跨平台显示方法、可读介质和电子设备。
为了解决上述问题,本申请提供了一种应用的跨平台显示方法,可以适用于分别安装不同操作***的两个电子设备,也可以适用于一个设备安装两个操作***的情况。
例如,如图1A所示,针对安装安卓***的手机100以及安装***的电脑200,电脑200和手机100建立连接后,电脑200可以通过向手机100发送安卓应用“计算器”的参数来启动安卓应用“计算器”;手机100可以基于接收的“计算器”的参数生成“计算器”的安卓应用窗口,手机100可以将“计算器”的安卓应用窗口的参数发送给电脑200,其中,安卓应用窗口的参数包含安卓应用窗口的尺寸以及窗口区域位置坐标;电脑200基于接收的“计算器”的安卓应用窗口的参数创建桌面应用窗口并将桌面应用窗口的窗口句柄发送手机100,其中,桌面应用窗口的窗口句柄用于唯一标识桌面应用窗口;手机100使用接收的窗口句柄生成绘图信息并将绘图信息发送给电脑200;电脑200可以基于接收的绘图信息调用电脑200的图形库对桌面应用窗口进行图像渲染;如图1B所示,从而实现桌面应用窗口2003-2显示安卓应用“计算器”的内容。可以理解,根据上述方法,如图1C所示,电脑200可以启动多个安卓应用,创建多个安卓应用窗口并同时显示多个安卓应用的内容。
进一步地,电脑200还可以对桌面应用窗口2003-2中的显示内容或者窗口大小等进行控制操作。例如,电脑200对桌面应用窗口2003-2进行“放大”操作,生成操作信息;电脑200可以将操作信息发送给手机100,其中,操作信息可以包括桌面应用窗口的尺寸、窗口区域位置坐标以及操作位置坐标等;手机100可以基于操作信息调整“计算器”的安卓应用窗口,并生成操作绘图信息;手机100将生成的操作绘图信息发送给电脑200;电脑200基于操作绘图信息调用电脑200的图形库中的函数对桌面应用窗口进行图像渲染;如图1D所示,从而实现对桌面应用窗口2003-2的“放大”。
为使本申请的目的、技术方案和优点更加清楚,下面结合图1至图23详细说明本申请的技术方案。
图2根据本申请的一些实施例示出了一种应用的跨平台显示***20的场景图。
具体地,如图2所示,应用的跨平台显示***20包括第一电子设备100、第二电子设备200;第一电子设备100可以与第二电子设备200建立。其中,第一电子设备100可以运行第一操作***11;第二电子设备200可以运行第二操作***21。
如图2所示,第一电子设备100的显示界面110可以是第一操作***11的用户操作界面。第二电子设备200的显示界面210可以是第二操作***21的用户操作界面。
在一些实施例中,第一操作***11可以是鸿蒙操作***(harmony operatingsystem,HarmonyOS)、苹果操作***(iPhone operation system,iOS)、操作***、phone操作***、操作***、操作***等。第二操作***21可以是操作***、操作***、MAC操作***(operationsystem,OS)等。
在一些实施例中,第一电子设备100可以通过、蓝牙、WIFI、或NFC等无线通信方式与第二电子设备200通信连接。第一电子设备100也可以通过有线通信方式与第二电子设备200通信连接,例如,第一电子设备100通过数据线以及通用串行总线(Universal SerialBus,USB)接口与第二电子设备200通信连接。
在一些实施例中,第一电子设备100和第二电子设备200可以是能够互相通信的各种计算设备,例如,第一电子设备100或第二电子设备200可以包括但不限于,膝上型计算机、台式计算机、平板计算机、手机、服务器、可穿戴设备、头戴式显示器、移动电子邮件设备、车机设备、便携式游戏机、便携式音乐播放器、阅读器设备、其中嵌入或耦接有一个或多个处理器的电视机、或能够访问网络的其他电子设备。
下文以第一电子设备100为手机100,第一操作***为操作***,第二电子设备200为电脑200,第二操作***为操作***为例说明本申请的方案。下文操作***简称安卓***,操作***简称桌面***。
图3根据本申请的一些实施例示出了一种应用的跨平台显示***应用的跨平台显示***20的跨平台应用分布式显示交互图。
如图3所示,应用的跨平台显示***应用的跨平台显示***20的应用的跨平台显示方法的过程包括以下步骤:
S301:手机100与电脑200建立分布式显示连接。
在本申请的一些实施例中,手机100与电脑200建立有线通信连接或无线通信后,电脑200可以获知手机100的验证码,并对手机100的验证码进行验证,从而实现与手机100建立分布式显示连接。其中,手机100的验证码可以是手机100的IP地址,也可以是手机100生成的随机码等。电脑200对手机100的验证码进行验证的过程下文做详细描述,在此不做赘述。
S302:电脑200检测到启动安卓应用的操作,获得启动的安卓应用的安卓应用的参数。
在本申请的一些实施例中,安卓应用的参数包括安卓应用的包名、类名,手机100可以根据安卓应用的参数打开安卓应用。例如,电脑200可以检测到用户在电脑200上打开安卓应用的操作,电脑200从而生成打开安卓应用的指令。
在本申请的一些实施例中,电脑200可以同步显示手机100的安卓应用。例如,手机100与电脑200建立分布式连接后,电脑200可以通过在电脑200的桌面上创建安卓应用的快捷方式从而实现电脑200同步显示安卓应用。电脑200可以通过检测到用户打开电脑200的桌面上创建安卓应用的快捷方式的操作,获得启动的安卓应用的参数。
在本申请的其他一些实施例中,电脑200可以在显示界面上创建安卓应用的显示按钮。电脑200还可以通过检测到用户打开电脑200的显示窗口上创建的安卓应用的显示按钮的操作,获得安卓应用的参数。
S303:电脑200将安卓应用的参数发送给手机100。
S304:手机100基于安卓应用的参数启动应用,创建安卓应用窗口。
在本申请的一些实施例中,手机100可以基于安卓应用的参数,启动安卓应用。其中,在启动安卓应用的过程中,手机100会创建该应用的安卓应用窗口。在创建安卓应用窗口的过程中,手机100先将安卓应用窗口的参数发送给电脑200。电脑200可以基于安卓应用窗口的参数创建桌面应用窗口。其中,安卓应用窗口的参数包括但不限于安卓应用窗口的标识、安卓应用窗口的尺寸以及窗口区域位置坐标等。
在本申请的实施例中,安卓应用可以启动在手机100的虚拟屏上,也可以启动在手机100的显示屏上,当安卓应用启动在手机100的虚拟屏上时,可以实现电脑200启动安卓应用,并且启动安卓应用的显示内容只在电脑200上显示。例如,如图1B所示,安卓应用“计算器”的内容只在电脑200上显示。从而使得在不影响手机100正常使用的情况下实现跨平台应用分布式应用显示。
S305:手机100向电脑200发送安卓应用窗口的参数。
S306:电脑200基于安卓应用窗口的参数,创建桌面应用窗口。
在本申请的实施例中,电脑200基于安卓应用窗口的参数,创建桌面应用窗口,并为创建的桌面应用窗口分配窗口句柄。其中,分配的窗口句柄用于唯一标识创建的桌面应用窗口。
例如,电脑200创建10个桌面应用窗口,电脑200给每个桌面应用窗口分配一个窗口句柄;当电脑200对桌面应用窗口进行操作时,需要先获取该桌面应用窗口的窗口句柄才可以对该桌面应用窗口进行操作。
S307:电脑200向手机100发送桌面应用窗口的窗口句柄。
S308:手机100继续创建安卓应用窗口,并将安卓应用窗口与桌面应用窗口的窗口句柄关联。
在本申请的一些实施例中,手机100接收到桌面应用窗口的窗口句柄后,继续创建安卓应用窗口,并将安卓应用窗口与桌面应用窗口的窗口句柄关联。
例如,在手机100继续创建安卓应用窗口的过程中,安卓应用窗口与桌面应用窗口的窗口句柄关联,手机100可以使用窗口句柄生成的绘图信息,从而使得生成的绘图信息可以直接在电脑200上被执行。
S309:手机100使用窗口句柄创建绘图信息。
在本申请的一些实施例中,绘图信息用于调用嵌入式图形库(Embedded-SystemGraphics Library,EGL)、开放图像库(Open Graphics Library,OpenGL)等绘制安卓应用的显示内容。
在本申请的一些实施例中,手机100生成绘图信息既可以在手机100上执行实现安卓应用窗口的图像渲染,完成安卓应用的显示内容在桌面应用窗口上的显示。在本申请的其他一些实施例中,手机100生成绘图信息也可以不在手机100上执行,从而实现在不影响手机100正常使用的情况下也不消耗手机100的GPU性能。下文对此作详细描述,在此不做赘述。
例如,绘图信息用于调用嵌入式图形库(Embedded-System Graphics Library,EGL)或开放图像库(Open Graphics Library,OpenGL)绘制安卓应用的显示内容,其中,手机100通过将绘图信息发送给电脑200,电脑200执行绘图信息实现电脑200的桌面应用窗口显示渲染图像,从而实现安卓应用在电脑200的桌面应用窗口的显示。具体地,手机100将绘图信息发送给电脑200,电脑200执行绘图信息,以使用OpenGL进行绘制图像。其中,手机100创建渲染表面,即EGLSurface使用接口时,在NativeWindowType的选项中,手机100将电脑200发送的窗口句柄(例如,native_window)替换安卓应用窗口的窗口句柄,从而实现手机100创建的绘图信息可以在电脑200上执行,并且在电脑200打开多个安卓应用的桌面应用窗口的情况下,根据绘图信息包含的窗口句柄的信息,确定需要重新绘制图像的桌面应用窗口。
在一些实施例中,当电脑200使用OpenGL绘制结束后,使用eglSwapBuffers方法交换前后缓冲,将绘制内容显示到电脑200的显示屏上;当绘制结束不再需要使用EGL时,电脑200取消eglMakeCurrent的绑定,销毁EGLDisplay、EGLSurface、EGLContext,释放EGL环境。
S310:手机100向电脑200发送绘图信息。
S311:电脑200执行绘图信息在桌面应用窗口上显示安卓应用的内容。
在本申请的一些实施例中,电脑200根据绘图信息调用电脑200的图像库,例如EGL、OpenGL等,实现对桌面应用窗口进行图像渲染,完成安卓应用的显示内容在桌面应用窗口上的显示。具体内容下文做详细描述,在此不做赘述。
由步骤S301至步骤S311可知,手机100只需要向电脑200发送安卓应用窗口的参数以及绘图信息,电脑200基于接收的安卓应用窗口的参数以及绘图信息创建桌面应用窗口并调用图形库绘制窗口显示内容,从而实现在电脑200上启动并显示安卓应用的内容。相较于现有的投屏技术的跨平台应用分布式显示,本申请的应用分布式显示不需要在设备之间传输大量视频图像数据即可实现分布式显示。
S312:电脑200检测到桌面应用窗口的控制操作,生成操作信息。
在本申请的实施例中,电脑200检测到用户对桌面应用窗口的控制操作,并生成操作信息。例如,用户通过鼠标、键盘以及触摸等对桌面应用窗口中的显示内容(例如,显示界面的控件)、窗口状态以及窗口大小等进行控制操作。其中,操作信息可以包括桌面应用窗口的尺寸、窗口区域位置坐标以及操作位置坐标等。
例如,如图1B所示,桌面应用窗口中的显示内容(例如,显示界面的控件)可以是桌面应用窗口2003-2中的数字或运算符号等;桌面应用窗口大小可以是桌面应用窗口2003-2在显示界面210的位置、桌面应用窗口2003-2的显示区域大小等;桌面应用窗口2003-2状态可以是打开、关闭、最小化等。
S313:电脑200将操作信息发送给手机100。
S314:手机100基于操作信息,生成操作绘图信息。
在本申请的一些实施例中,电脑200向手机100发送的操作信息包含安卓应用窗口的任务标识,通过该任务标识,在图1C所示的多窗口显示时,手机100可以确定需要重新绘制图像的安卓应用窗口。
如图1B所示,电脑200基于接收的安卓应用窗口的参数以及绘图信息创建桌面应用窗口并调用图形库绘制窗口显示内容,从而实现图1B中的桌面应用窗口2003-2的显示。因此,安卓应用窗口的窗口区域的绝对坐标与桌面应用窗口的窗口区域的绝对坐标具有映射关系,即手机100可以基于操作信息中的操作位置坐标对安卓应用窗口显示的内容进行重新绘制,生成操作绘图信息。具体内容参考步骤S310生成绘图信息的内容,在此不做赘述。
S315:手机100将操作绘图信息发送给电脑200。
S316:电脑200执行操作绘图信息,重新渲染桌面应用窗口显示的图像。具体内容参考步骤S311生成绘图信息的内容,在此不做赘述。
可以理解,根据上述描述的内容,电脑200基于接收的安卓应用窗口的参数以及绘图信息创建桌面应用窗口并调用图形库绘制窗口显示内容,从而实现图1B中的桌面应用窗口2003-2的显示。并且如图1B所示,手机100可以将“设置”应用启动并运行在手机100的虚拟屏上,从而实现在不影响手机100使用的情况下实现跨平台应用分布式应用显示。
进一步地,电脑200检测到桌面应用窗口的控制操作生成操作信息,手机100基于电脑200生成的操作信息生成操作绘图信息,电脑200基于操作绘图信息对桌面应用窗口进行重新绘制,在桌面应用窗口上显示控制操作后的安卓应用的内容。从而实现用户通过鼠标、键盘、触摸等可以对图1B所示的桌面应用窗口2003-2中的数字或运算符号进行操作,也可以移动图1B所示的桌面应用窗口2003-2在显示界面21的位置,还可以放大、缩小、关闭、最小化图1B所示的桌面应用窗口2003-2。
在本申请的其他实施例中,电脑200可以包括桌面代理进程201,手机100可以包括手机代理进程101;图4示出了另一种应用的跨平台显示***20的跨平台应用分布式显示交互图。如图4所示,跨平台应用分布式显示具体过程如下:
S401:手机100检测到手机代理进程101中启动监听的操作。
在本申请的一些实施例中,手机代理进程101用于提供手机100的IP地址,并且手机100通过手机代理进程101开启监听功能;手机100开启监听后,桌面***21可以通过手机100的IP地址与安卓***11建立连接。
在本申请的一些实施例中,手机代理进程101可以是安装在手机100的应用,打开手机代理进程101,手机代理进程101的显示界面可以显示关闭监听的按钮、启动监听的按钮以及手机100的IP地址等。
例如,如图5(a)所示,用户可以通过点击手机100的显示界面101上的“手机代理”图标启动手机代理进程101;启动手机代理进程101后,如图5(b)所示,用户可以通过点击显示界面102上的“启动监听”按钮开启手机代理进程101的监听功能。其中,如图5(c)所示,用户还可以通过查看手机100的***通知确定手机代理进程101的监听功能是否已经打开。例如,如图5(d)所示,当手机代理进程101的监听功能打开时,会出现***通知窗口103。
例如,如图5(b)所示,显示界面102中的监听地址10.1.1.1为手机100的IP地址,电脑200的桌面代理进程201可以根据手机100的IP地址与手机100的手机代理进程101建立连接,在本申请的其他实施例中,手机100的IP地址也可以设置为是11.1.1.1。需要说明的是,在具体实现过程中,本申请对手机100的IP地址的具体内容不做具体限定。
在本申请的其他实施例中,用户也可以通过其他方式启动手机100的手机代理进程101,并开启手机代理进程101的监听功能,根据实际应用情况本申请对此不做具体限定。
S402:电脑200检测到电脑200的桌面代理进程201中启动监听的操作。
在本申请的一些实施例中,桌面代理进程201可以用于输入手机100的IP地址,桌面代理进程201还可以用于提供手机100与电脑200的通信连接方式,桌面代理进程201还可以用于开启电脑200的监听功能。
在本申请的一些实施例中,桌面代理进程201可以是安装在电脑200的软件,打开桌面代理进程201,桌面代理进程201的显示界面220可以显示用于输入手机100的IP地址的输入框,桌面代理进程201的显示界面220还可以用于显示手机100与电脑200的通信连接方式,例如,USB连接或wifi连接;桌面代理进程201的显示界面220还可以显示启动监听的按钮,桌面代理进程201还可以用于显示桌面***21与安卓***11是否连接成功。
在本申请的实施例中,如图6(a)所示,用户可以通过点击电脑200的显示界面210上桌面代理的快捷方式图标211启动桌面代理进程201;启动桌面代理进程201后,如图6(b)所示,用户可以在“输入框”221上输入手机100的IP地址,然后点击“连接”按钮222开启桌面代理进程201的监听功能。
在本申请的其他实施例中,用户也可以通过其他方式启动电脑200的桌面代理进程201,并开启桌面代理进程201的监听功能;根据实际应用情况本申请对此不做具体限定。
S403:手机100的手机代理进程101与电脑200的桌面代理进程201之间发送/返回请求,建立分布式显示连接。
在本申请的一些实施例中,手机100与电脑200可以通过有线方式或无线方式进行网络连接。基于手机100与电脑200建立的网络连接,用户可以开启手机100的手机代理进程101的监听功能并获得手机100的IP地址;然后,用户在桌面***21上输入手机100的IP地址并点击“连接”按钮,桌面代理进程201获知手机100的IP地址后,电脑200的桌面代理进程201与手机100的手机代理进程101发送/返回请求,其中发送/返回的请求可以socket请求(套接字请求)。socket请求用于无线网络或者有线网络中不同电子设备之间,不同电子设备的应用程序之间进行双向通信。
手机100的手机代理进程101与电脑200的桌面代理进程201之间发送/返回请求,建立分布式显示连接。如图7所示,手机100的手机代理进程101与电脑200的桌面代理进程201成功建立连接后,显示界面210会显示“连接成功”图标224,即桌面代理进程201成功打开监听功能;当手机100的手机代理进程101与电脑200的桌面代理进程201未成功建立分布式显示连接,显示界面210会显示“连接失败”图标,即桌面代理进程201未成功打开监听功能。
在上述S401至S403中,用户在电脑200的显示界面输入手机100的IP地址。电脑200的桌面代理进程201获知手机100的IP地址,并基于手机100的IP地址向手机100的手机代理进程101发送socket请求。在本申请的其他实施例中,用户也可以在电脑200的显示界面输入手机100的验证码。电脑200的桌面代理进程201获知手机100的验证码,并基于手机100的验证码向手机100的手机代理进程101发送socket请求。可以理解的是,手机100的验证码可以是手机100的IP地址,也可以是手机100生成的随机码。根据实际的应用,本申请对电脑200获知的手机100的验证码的类型不做具体限定。
S404:电脑200检测到桌面代理进程201上启动手机100的“设置”应用的操作。
为了方便描述,下文以用户在桌面代理进程201上启动手机100的“设置”应用为例进行说明。可以理解,手机100上其他应用也可以在桌面代理进程201上启动,启动过程具体过程可以参考桌面代理进程201上启动手机100的“设置”应用的过程,在此不做赘述。
在本申请的一些实施例中,可以在电脑200的桌面代理进程201的显示界面220上创建可以启动手机100的应用按钮,用户通过点击电脑200的桌面代理进程201的显示界面220上的应用按钮启动手机100的应用;并且,若电脑200的显示界面220上没有手机100的应用按钮时,用户也可以通过在电脑200的显示界面220的输入框中输入手机100的应用包名和/或类名启动手机100的应用。
例如,如图8所示,用户通过点击电脑200的桌面代理进程201的显示界面220上的“设置”按钮225启动手机100的“设置”应用。用户也可以通过在电脑200的“输入框”226和/或“输入框”227中分别输入包名和类名并点击“启动”按钮227打开手机100的应用。例如,用户也可以通过在显示界面220的“输入框”22中输入手机100的“设置”应用的包名com.android.settings,然后点击“启动”按钮228启动手机100的“设置”应用。
在本申请的其他一些实施例中,还可以在电脑200的显示界面210上创建手机100的应用的桌面快捷方式,用户可以通过点击桌面快捷方式图标打开手机100的应用。例如,如图9所示,用户通过点击显示界面210的“设置”应用的桌面快捷方式图标212启动手机100的“设置”应用。
例如,在一些实施例中,电脑200在显示界面210上创建手机100的应用的桌面快捷方式的过程可以包括:电脑200的桌面代理进程201向手机100的手机代理进程101发送应用查询指令;手机100的手机代理进程101收到应用查询指令后,手机100的手机代理进程101通过调用安卓***11的PackageManagerService服务的getAllPackages接口获取手机100上所有安装的应用包名,然后手机100的手机代理进程101通过getPackageManager()获取applicationPackageManager,再通过applicationPackageManager的getApplicationIcon接口查询应用包名,根据应用包名获取应用图标;手机100的手机代理进程101遍历所有的应用包名,获取手机100上每个应用的图标;手机代理进程101将手机100上每个应用的图标的参数发送给电脑200的桌面代理进程201;电脑200的桌面代理进程201调用微软32位平台的应用程序接口(Application Programming Interface,API)为手机100的每个应用创建桌面快捷方式。
S405:电脑200的桌面代理进程201将启动的手机100的应用的参数发送给手机代理进程101。
在一些实施例中,电脑200的桌面代理进程201将需要启动的安卓应用的参数发送给手机100的手机代理进程101,手机100的手机代理进程101可以通过该应用的参数打开手机100的应用。从而实现用户可以在电脑200上启动手机100的应用,进而使得用户体验更加便捷。
在本申请的一些实施例中,安卓应用的参数包括应用的包名、应用的类名。例如,用户在桌面代理进程201上启动手机100的“设置”应用,桌面代理进程201可以将“设置”应用的包名com.android.settings发送给手机代理进程101。
S406:手机100的手机代理进程101调用安卓***11的接口,启动手机100的“设置”应用。
在本申请的一些实施例中,例如,手机代理进程101根据接收的“设置”应用的参数调用安卓***11的ActivityTaskManagerService的startActivity接口启动手机100的“设置”应用。
S407:手机100的安卓***11创建“设置”应用的安卓应用窗口。
例如,在本申请的一些实施例中,手机100代理进程1002调用安卓***11的接口,启动手机100的“设置”应用;在“设置”应用启动过程中,安卓***11会创建“设置”应用的安卓应用窗口并将创建的“设置”应用的安卓应用窗口的参数发送给手机100的手机代理进程101。在本申请的实施例中,手机100的“设置”应用可以启动在手机100的虚拟屏上,也可以启动在手机100的显示屏。
在本申请的一些实施例中,手机100的安卓***11指定启动参数android.activity.windowingMode为freeform模式,并且手机100的安卓***11指定以FLAG_ACTIVITY_NEW_TASK方式启动,即手机100的安卓***11创建与“设置”应用的安卓应用窗口关联的任务。
S408:手机100的安卓***11向手机100的手机代理进程101发送“设置”应用的安卓应用窗口的参数。
在一些实施例中,手机100的安卓***11可以先将“设置”应用的安卓应用窗口的参数发送给手机100的手机代理进程101,手机100的手机代理进程101将“设置”应用的安卓应用窗口的参数。电脑200的桌面代理进程201可以根据“设置”应用的安卓应用窗口的参数创建“设置”应用的桌面应用窗口。
在本申请的一些实施例中,安卓应用窗口的参数可以包括安卓应用窗口的任务标识,安卓应用窗口的宽和高,安卓应用窗口的区域位置坐标等。安卓应用窗口的区域位置坐标可以表示为{Al,At,Ar,Ab},其中,Al为安卓应用窗口区域左边界的位置坐标,At为安卓应用窗口区域上边界的位置坐标,Ar为安卓应用窗口区域右边界的位置坐标,Al为安卓应用窗口下边界的位置坐标。
S409:手机100的手机代理进程101向电脑200的桌面代理进程201发送应用的安卓应用窗口的参数。
S410:电脑200的桌面代理进程201在桌面***21上创建“设置”应用的桌面应用窗口。
在本申请的一些实施例中,例如,电脑200的桌面代理进程201基于手机100的手机代理进程101发送“设置”应用的安卓应用窗口的参数,桌面代理进程201在桌面***21上创建“设置”应用的桌面应用窗口。
具体地,电脑200的桌面代理进程201查找当前所创建的“设置”应用的桌面应用窗口2003-1中是否有窗口关联“设置”应用的安卓应用窗口的任务标识;如果没有窗口关联该任务标识,则桌面代理进程201新建一个父窗口关联此任务标识,并且桌面代理进程201在新建的父窗口下创建“设置”应用的桌面应用窗口2003-1;如果有窗口关联该任务标识,则电脑200的桌面代理进程201在关联了此任务标识的父窗口下创建“设置”应用的桌面应用窗口。
可以理解,电脑200的桌面代理进程201基于“设置”应用的安卓应用窗口的参数,确定需要创建“设置”应用的桌面应用窗口在电脑200的显示界面210中的区域位置坐标,窗口大小等。
在一些实施例中,安卓应用窗口的任务标识用于唯一标识安卓应用窗口。电脑200基于安卓应用窗口的参数创建的桌面应用窗口与安卓应用窗口的任务标识关联。其中,安卓应用窗口的参数包括安卓应用窗口的任务标识。因此,桌面代理进程201在创建桌面应用窗口之前,通过查找当前创建的桌面应用窗口中是否有窗口关联“设置”应用的安卓应用窗口的任务标识,从而防止一个手机100的应用在电脑200上显示两个“设置”应用的桌面应用窗口。并且针对已创建的桌面应用窗口,当安卓应用窗口显示的图像或者窗口大小等调整时,电脑200的桌面代理进程201通过查找该安卓应用窗口的任务标识实现对已创建的桌面应用窗口的同步调整。下文对此做详细描述,在此不做赘述。
S411:电脑200的桌面***21将“设置”应用的桌面应用窗口的窗口句柄发送给手机100的手机代理进程101。
在一些实施例中,桌面应用窗口的窗口句柄用于唯一标识该桌面应用窗口。例如,“设置”应用的桌面应用窗口的窗口句柄可以用于标识桌面应用窗口,桌面***21对“设置”应用的桌面应用窗口进行操作时,通过获取“设置”应用的桌面应用窗口的窗口句柄对“设置”应用的桌面应用窗口进行操作。
S412:手机100的手机代理进程101将电脑200的“设置”应用的桌面应用窗口的窗口句柄发送给手机100的安卓***11。
S413:电脑200的安卓***11将“设置”应用的桌面应用窗口2003-1的窗口句柄关联手机100的安卓应用窗口。
在一些实施例中,电脑200的安卓***11将“设置”应用的桌面应用窗口的窗口句柄关联手机100的安卓应用窗口,可以使得手机100对“设置”应用的安卓应用窗口进行操作可以同步到电脑200的桌面应用窗口2003-1上。
S414:手机100的安卓***11使用窗口句柄创建绘图信息。
在本申请的一些实施例中,绘图信息可以是安卓***11使用“设置”应用的桌面应用窗口的窗口句柄创建的绘图信息。绘图信息可以是安卓***11使用“设置”应用的桌面应用窗口的窗口句柄以及安卓应用窗口的窗口句柄创建的绘图信息。绘图信息用于在电脑200的桌面***21上执行并在该窗口句柄标识的桌面应用窗口上渲染图像。
例如,在本申请的一些实施例中,手机100的安卓***11接收到手机100的“设置”应用的桌面应用窗口的窗口句柄后,安卓***11将桌面应用窗口2003-1的窗口句柄关联“设置”应用的安卓应用窗口,并继续创建“设置”应用的安卓应用窗口。安卓***11在继续创建“设置”应用的安卓应用窗口时,需要生成绘图信息对安卓应用窗口的显示内容进行图像渲染。该绘图信息用于调用嵌入式图形库(Embedded-System Graphics Library,EGL)、开放图像库(Open Graphics Library,OpenGL)等绘制安卓应用的显示内容。
由上述描述可知,由于手机100的安卓***11使用关联的窗口句柄作为安卓应用窗口的参数来创建绘图信息,当该绘图信息在桌面应用窗口执行时不会出现找不到执行该绘图信息的桌面应用窗口的问题,并且相较于绘图信息在安卓***11上执行并渲染图像,该绘图信息在桌面应用窗口上执行并渲染图像属于当前屏幕渲染(on-screen Rending),可以减少一个缓冲区操作,提升电脑200图像渲染操作时的GPU性能。其中,绘图信息在桌面应用窗口上执行并渲染图像方式属于当前屏幕渲染(on-screen Rending),绘图信息在安卓***11上执行并渲染图像的方式属于离屏渲染方式(off-screen Rending)。
S415:手机100的安卓***11将绘图信息发送给电脑200的桌面代理进程201。
S416:电脑200的桌面代理进程201执行绘图信息。
在本申请的一些实施例中,电脑200的桌面代理进程201执行绘图信息,通过图形设备接口调用图形服务中的图像库,例如EGL、OpenGL等,从而实现在步骤S410创建“设置”应用的桌面应用窗口上显示图像渲染,完成安卓应用的显示内容在桌面应用窗口上的显示。例如,如图1B所示的“设置”应用的桌面应用窗口2003-2显示的内容。
基于步骤S404至S416中描述的电脑200的桌面代理进程201启动应用创建桌面应用窗口2003-2以及桌面应用窗口2003-2上的显示内容的图像渲染的过程,电脑200还可以启动其他安卓应用并显示其他安卓应用的内容。例如,如图1C所示,电脑200的显示界面210上可以同时显示“设置”应用的桌面应用窗口2003-1、“计算器”应用的桌面应用窗口2003-2、“邮件”应用的桌面应用窗口2003-3。
手机100的安卓***11接收桌面应用窗口2003-1的窗口句柄,并将桌面应用窗口2003-1的窗口句柄与手机100的“设置”应用的安卓应用窗口关联。可以理解的是,针对手机100的多个应用,安卓***11可以将手机100的应用的桌面应用窗口2003的窗口句柄与安卓应用窗口进行一一进行关联,从而可以实现在桌面***21上打开并同时显示手机100的多个应用的桌面应用窗口2003。例如,如图1C所示,电脑200的显示界面210同时显示手机100的“设置”应用的桌面应用窗口2003-1、“计算器”应用的桌面应用窗口2003-2、“邮件”应用的桌面应用窗口2003-3。
在本申请的其他一些实施例中,电脑200的桌面代理进程201还可以实时接收绘图信息,对桌面应用窗口的显示内容进行渲染,从而使得可以在电脑200的桌面应用窗口上显示动态图像内容。如图10所示,电脑200的显示界面210上显示的桌面应用窗口2003-4可以是打开的手机100的“视频播放器”应用的桌面应用窗口2003-4;手机100的“视频播放器”应用的安卓应用窗口可以显示在手机100的虚拟屏上,而手机100的显示屏上显示的是实时抓取的手机性能的数据。由图10所示的手机100的显示屏实时显示的内容可知,桌面应用窗口2003-4执行绘图信息实现视频图像渲染并消耗电脑200的GPU资源,安卓应用窗口不执行该指令从而不消耗手机100的GPU资源。
在本申请的一些实施例中,由步骤S404至步骤S413可知,电脑200的桌面代理进程201可以在桌面***21上创建“视频播放器”应用的桌面应用窗口;手机100的安卓***11也可以将“视频播放器”应用的桌面应用窗口的窗口句柄关联手机100的“视频播放器”应用的安卓应用窗口上。手机100的安卓***11可以使用“视频播放器”应用的桌面应用窗口的窗口句柄创建绘图信息,并将该绘图信息发送给电脑200的桌面***21,电脑200的桌面***21执行该绘图信息并在“视频播放器”应用的桌面应用窗口上渲染图像。
例如,电脑200的显示界面210显示的应用窗口为手机100的“视频播放器”应用的桌面应用窗口2003-4并且该窗口显示正在播放视频;由上述步骤可知,手机100的“视频播放器”的桌面应用窗口2003-4的窗口句柄可以与“视频播放器”的安卓应用窗口关联,安卓***11使用关联的窗口句柄作为“视频播放器”的安卓应用窗口的参数来创建绘图信息。
可以理解的是,例如,针对一个安卓应用“设置”,该应用的安卓应用窗口关联桌面应用窗口的窗口句柄,该应用的桌面应用窗口是基于安卓应用窗口的参数创建的,其中,安卓应用窗口的参数包含安卓应用窗口的任务标识。因此,安卓***11使用“设置”应用的桌面应用窗口的窗口句柄创建的绘图信息不仅可以在桌面***21上运行,桌面***21还可以根据该绘图信息确定需要显示使用该绘图信息渲染的图像的桌面应用窗口2003-3。并且,当电脑200的桌面代理进程201检测到桌面应用窗口2003-3的控制操作,生成操作信息。下文对在电脑200上对安卓应用进行控制进行做详细说明,在此不做赘述。
由图4的应用的跨平台显示***20的跨平台应用分布式显示交互流程可知,手机100的安卓***11使用接收的窗口句柄生成绘图信息并将绘图信息发送给电脑200的桌面代理进程201,电脑200桌面代理进程201可以基于接收的绘图信息调用电脑200的图形库对桌面应用窗口进行图像渲染;从而实现创建的桌面应用窗口2003-2显示显示安卓应用“计算器”的内容。并且手机100的安卓***11使用接收的窗口句柄生成绘图信息还可以使得在电脑200的显示界面上可以显示多个安卓应用的桌面应用窗口,实现同时打开并显示多个安卓应用。例如,如图1B所示,从而实现桌面应用窗口2003-2显示安卓应用“计算器”的内容。可以理解,根据上述方法,如图1C所示,电脑200可以启动多个安卓应用,创建多个安卓应用窗口并同时显示多个安卓应用的内容。
在本申请的其他一些实施例中,用户可以通过鼠标、键盘以及触摸等对桌面应用窗口中的显示内容(例如,显示界面的控件)、窗口状态以及窗口大小等进行控制操作,实现安卓应用不仅可以在电脑200上显示,还可以在电脑200上对手机100的安卓应用进行控制。
下面详细介绍在电脑200上对手机100的安卓应用进行控制的几种类型。
例如,如图1B所示,用户可以通过鼠标、触摸等对桌面应用窗口中的窗口“放大”操作,电脑200可以检测到用户对桌面应用窗口的“放大”操作。图11示出了一种对安卓应用的桌面应用窗口进行“放大”操作的交互图。
S1101:电脑200的桌面***21检测到桌面应用窗口的控制操作,生成窗口区域位置坐标以及操作位置坐标。
例如,如图1B所示,电脑200的显示界面210上显示手机100的“计算器”应用的桌面应用窗口2003-2,用户可以通过鼠标或者触摸等点击放大图标对桌面应用窗口2003-2进行放大操作;电脑200的桌面***21检测到桌面应用窗口的控制操作后,电脑200的桌面***21调整桌面应用窗口的区域位置坐标;电脑200的桌面***21将调整前后的桌面应用窗口的区域位置坐标以及电脑200的桌面***21检测到桌面应用窗口的控制操作的位置坐标发送给手机100的手机代理进程101。
在本申请的一些实施例中,电脑200的桌面***21检测到桌面应用窗口的控制操作,电脑200的桌面***21对“计算器”应用的桌面应用窗口2003-2的窗口大小进行调整。并且电脑200的桌面***21生成窗口区域位置坐标以及操作位置坐标。
例如,电脑200的桌面***21检测到桌面应用窗口的控制操作后,桌面应用窗口2003-2的区域坐标由[Wl,Wt,Wr,Wb]调整为[W′l,W′t,W′r,W′b],其中,Wl为调整前的“计算器”应用的桌面应用窗口区域左边界的位置坐标,Wt为调整前的“计算器”应用的桌面应用窗口区域上边界的位置坐标,Wr为调整前的“计算器”应用的桌面应用窗口区域右边界的位置坐标,Wb为调整前的“计算器”应用的桌面应用窗口区域下边界的位置坐标;W′l为调整后的“计算器”应用的桌面应用窗口区域左边界的位置坐标,W′t为调整后的“计算器”应用的桌面应用窗口区域上边界的位置坐标,W′r为调整后的“计算器”应用的桌面应用窗口区域右边界的位置坐标,W′b为调整后的“计算器”应用的桌面应用窗口区域下边界的位置坐标。
图12为“计算器”应用的桌面应用窗口2003-2大小调整前后的示意图。如图12(a)所示,桌面应用窗口2003-2的原始区域坐标为[Wl,Wt,Wr,Wb]。如图12(b)所示,用户桌面应用窗口2003-2点击窗口的“放大”图标后,桌面应用窗口2003-2区域坐标调整为[W′l,W′t,W′r,W′b]。可以理解,电脑200的桌面***21只是对窗口的大小进行调整,电脑200的桌面***21可以基于手机100发送的操作绘图信息对放大后的桌面应用窗口2003-2的显示内容图像进行渲染。
下文以电脑200的桌面***21检测到手机100的“计算器”应用的桌面应用窗口2003-2的“放大”操作,并生成“放大”窗口区域位置坐标以及操作位置坐标为例进行说明。可以理解,电脑200的桌面***21也可以检测到手机100的其他应用窗口的大小进行操作,具体内容参考电脑200的桌面***21检测到手机100的“计算器”应用的桌面应用窗口2003-2的“放大”操作,本申请在此不做一一赘述。
S1102:电脑200的桌面***21将窗口区域位置坐标以及操作位置坐标发送给手机100的手机代理进程101。
S1103:手机100的手机代理进程101调用安卓接口,重新调整“计算器”应用的安卓应用窗口大小及位置坐标。
在本申请的一些实施例中,手机100的手机代理进程101基于接收的窗口区域位置坐标以及操作位置坐标,通过调用ActivityTaskManagerService的resize Task接口,重新设置“计算器”应用的安卓应用窗口关联的任务标识对应的任务的大小及位置坐标,从而实现调整“计算器”应用的安卓应用窗口。其中,窗口区域位置坐标以及操作位置坐标包含手机100的“计算器”应用的安卓应用窗口的任务标识。
S1104:手机100的安卓***11基于窗口区域位置坐标以及操作位置坐标调整安卓应用窗口的窗口区域位置坐标,并生成操作绘图信息。
例如,在本申请的一些实施例中,用户对手机100的“计算器”应用的桌面应用窗口2003-2进行“放大”操作,电脑200的桌面***21检测到桌面应用窗口2003-2的“放大”操作,电脑200的桌面***21生成“放大”操作的窗口区域位置坐标以及操作位置坐标,桌面***21将“放大”的控制操作信息发送给手机100的手机代理进程101;手机100的手机代理进程101基于接收的窗口区域位置坐标以及操作位置坐标,通过调用ActivityTaskManagerService的resize Task接口调整安卓应用窗口的位置坐标。其中,“放大”的窗口区域位置坐标以及操作位置坐标包含手机100的“计算器”应用的安卓应用窗口的任务标识。
在本申请的一些实施例中,手机100的安卓***11基于“放大”的窗口区域位置坐标以及操作位置坐标,通过调用ActivityTaskManagerService的resize Task接口对“计算器”应用的安卓应用窗口关联的任务标识对应的任务执行控制操作,调整“计算器”应用的安卓应用窗口的区域位置坐标;“计算器”应用的安卓应用窗口的区域位置坐标由[Al,At,Ar,Ab]调整为[A’l,A’t,A’r,A’b],其中,Al为调整前的“计算器”应用的安卓应用窗口区域左边界的位置坐标,At为调整前的“计算器”应用的安卓应用窗口区域上边界的位置坐标,Ar为调整前的“计算器”应用的安卓应用窗口区域右边界的位置坐标,Ab为调整前的“计算器”应用的安卓应用窗口区域下边界的位置坐标;A’l为调整后的“计算器”应用的安卓应用窗口区域左边界的位置坐标,At为“计算器”应用的安卓应用窗口区域上边界的位置坐标,Ar为“计算器”应用的安卓应用窗口区域右边界的位置坐标,Ab为“计算器”应用的安卓应用窗口区域下边界的位置坐标。
在本申请的一些实施例中,手机100的安卓***11基于窗口区域位置坐标以及操作位置坐标调用***服务接口调整安卓应用窗口的区域坐标,调整后的安卓应用窗口的区域坐标[A’l,A’t,A’r,A’b]需要满足如下公式(1)和公式(2)的计算关系:
可以理解,手机100的安卓***11调整“计算器”应用的安卓应用窗口的区域坐标,并生成操作绘图信息。该操作绘图信息用于绘制放大后的“计算器”应用的桌面应用窗口显示的内容。
S1105:手机100的安卓***11将操作绘图信息发送给电脑200的桌面代理进程201。
S1106:电脑200的桌面代理进程201执行操作绘图信息。
例如,电脑200的桌面代理进程201基于操作绘图信息在桌面***21上绘制放大后的“计算器”应用的桌面应用窗口2003-2。具体内容参考图4的步骤S415生成绘图信息的内容,在此不做赘述。
可以理解,电脑200也可以检测到用户对桌面应用窗口的“缩小”操作,具体过程请参考上述图11描述的过程,在此不做赘述。
下面介绍在电脑200上对手机100的安卓应用的显示内容(例如,显示界面的控件)进行控制操作。例如,如图13所示,如图13A所示,电脑200可以检测到用户点击桌面应用窗口2003-1的按钮图标218的操作,调整桌面应用窗口2003-1的显示内容为图13B所示的内容,并且手机100的选项4由关闭状态变更为打开状态。下面结合图14详细描述安卓应用的桌面应用窗口的操作的控制的交互图。
图14示出了一种对安卓应用的桌面应用窗口的显示内容进行控制操作的交互图。如图14所示,实现安卓应用的桌面应用窗口的显示内容的控制操作具体过程如下:
S1401:电脑200的桌面***21检测到桌面应用窗口的控制操作,生成操作位置坐标。
例如,根据图4所示描述的过程,电脑200可以创建“设置”应用的桌面应用窗口2003-1,并在桌面应用窗口2003-1上显示安卓应用“设置”的内容,安卓应用“设置”在电脑200的显示界面210上显示。如图13A所示,电脑200的桌面***21可以检测到用户通过鼠标点击“设置”应用的按钮图标218,生成操作位置图标。其中,生成的操作位置图标可以是按钮图标218所在区域的位置坐标。
S1402:电脑200的桌面***21将操作位置坐标发送给手机100的手机代理进程101。
S1403:手机100的手机代理进程101将操作位置坐标发送给手机100的安卓***11。
S1404:手机100的安卓***11基于操作位置坐标生成操作绘图信息。
在本申请的一些实施例中,根据图4的分布式显示过程,“设置”应用的桌面应用窗口的区域位置坐标与安卓应用窗口的区域位置坐标的相对位置坐标具有映射关系。例如,如图13A所示,手机100的安卓***11基于“设置选项4”的按钮图标218的区域位置坐标检测到对设置选项4的操作。手机100的安卓***11通过调用InputManagerService服务接口对“设置”应用的安卓应用窗口关联的任务标识对应的任务执行控制操作,并生成操作绘图信息。例如,设置选项4为飞行模式,按钮图标218为飞行模式的状态开关按钮。手机100的安卓***11通过调用InputManagerService服务接口打开飞行模式,并生成操作绘图信息,生成的操作绘图信息用于绘制飞行模式打开后的显示窗口。
S1405:手机100的安卓***11将操作绘图信息发送给电脑200的桌面代理进程201。
S1406:电脑200的桌面代理进程201执行操作绘图信息。
例如,如图13B所示,电脑200的桌面代理进程201基于操作绘图信息在桌面***21上绘制关闭设置选项4后的“设置”应用的桌面应用窗口2003-1。具体内容参考图4的步骤S415生成绘图信息的内容,在此不做赘述。
可以理解,图3所示的应用的跨平台显示方法可以适用于分别安装不同操作***的电子设备100以及电子设备200。在本申请的其他实施例中,应用的跨平台显示方法也可以适用于一个电子设备上运行两个操作***的场景。
图15根据本申请的一些实施例示出了另一种跨平台应用分布式显示的场景。图15所示的场景包括第三电子设备300;其中,第三电子设备300运行第二操作***21,并且第三电子设备300还安装了运行第一操作***11的虚拟机400。第一操作***11与第二操作***21的描述请参考上文描述,在此不做赘述。
如图15(a)所示,用户可以通过鼠标或触摸等双击第三电子设备300的显示界面320的“移动应用引擎”应用快捷方式图标321,打开图15(b)所示的运行第一操作***11的虚拟机400的用户操作界面410。
在本申请的一些实施例中,第三电子设备300可以是能够同时运行第一操作***11和第二操作***21的电子设备,例如,第三电子设备300可以包括但不限于手机、笔记本电脑、平板电脑、桌上型电脑、膝上型电脑、超级移动个人计算机(Ultra-mobile PersonalComputer,UMPC)、手持计算机、上网本、个人数字助理(Personal Digital Assistant,PDA)等电子设备。
下文以第三电子设备300为电脑300,第一操作***11为安卓***11,第二操作***21为桌面***21为例进行说明另一种跨平台应用分布式显示过程;图16为根据本申请的实施例,示出了另一种跨平台分布式显示的交互图;如图16所示,跨平台应用分布式显示具体过程如下:
S1601:虚拟机400检测到手机代理进程101中启动监听的操作。
在本申请的一些实施例中,电脑300的桌面***21上安装安卓***11的虚拟机,用户可以通过鼠标或触摸等点击图15(a)的显示界面320的“移动应用引擎”应用快捷方式图标321打开安卓***11的虚拟机400的显示界面410。如图15(b)所示,用户可以通过鼠标或触摸等点击虚拟机400的显示界面401上的“手机代理”图标启动手机代理进程101。其中,开启手机代理进程101的监听功能的具体内容参考步骤S401,在此不做赘述。
S1602:电脑300检测到电脑300的桌面代理进程201中启动监听的操作。
在本申请的一些实施例中,如图17(a)所示,用户可以通过点击电脑300的显示界面330上桌面代理的快捷方式图标331启动桌面代理进程201,具体过程参考步骤S402,在此不做赘述。
在本申请的一些实施例中,如图17(a)所示,用户可以通过点击电脑300的显示界面320上桌面代理的快捷方式图标331启动桌面代理进程331;启动桌面代理进程后,如图17(b)所示,用户可以点击显示界面340上的“USB”的按钮341,“USB”的按钮341选项表示桌面代理进程201可以通过USB的连接方式与手机代理进程101通信连接,然后,用户点击“连接”按钮342,电脑300的桌面代理进程201启动监听的操作。
在本申请的其他实施例中,用户也可以通过其他方式启动电脑300的桌面代理进程201,并开启桌面代理进程201的监听功能;根据实际应用情况本申请对此不做具体限定。
S1603:虚拟机400的手机代理进程101与电脑300的桌面代理进程201之间发送/返回请求,建立分布式显示连接。
在本申请的一些实施例中,由于虚拟机400启动在桌面***21上,手机代理进程101和桌面代理进程201可以通过网卡地址连接,如图17(b)所示,当用户点击显示界面340上的“USB”的按钮341时,桌面代理进程201配置成安卓调试桥(android debug bridge,adb)端口映射,然后,用户点击“连接”按钮342,电脑200的桌面代理进程201与手机100的手机代理进程101发送/返回请求,其中发送/返回的请求可以socket请求(套接字请求)。其中,本地回环地址可以是127.0.0.1。
如图18所示,当虚拟机400的手机代理进程101与电脑300的桌面代理进程201成功建立连接时,显示界面340会显示“连接成功”图标343。
S1604:电脑300检测到桌面代理进程201上启动虚拟机400的应用的操作,具体内容参考步骤S404,在此不做赘述。
S1605:电脑300的桌面代理进程201将启动的虚拟机400的安卓应用的参数发送给手机代理进程101。具体内容参考步骤S405,在此不做赘述。
S1606:虚拟机400的手机代理进程101调用安卓***11的接口,启动虚拟机400的应用。具体内容参考步骤S406,在此不做赘述。
S1607:虚拟机400的安卓***11创建应用的安卓应用窗口。具体内容参考步骤S407,在此不做赘述。
S1608:虚拟机400的安卓***11向虚拟机400的手机代理进程101发送安卓应用窗口的参数。
S1609:虚拟机400的手机代理进程101向电脑300的桌面代理进程201发送应用的安卓应用窗口的参数。
S1610:电脑300的桌面代理进程201基于安卓应用窗口的参数,在桌面***21上创建应用的桌面应用窗口。具体内容参考步骤S410,在此不做赘述。
S1611:电脑300的桌面***21将应用的桌面应用窗口的窗口句柄发送给虚拟机400的手机代理进程101。
S1612:虚拟机400的手机代理进程101将电脑300的应用的桌面应用窗口的窗口句柄发送给虚拟机400的安卓***11。
S1613:电脑300的安卓***11将应用的桌面应用窗口的窗口句柄关联虚拟机400的安卓应用窗口。
在本申请的一些实施例中,安卓***11通过接收桌面应用窗口的窗口句柄,并将桌面应用窗口的窗口句柄与虚拟机400的应用的安卓应用窗口关联。可以实现虚拟机400的多个应用在多个桌面应用窗口上显示,其中,每个虚拟机400的应用的安卓应用窗口与每个桌面应用窗口一一关联。
S1614:虚拟机400的安卓***11使用窗口句柄创建绘图信息。具体内容参考步骤S414,在此不做赘述。
S1615:虚拟机400的安卓***11将绘图信息发送给电脑300的桌面代理进程201。
S1616:电脑300的桌面代理进程201在桌面***21上执行使用窗口句柄创建的绘图信息。具体内容参考步骤S416,在此不做赘述。
例如,如图19所示,电脑300的显示界面320上显示虚拟机400的“视频播放器”应用的桌面应用窗口3003。
可以理解,电脑300的显示界面320上显示的桌面应用窗口可以是打开的虚拟机400的“视频播放器”应用的桌面应用窗口3003;相较于绘图信息在安卓***11上执行并渲染图像,该绘图信息在桌面应用窗口上执行并渲染图像属于当前屏幕渲染(on-screenRending),可以减少一个缓冲区操作,提升电脑300图像渲染操作时的GPU性能。其中,绘图信息在桌面应用窗口上执行并渲染图像方式属于当前屏幕渲染(on-screen Rending),绘图信息在安卓***11上执行并渲染图像的方式属于离屏渲染方式(off-screen Rending)。
在本申请的一些实施例中,电脑300的桌面也可以同时显示虚拟机400的多个安卓应用的显示窗口,每个窗口的创建和图像渲染的过程参考图16的内容,在此不做赘述。
在本申请的其他一些实施例中,用户也可以通过鼠标、键盘以及触摸等对电脑300的桌面应用窗口中的显示内容(例如,显示界面的控件)、窗口状态以及窗口大小等进行控制操作,实现虚拟机400的安卓应用不仅可以在电脑300上显示,还可以在电脑300上对手机100的安卓应用进行控制。具体的过程请参考图11或图13描述的过程,在此不做赘述。
可以理解,虚拟机400的应用在桌面***21的桌面应用窗口上显示,既可以实现打开并同时显示虚拟机400的多个应用的桌面应用窗口;并且当桌面应用窗口播放视频需要实时渲染图像时,虚拟机400的安卓***11生成的绘图信息可以在桌面***21上执行,从而实现离屏渲染方式渲染桌面应用窗口显示的图像,从而可以减少一个缓冲区操作,提升电脑300图像渲染操作时的GPU性能;并且用户还可以对显示虚拟机400的应用的桌面应用窗口进行放大、缩小、移动等操作,对窗口操作更加便捷,进而提升用户体验。
图20示出了电子设备100的一种结构示意图。
如图20所示,电子设备100可以包括处理器110,存储器121,通用串行总线(universal serial bus,USB)接口130,电源管理模块141,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,显示屏194,以及摄像头193等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者分解某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。在本申请的一些实施例中,电子设备100可以通过USB接口130与电子设备200进行通信连接。
电源管理模块141用于连接电池,充电管理模块与处理器110。电源管理模块141接收电池和/或充电管理模块的输入,为处理器110,存储器121,显示屏194,摄像头193,和无线通信模块160等供电。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。
无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。上文中的性能参数可以包括Wi-Fi网络的可利用的网络带宽,其中,Wi-Fi网络的可利用的网络带宽为用于传输子任的网络带宽。
可以理解,在本申请一些实施例中,电子设备100和电子设备200可以通过无线通信模块160进行通信连接;电子设备100和电子设备200进行跨平台分布式显示,电子设备200可以向电子设备100发送应用的参数,电子设备100也可以向电子设备200发送安卓应用窗口的参数,基于该参数,电子设备200可以创建窗口显示电子设备100的应用的内容。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。在一些实施例中,启动的安卓应用可以在显示屏194上启动,则电子设备100创建的安卓应用窗口以及渲染图像可以在显示屏194上显示。
存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。存储器121可以包括存储程序区和存储数据区。
可以理解的是,本发明实施例示意的结构并不构成电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
图21是本发明实施例的电子设备100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android***分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和***库,以及内核层。
应用程序层可以包括一系列应用程序包。
图21所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
图21所示,应用程序框架层可以包括窗口管理器,内容提供器,视图***,电话管理器,资源管理器,通知管理器等。
例如,窗口管理器可以包含电子设备100的手机代理服务101,用于管理窗口程序。窗口管理器可以根据安卓应用的参数调用接口创建桌面应用窗口。窗口管理器还可以将安卓应用窗口的参数、绘图信息发送给内部的手机代理服务101,手机代理服务101将安卓应用窗口的参数、绘图信息发送给其他电子设备。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图***包括可视控件,例如显示文字的控件,显示图片的控件等。视图***可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
在本发明的实施例中,资源管理器还可以用于存储Overlay配置文件。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在***顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓***的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
***库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子***进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
图22根据本申请的实施例示出了一种电子设备200或电子设备300的结构框图。
具体地,如图22所示,电子设备200或电子设备300可以包括处理器201、存储器202、无线通信处理模块203、电源开关204、有线LAN通信处理模块205、显示屏206和音频模块207。其中:
处理器201可用于读取和执行计算机可读指令。具体实现中,处理器201可主要包括控制器、运算器和寄存器。其中,控制器主要负责指令译码,并为指令对应的操作发出控制信号。运算器主要负责执行定点或浮点算数运算操作、移位操作以及逻辑操作等,也可以执行地址运算和转换。寄存器主要负责保存指令执行过程中临时存放的寄存器操作数和中间操作结果等。具体实现中,处理器201的硬件架构可以是专用集成电路(ASIC)架构、MIPS架构、ARM架构或者NP架构等等。
在一些实施例中,处理器201可以用于解析无线通信处理模块203或有线LAN通信处理模块205接收到的信号,如电子设备100发送的安卓应用窗口参数、绘图信息等。处理器201可以根据安卓应用窗口参数创建桌面应用窗口;处理器201还可以执行绘图信息渲染图像,从而使得渲染的图像可以在桌面应用窗口上显示。
存储器202与处理器201耦合,用于存储各种软件程序和/或多组指令。具体实现中,存储器202可包括高速随机存取的存储器,并且也可包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。存储器202可以存储操作***,例如uCOS、VxWorks、RTLinux等嵌入式操作***。存储器202还可以存储通信程序,该通信程序可用于与电子设备100,一个或多个服务器,或附加设备进行通信。
电源开关204可用于控制电源向电子设备200或电子设备300的各个部件供电。
有线LAN通信处理模块205可用于通过有线LAN和同一个LAN中的其他设备进行通信,还可用于通过有线LAN连接到WAN,可与WAN中的设备通信。
显示屏206可用于显示图像,视频等。显示屏206可以采用液晶显示屏(liquidcrystal display,LCD),有机发光二极管(organic light-emitting diode,OLED)显示屏,有源矩阵有机发光二极体(active-matrix organic light emitting diode,AMOLED)显示屏,柔性发光二极管(flexible light-emitting diode,FLED)显示屏,量子点发光二极管(quantum dot light emitting diodes,QLED)显示屏等等。可以理解,显示屏206上可以显示安卓应用的桌面应用窗口的显示内容。
音频模块210可用于通过音频输出接口输出音频信号,这样可使得电子设备200或电子设备300支持音频播放。音频模块还可用于通过音频输入接口接收音频数据。音频模块207包括但不限于:麦克风、扬声器、受话器等。
可以理解的是,图22示意的结构并不构成对电子设备200或电子设备300的具体限定。在本申请另外一些实施例中,电子设备200或电子设备300可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
图23是本发明实施例的电子设备200或电子设备300的软件结构框图。
在一些实施例中,电子设备200或电子设备300的软件结构从上至下分别为应用层,框架层,核心库层以及驱动层。
如图23所示,驱动层可以包括但不限于CPU驱动、GPU驱动、显示控制器驱动等。驱动层上面是核心库层,核心库层是操作***的核心部分,核心库层包括但不限于输入/输出服务、实现CPU、GPU图形处理的图形服务等。图形服务可以包括但不限于2D引擎、3D引擎、、帧缓冲区(Frame Buffer)、OpenGL、EGL等。框架层包括但不限于图形服务、***服务、网页服务和用户服务等;图形服务可以包括但不限于画布、视图等。应用层包括但不限于桌面、媒体播放器、浏览器等。
在一些实施例中,电子设备100执行绘图信息在显示屏上显示渲染图像主要是通过将每个应用窗口绘制到一个缓冲区(Buffer)中,然后在显示屏上对这些应用窗口的Buffer进行合成,这样的话,就多了一个屏幕的缓冲合成。例如,在手机100的安卓应用的应用窗口显示中,显示屏上显示的是合成后的显示窗口,例如,手机100的显示屏上显示的是“设置”应用的窗口1,时间或电池状态栏的窗口2等合成的显示窗口。因此,手机100的显示屏需要一个缓冲区从而实现对这些窗口(窗口1、窗口2等)进行缓冲合成,合成后才能在显示屏上显示。
相较于电子设备100执行绘图信息在显示屏上显示渲染图像,电子设备200直接将窗口的绘制结果呈现到电脑200的显示屏上,与手机100的显示屏上显示应用窗口不同,手机100的显示屏上显示多个应用窗口合成的内容,而电脑200的一个桌面应用窗口上只显示一个应用窗口的内容,不需要合成多个应用窗口,从而节省显示屏合成应用窗口的缓冲区(buffer)。
在一些实施例中,桌面代理服务201的应用程序将绘图信息传递给框架层,在框架层依据该绘图信息向***申请绘制图层的画布,其中该画布的大小依据所述绘图信息包含的待绘制图层的宽高参数确定;***申请调用图层内存分配单元为其分配用于绘制图层的画布;同时将其获取所述绘图信息传递给核心库层的渲染驱动,用于使渲染驱动驱使绘图引擎基于所述绘图信息调用OpenGL或EGL绘制图层,从而完成安卓应用的桌面应用窗口的图像绘制。其中,绘图引擎包括图形处理器GPU的绘图引擎,包括2D绘图引擎、3D绘图引擎等。
例如,在一些实施例中,电子设备200接收电子设备100发送的绘图信息,该绘图信息中包含了图元信息、图元坐标等。其中,图元是图形软件用于操作和组织画面的最基本的素材,一幅画面由图元组成,图元是一组最简单的、最通用的集合图形或者字符,比如点、线段、三角形、多边形等。
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
需要说明的是,本申请各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本申请所提出的技术问题的关键。此外,为了突出本申请的创新部分,本申请上述各设备实施例并没有将与解决本申请所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
需要说明的是,在本专利的示例和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
虽然通过参照本申请的某些优选实施例,已经对本申请进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。
Claims (20)
1.一种应用的跨平台显示方法,其特征在于,包括:
第一***平台获取第二***平台上运行的第一应用的第一窗口的第一尺寸,并在所述第一***平台中创建对应所述第一应用的第三窗口,其中所述第三窗口用于显示所述第二***平台上运行的所述第一应用的显示界面;
第一***平台获取第二***平台上运行的第二应用的第二窗口的第二尺寸,并在所述第一***平台中创建对应所述第二应用的第四窗口,其中所述第四窗口用于显示所述第二***平台上运行的所述第二应用的显示界面。
2.根据权利要求1所述的方法,其特征在于,所述第一***平台在检测到用户在所述第一***平台中打开第一应用或者第二应用的情况下,从所述第二***平台获取所述第一尺寸或第二尺寸。
3.根据权利要求1所述的方法,其特征在于,所述第二***平台不显示所述第一窗口和第二窗口。
4.根据权利要求1所述的方法,其特征在于,在所述第一***平台中创建对应所述第一应用的第三窗口,或者在所述第一***平台中创建对应所述第二应用的第四窗口,包括:
所述第一***平台为所述第一应用设置第一标识,或者所述第一***平台为所述第二应用设置第二标识;
其中第一标识用于标识所述第三窗口用于显示所述第一应用的显示界面,第二标识用于标识所述第四窗口用于显示所述第二应用的显示界面。
5.根据权利要求4所述的方法,其特征在于,还包括:
所述第一***平台向所述第二***平台发送所述第一标识或第二标识。
6.根据权利要求5所述的方法,其特征在于,所述第一***平台通过以下方式在所述第三窗口中显示所述第二***平台上运行的所述第一应用;
所述第一***平台从所述第二***平台接收第一绘图信息,其中所述第一绘图信息包括所述第一标识;
所述第一***平台根据所述第一绘图信息所包括的第一标识,在所述第三窗口中显示根据所述第一绘图信息所绘制的,所述第一应用的第一显示界面。
7.根据权利要求5所述的方法,其特征在于,所述第一***平台通过以下方式在所述第四窗口中显示所述第二***平台上运行的所述第二应用:
所述第一***平台从所述第二***平台接收第二绘图信息,其中所述第二绘图信息包括所述第二标识;
所述第二***平台根据所述第二绘图信息所包括的第二标识,在所述第四窗口中显示根据所述第二绘图信息所绘制的,所述第二应用的第二显示界面。
8.根据权利要求1所述的方法,其特征在于,还包括:
所述第一***平台检测到用户对所述第一***平台上的所述第三窗口的第一操作;
所述第一***平台生成操作信息,并将所述操作信息发送给所述第二***平台,其中,所述操作信息包括第一标识;
所述第一***平台从所述第二***平台接收第三绘图信息,其中所述第三绘图信息包括所述第一标识,并且所述第三绘图信息是所述第二***平台,通过执行所述操作信息对应的操作生成的;
所述第一***平台基于所述第三绘图信息在所述第三窗口中显示第三显示界面,其中第三显示界面为第一显示界面对应所述第一操作改变后的显示界面。
9.根据权利要求8所述的方法,其特征在于,所述第一操作包括以下操作中的至少一种:
改变所述第一显示界面的大小的操作;
对所述第一显示界面中的控件的操作。
10.根据权利要求1所述的方法,其特征在于,所述第一***平台和所述第二***平台具有不同的操作***。
11.根据权利要求1所述的方法,其特征在于,所述第一***平台和所述第二***平台运行于不同的电子设备上。
12.根据权利要求1所述的方法,其特征在于,所述第一***平台为运行于电子设备上的虚拟机上的操作***,所述第二***平台为所述电子设备的操作***。
13.一种应用的跨平台显示方法,其特征在于,包括:
第二***平台上运行有第一应用;
第一***平台从所述第二***平台获取第一应用的第一窗口的第一尺寸;
第一***平台在所述第一***平台中创建对应所述第一应用的第三窗口和第一标识,其中第一标识用于标识所述第三窗口用于显示所述第一应用的显示界面;
第二***平台从所述第一***平台接收到所述第一标识后,生成第一绘图信息,其中所述第一绘图信息包括所述第一标识;
所述第一***平台从所述第二***平台接收所述第一绘图信息,并根据所述第一绘图信息所包括的第一标识,在所述第三窗口中显示根据所述第一绘图信息所绘制的,所述第一应用的第一显示界面。
14.根据权利要求13所述的方法,其特征在于,所述第一***平台在检测到用户在所述第一***平台中打开第一应用的情况下,所述第一***平台将所述第一应用信息发送给所述第二***平台;
所述第二***平台根据所述第一应用信息运行第一应用,并在第二***平台中创建所述第一应用的第一窗口;
所述第二***平台将所述第一应用的第一窗口的第一尺寸发送给所述第一***平台。
15.根据权利要求13所述的方法,其特征在于,所述第二***平台不显示所述第一窗口。
16.根据权利要求13所述的方法,其特征在于,还包括:
所述第一***平台检测到用户对所述第一***平台上的所述第三窗口的第一操作;
所述第一***平台生成操作信息,并将所述操作信息发送给所述第二***平台,其中,所述操作信息包括所述第一标识;
所述第二***平台通过执行所述操作信息对应的操作生成第三绘图信息,并将第三绘图信息发送给所述第一***平台;
所述第一***平台基于所述第三绘图信息在所述第三窗口中显示第三显示界面,其中第三显示界面为所述第一显示界面对应所述第一操作改变后的显示界面。
17.根据权利要求16所述的方法,其特征在于,所述第一操作包括以下操作中的至少一种:
改变所述第一显示界面的大小的操作;
对所述第一显示界面中的控件的操作。
18.根据权利要求13所述的方法,其特征在于,所述第一***平台和所述第二***平台具有不同的操作***,其中,所述第一***平台和所述第二***包括以下至少一种:
所述第一***平台和所述第二***平台运行于不同的电子设备上;
所述第一***平台为运行于电子设备上的虚拟机上的操作***,所述第二***平台为所述电子设备的操作***。
19.一种可读介质,其特征在于,所述可读介质上存储有指令,该指令在电子设备上执行时使电子设备执行权利要求1至18中任一项所述的应用的跨平台显示方法。
20.一种电子设备,其特征在于,包括:
存储器,用于存储由电子设备的一个或多个处理器执行的指令,以及
处理器,是电子设备的处理器之一,用于执行权利要求1至18中任一项所述的应用的跨平台显示方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110791240.8A CN115617427A (zh) | 2021-07-13 | 2021-07-13 | 应用的跨平台显示方法、可读介质和电子设备 |
PCT/CN2022/104441 WO2023284625A1 (zh) | 2021-07-13 | 2022-07-07 | 应用的跨平台显示方法、可读介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110791240.8A CN115617427A (zh) | 2021-07-13 | 2021-07-13 | 应用的跨平台显示方法、可读介质和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115617427A true CN115617427A (zh) | 2023-01-17 |
Family
ID=84855396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110791240.8A Pending CN115617427A (zh) | 2021-07-13 | 2021-07-13 | 应用的跨平台显示方法、可读介质和电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115617427A (zh) |
WO (1) | WO2023284625A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009111325A2 (en) * | 2008-02-29 | 2009-09-11 | The Regents Of The University Of California | Scalable, cross-platform method for multi-tile display systems |
CN112995727A (zh) * | 2019-12-17 | 2021-06-18 | 华为技术有限公司 | 一种多屏协同方法、***及电子设备 |
CN115793916A (zh) * | 2019-12-26 | 2023-03-14 | 华为技术有限公司 | 显示多窗口的方法、电子设备和*** |
CN112256177A (zh) * | 2020-10-23 | 2021-01-22 | 南京高盛魔笛信息科技有限公司 | 一种小触控屏和大显示屏协同实现高效协作的***架构 |
-
2021
- 2021-07-13 CN CN202110791240.8A patent/CN115617427A/zh active Pending
-
2022
- 2022-07-07 WO PCT/CN2022/104441 patent/WO2023284625A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2023284625A1 (zh) | 2023-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113553014B (zh) | 多窗口投屏场景下的应用界面显示方法及电子设备 | |
US20220398059A1 (en) | Multi-window display method, electronic device, and system | |
CN109977333B (zh) | 网页显示方法、装置、计算机设备及存储介质 | |
US11853526B2 (en) | Window display method, window switching method, electronic device, and system | |
WO2023051111A1 (zh) | 多个应用组合且同时启动多个应用的方法及电子设备 | |
CN108463799B (zh) | 电子设备的柔性显示器及其操作方法 | |
KR102080146B1 (ko) | 휴대단말과 외부 표시장치 연결 운용 방법 및 이를 지원하는 장치 | |
JP2023506936A (ja) | マルチ画面共働方法およびシステム、ならびに電子デバイス | |
WO2022089294A1 (zh) | 一种设备间屏幕协同方法及设备 | |
CN115002937A (zh) | 一种多设备协同方法、电子设备及相关产品 | |
WO2021052488A1 (zh) | 一种信息处理方法及电子设备 | |
WO2023005751A1 (zh) | 渲染方法及电子设备 | |
US9225818B2 (en) | Mobile terminal | |
CN113608610B (zh) | 交互控制方法、电子设备及*** | |
CN115033193B (zh) | 转屏处理方法、装置、介质及电子设备 | |
CN114461312B (zh) | 显示的方法、电子设备及存储介质 | |
WO2023284625A1 (zh) | 应用的跨平台显示方法、可读介质和电子设备 | |
CN114675786A (zh) | 一种大容量存储挂载方法、装置、终端及介质 | |
CN116048317B (zh) | 一种显示方法及装置 | |
CN112596810B (zh) | 加载提示信息显示方法、装置、电子设备及存储介质 | |
CN116719587B (zh) | 屏幕显示方法、电子设备及计算机可读存储介质 | |
WO2024032022A1 (zh) | 一种应用图标的可视化方法和设备 | |
WO2022068628A1 (zh) | 一种界面的分布式显示方法、电子设备及通信*** | |
CN117130516A (zh) | 一种显示方法及电子设备 | |
CN117615055A (zh) | 一种显示控制方法及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |