一种窗口显示方法、信息交互方法及系统与流程

文档序号:12034207阅读:248来源:国知局
一种窗口显示方法、信息交互方法及系统与流程

本申请涉及通信技术领域,尤其涉及一种窗口显示方法、信息交互方法及其系统。



背景技术:

云操作系统又称云os,是以云计算、云存储技术作为支撑的操作系统。云操作系统因其能够整合海量的计算能力并能够提供强大的资源调配能力,未来将得到更广泛的应用。

云操作系统既可以用于传统的桌面系统设备(如pc)又适用于移动设备。基于云操作系统的应用或服务,以及基于传统操作系统的应用或服务,将会在云操作系统框架内运行,这就要求云操作系统框架能够将基于不同操作系统的应用或服务进行融合。

目前,针对在一种操作系统框架内,基于不同操作系统的应用或服务如何在窗口层面融合或者在控制层面融合,目前尚未有相应的解决方案。

申请内容

本申请实施例提供了一种窗口显示方法及系统,用以将基于不同操作系统的应用程序窗口进行显示。

本申请实施例提供的一种窗口显示方法,包括:

第二图形合成器接收第二子系统的窗口管理模块发送的窗口信息,所述第二图形合成器为第二子系统中的图形合成器;

所述第二图形合成器将所述窗口信息发送给第一图形合成器,所述第一图形合成器为第一子系统中的图形合成器;

所述第一图形合成器根据从第二图形合成器接收到的窗口信息以及第一子系统中的窗口管理模块发送的窗口信息,进行窗口显示。

优选地,所述第一图形合成器按照窗口显示规则,根据从第二图形合成器接收到的窗口信息以及第一子系统中的窗口管理模块发送的窗口信息,进行窗口显示。

其中,所述窗口显示规则包括以下规则中的一种或任意组合:

窗口焦点设置规则;

窗口位置设置规则;

窗口z序排列规则。

其中,所述窗口焦点设置规则中包括以下规则:各种窗口类型所对应的焦点设置优先级。

优选地,根据窗口位置设置规则进行窗口显示时,包括:

根据所述窗口信息获取窗口类型和/或窗口布局;

根据窗口类型和/或窗口布局以及窗口位置设置规则进行窗口显示。

优选地,所述窗口z序排列规则中包括以下规则:各种窗口类型所对应的z序排列顺序。

优选地,所述窗口信息包括以下之一或任意组合:

窗口类型信息;

窗口状态信息;

窗口布局信息;

窗口显示属性信息。

优选地,所述第一子系统为host子系统,所述第二子系统为guest子系统。

本申请实施例提供的一种窗口显示系统,包括:

第二图形合成器,用于接收第二子系统的窗口管理模块发送的窗口信息,所述第二图形合成器为第二子系统中的图形合成器,将所述窗口信息发送给第 一图形合成器,所述第一图形合成器为第一子系统中的图形合成器;

第一图形合成器,用于根据从第二图形合成器接收到的窗口信息以及第一子系统中的窗口管理模块发送的窗口信息,进行窗口显示。

优选地,所述第一图形合成器具体用于:

按照窗口显示规则,根据从第二图形合成器接收到的窗口信息以及第一子系统中的窗口管理模块发送的窗口信息,进行窗口显示。

其中,所述窗口显示规则包括以下规则中的一种或任意组合:

窗口焦点设置规则;

窗口位置设置规则;

窗口z序排列规则。

其中,所述窗口焦点设置规则中包括以下规则:各种窗口类型所对应的焦点设置优先级。

其中,所述第一图形合成器具体用于:

根据窗口位置设置规则进行窗口显示时执行:根据所述窗口信息获取窗口类型和/或窗口布局,根据窗口类型和/或窗口布局以及窗口位置设置规则进行窗口显示。

其中,所述窗口z序排列规则中包括以下规则:各种窗口类型所对应的z序排列顺序。

优选地,所述窗口信息包括以下之一或任意组合:

窗口类型信息;

窗口状态信息;

窗口布局信息;

窗口显示属性信息。

优选地,所述第一子系统为host子系统,所述第二子系统为guest子系统。

本申请实施例提供的另一种窗口显示方法,包括:

第一图形合成器接收第二图形合成器发送的窗口信息;其中,所述第一图形合成器为第一子系统中的图形合成器,所述第二图形合成器为第二子系统中的图形合成器;

所述第一图形合成器根据从第二图形合成器接收到的窗口信息以及第一子系统中的窗口管理模块发送的窗口信息,进行窗口显示。

优选地,第一图形合成器接收第二图形合成器发送的窗口信息之前,还包括:

第二图形合成器接收第二子系统的窗口管理模块发送的窗口信息;

所述第二图形合成器将所述窗口信息发送给第一图形合成器。

优选地,所述第一图形合成器按照窗口显示规则,根据从第二图形合成器接收到的窗口信息以及第一子系统中的窗口管理模块发送的窗口信息,进行窗口显示。

其中,所述窗口显示规则包括以下规则中的一种或任意组合:

窗口焦点设置规则;

窗口位置设置规则;

窗口z序排列规则。

其中,所述窗口焦点设置规则中包括以下规则:各种窗口类型所对应的焦点设置优先级。

其中,根据窗口位置设置规则进行窗口显示时,包括:

根据所述窗口信息获取窗口类型和/或窗口布局;

根据窗口类型和/或窗口布局以及窗口位置设置规则进行窗口显示。

优选地,所述窗口z序排列规则中包括以下规则:各种窗口类型所对应的z序排列顺序。

优选地,所述窗口信息包括以下之一或任意组合:

窗口类型信息;

窗口状态信息;

窗口布局信息;

窗口显示属性信息。

优选地,所述第一子系统为host子系统,所述第二子系统为guest子系统。

本申请的上述实施例中,第二子系统的窗口管理模块发送窗口信息给该子系统中的图形合成器(第二图形合成器),第二图形合成器将该窗口信息发送给第一子系统中的图形合成器(第一图形合成器),第一图形合成器根据从第二图形合成器接收到的窗口信息以及第一子系统中的窗口管理模块发送的窗口信息,进行窗口显示。可以看出,在一种操作系统框架内的第一子系统和第二子系统中,窗口显示的处理操作由第一子系统中的图形合成器执行,第一图形合成器可以将第一子系统的窗口以及第二子系统的窗口进行显示,实现了针对基于不同操作系统在窗口级进行融合。

本申请实施例提供了一种信息交互方法及系统,用于实现跨操作系统应用或服务的控制和管理。

本申请实施例提供的信息交互方法,包括:

第二子系统中的第二连接服务模块接收第二子系统中的应用管理模块发送的控制信息;

所述第二连接服务模块将所述控制信息发送给第一子系统中的第一连接服务模块;

所述第一连接服务模块将所述控制信息发送给第一子系统中的应用管理模块。

优选地,还包括:

所述第一连接服务模块接收第一子系统中的应用管理模块根据所述控制信息返回的响应信息;

所述第一连接服务模块将所述响应信息发送给所述第二连接服务模块;

所述第二连接服务模块将所述响应信息发送给第二子系统中的应用管理 模块。

优选地,所述应用管理模块包括以下模块中的一种或多种:

组件管理模块,用于对应用程序组件或服务组件进行管理;

窗口管理模块,用于对应用程序窗口进行管理;

安装包管理模块,用于对应用程序安装包进行管理。

优选地,发送所述控制信息的第二子系统中的应用管理模块包括:活动管理模块;接收所述控制信息的第一子系统中的应用管理模块包括:动态服务组件管理服务dpms;或者,

发送所述控制信息的第二子系统中的应用管理模块包括:窗口管理模块;接收所述控制信息的第一子系统中的应用管理模块包括:窗口管理模块;或者,

发送所述控制信息的第二子系统中的应用管理模块包括:安装包管理模块;接收所述控制信息的第一子系统中的应用管理模块包括:静态服务组件管理模块。

优选地,发送所述控制信息的第二子系统中的应用管理模块包括:dpms;接收所述控制信息的第一子系统中的应用管理模块包括:活动管理模块;或者,

发送所述控制信息的第二子系统中的应用管理模块包括:窗口管理模块;接收所述控制信息的第一子系统中的应用管理模块包括:窗口管理模块;或者,

发送所述控制信息的第二子系统中的应用管理模块包括:静态服务组件管理模块;接收所述控制信息的第一子系统中的应用管理模块包括:安装包管理模块。

优选地,第二子系统中的应用管理模块接收到子系统切换相关事件后,根据接收到的事件,向所述第二连接服务模块发送控制信息。

优选地,所述第一子系统为host子系统,所述第二子系统为guest子系统;或者,

所述第二子系统为host子系统,所述第一子系统为guest子系统。

本申请实施例提供的一种信息交互系统,包括:第一子系统中的第一连 接服务模块和应用管理模块,第二子系统中的第二连接模块和应用管理模块;

所述第二子系统中的第二连接服务模块,用于接收第二子系统中的应用管理模块发送的控制信息;以及,将所述控制信息发送给第一子系统中的第一连接服务模块;

所述第一连接服务模块,用于将所述控制信息发送给第一子系统中的应用管理模块。

优选地,所述第一连接服务模块还用于:

接收第一子系统中的应用管理模块根据所述控制信息返回的响应信息,将所述响应信息发送给所述第二连接服务模块;

所述第二连接服务模块还用于:

将所述响应信息发送给第二子系统中的应用管理模块。

优选地,所述应用管理模块包括以下模块中的一种或多种:

组件管理模块,用于对应用程序组件或服务组件进行管理;

窗口管理模块,用于对应用程序窗口进行管理;

安装包管理模块,用于对应用程序安装包进行管理。

优选地,发送所述控制信息的第二子系统中的应用管理模块包括:活动管理模块;接收所述控制信息的第一子系统中的应用管理模块包括:动态服务组件管理服务dpms;或者,

发送所述控制信息的第二子系统中的应用管理模块包括:窗口管理模块;接收所述控制信息的第一子系统中的应用管理模块包括:窗口管理模块;或者,

发送所述控制信息的第二子系统中的应用管理模块包括:安装包管理模块;接收所述控制信息的第一子系统中的应用管理模块包括:静态服务组件管理模块。

优选地,发送所述控制信息的第二子系统中的应用管理模块包括:dpms;接收所述控制信息的第一子系统中的应用管理模块包括:活动管理模块;或者,

发送所述控制信息的第二子系统中的应用管理模块包括:窗口管理模块; 接收所述控制信息的第一子系统中的应用管理模块包括:窗口管理模块;或者,

发送所述控制信息的第二子系统中的应用管理模块包括:静态服务组件管理模块;接收所述控制信息的第一子系统中的应用管理模块包括:安装包管理模块。

优选地,所述第二子系统中的应用管理模块具体用于:

接收到子系统切换相关事件后,根据接收到的事件,向所述第二连接服务模块发送控制信息。

优选地,所述第一子系统为host子系统,所述第二子系统为guest子系统;或者,

所述第二子系统为host子系统,所述第一子系统为guest子系统。

本申请实施例提供的另一种信息交互方法,包括:

第一子系统中的第一连接服务模块接收第二子系统中的第二连接服务模块发送的控制信息;

所述第一连接服务模块将所述控制信息发送给第一子系统中的应用管理模块。

优选地,第一子系统中的第一连接服务模块接收第二子系统中的第二连接服务模块发送的控制信息之前,还包括:

第二子系统中的第二连接服务模块接收第二子系统中的应用管理模块发送的控制信息;

所述第二连接服务模块将所述控制信息发送给第一子系统中的第一连接服务模块。

优选地,还包括:

所述第一连接服务模块接收第一子系统中的应用管理模块根据所述控制信息返回的响应信息;

所述第一连接服务模块将所述响应信息发送给所述第二连接服务模块,以使所述第二连接服务模块将所述响应信息发送给第二子系统中的应用管理模 块。

优选地,所述应用管理模块包括以下模块中的一种或多种:

组件管理模块,用于对应用程序组件或服务组件进行管理;

窗口管理模块,用于对应用程序窗口进行管理;

安装包管理模块,用于对应用程序安装包进行管理。

优选地,发送所述控制信息的第二子系统中的应用管理模块包括:活动管理模块;接收所述控制信息的第一子系统中的应用管理模块包括:动态服务组件管理服务dpms;或者,

发送所述控制信息的第二子系统中的应用管理模块包括:窗口管理模块;接收所述控制信息的第一子系统中的应用管理模块包括:窗口管理模块;或者,

发送所述控制信息的第二子系统中的应用管理模块包括:安装包管理模块;接收所述控制信息的第一子系统中的应用管理模块包括:静态服务组件管理模块。

优选地,所述第一子系统为host子系统,所述第二子系统为guest子系统。

本申请实例提供的另一种信息交互方法,包括:

第一子系统中的第一连接服务模块接收第一子系统中的第一连接服务模块发送的控制信息;

所述第一连接服务模块将所述控制信息发送给第二子系统中的第二连接服务模块。

优选地,所述第一连接服务模块将所述控制信息发送给第二子系统中的第二连接服务模块之后,还包括:

第二子系统中的第二连接服务模块将从所述第一连接服务模块接收到的控制信息发送给第二子系统中的应用管理模块。

优选地,还包括:

所述第一连接服务模块接收第二子系统中的第二连接服务模块发送的响应信息,所述响应信息是第二子系统中的应用管理模块根据接收到的控制信息 得到的;

所述第一连接服务模块将所述响应信息发送给所述第一子系统中的应用管理模块。

优选地,所述应用管理模块包括以下模块中的一种或多种:

组件管理模块,用于对应用程序组件或服务组件进行管理;

窗口管理模块,用于对应用程序窗口进行管理;

安装包管理模块,用于对应用程序安装包进行管理。

优选地,发送所述控制信息的第一子系统中的应用管理模块包括:dpms;接收所述控制信息的第二子系统中的应用管理模块包括:活动管理模块;或者,

发送所述控制信息的第一子系统中的应用管理模块包括:窗口管理模块;接收所述控制信息的第二子系统中的应用管理模块包括:窗口管理模块;或者,

发送所述控制信息的第一子系统中的应用管理模块包括:静态服务组件管理模块;接收所述控制信息的第二子系统中的应用管理模块包括:安装包管理模块。

优选地,所述第一子系统为host子系统,所述第二子系统为guest子系统。

本申请的上述实施例中,第二子系统中的应用管理模块将控制信息通过第二子系统中的第二连接服务模块发送给第一子系统的第一连接服务模块,由所述第一连接服务模块将所述控制信息发送给第一子系统中的应用管理模块,实现了跨操作系统的控制信息交互。尤其在将上述实施例应用于不同子系统的应用间切换时,可实现跨操作系统的应用管理。

附图说明

图1为本申请实施例所适用的操作系统框架示意图;

图2a和图2b分别为host子系统中的page与guest子系统中的actibity之间切换的示意图;

图3为本申请实施例提供的host子系统和guest子系统的控制信息交互的 架构示意图;

图4为本申请实施例提供的host子系统和guest子系统在窗口级混合显示的架构示意图;

图5为本申请实施例的一个应用场景下的窗口融合显示示意图;

图6为本申请实施例提供的窗口显示系统的结构示意图;

图7为本申请实施例提供的控制信息交互系统的结构示意图。

具体实施方式

为了针对基于不同操作系统的应用程序在同一操作系统框架内并行运行的情况,在窗口级和/或控制层面实现融合,为用户提供无缝的双系统用户体验,本申请实施例提供了解决方案。

其中,不同操作系统包括第一操作系统和第二操作系统。具体地,第一操作系统可以是云操作系统,第二操作系统可以是传统的操作系统。更具体地,第一操作系统可以是yunos,第二操作系统可以是android。

下面结合附图对本申请实施例进行详细描述。

参见图1,为本申请实施例适用的操作系统框架示意图。以yunos作为第一操作系统,android为第二操作系统为例,图1示出了在yunos框架内的双系统兼容架构。

如图1所示,系统框架中包括host与guest两个子系统,其中,yunos即为host子系统,android即为guest子系统,两个子系统通过container(容器)技术隔离。该框架内的硬件抽象层(hardwareabstractionlayer,hal)提供了图形显示等方面的接口和驱动服务。

host子系统中的glibc,即c运行库,是linux中最底层的api(applicationprogramminginterface,应用程序编程接口)。guest子系统中的bioric,是android的linux内核库。

libhybris为兼容层,能够使基于glibc的操作系统重用现有的android的 驱动(driver)服务;在图形(graphics)处理方面,libhybris还实现了eglplatform。eglplatform这是一套后台(backend)无关的遵循egl接口的图形平台,以及多个后台(backend)实现。

gralloc模块位于硬件抽象层中,封装了对帧缓冲区的所有访问操作。

guest子系统中的inputmanagerservice(输入管理服务)主要用于对输入事件进行监控和管理。

surfaceflinger是guest子系统的图形合成器;waylandcompositor(或weston)是host子系统的图形合成器,其中,weston是waylandcompositor的参考实现。

本申请实施例中,guest子系统的图形合成器与host子系统的图形合成器之间可采用wayland协议进行通信。wayland协议定义了如何与内核通信,如何与客户端(client)通信;wayland复用了所有linux内核的图形、输入输出技术。

上述架构中,本申请实施例中andriod的图形合成器与yunos的图形合成器之间可采用wayland协议进行通信,使得android中的图形系统架空,并桥接到yunos的图形系统,实现了双系统的统一合成渲染,从而提供了较好地双系统兼容性,又实现了双系统的无缝用户体验。

需要说明的是,上述系统架构仅以yunos和andriod为例进行说明,对于其他类型的操作系统,也可基于上述原理实现双系统在窗口层面以及控制层面的兼容以及有效融合。

基于上述框架,本申请实施例提供了在以下两个层面上的双系统兼容:

(一)控制层面的双系统兼容方案

(二)窗口层面的双系统兼容方案

在实际应用场景中,上述两种双系统兼容方案可能独立使用,也可能结合使用。

下面以第一子系统为host子系统、第二子系统为guest子系统为例,分别 对这两种双系统兼容方案进行描述。其中,host子系统为yunos,guest子系统为android。

(一)控制层面的双系统兼容方案

1、host子系统(yunos)框架说明

在host子系统(yunos)框架内,page称为服务组件,是对本地服务和远程服务的抽象,也即服务的基本单元,通过对数据和方法的封装,可以提供各种服务。一个服务场景可以包括多个page。举例来说,一个page可以是ui(用户界面)、拍照等服务,也可以是后台服务,如账户认证。

运行态page称为page实例,是本地服务或远程服务的运行载体,可由dpms(dynamicpagemanagerservice,动态page管理服务)创建、调度、管理,dpms可维护page实例的生命周期。每个page可以在yunos中使用uri(uniformresourceidentifier,唯一资源标识符)进行标识。

pagelink是page之间流转的信息实体,可以在page间传递信息。

在host子系统(yunos)框架内,主要提供了以下几种系统服务:

dpms:dpms可以被看作是服务组件管理实体。dpms可以管理page生命周期以及运行时调度,page从创建到销毁的生命周期管理,以及page间经pagelink的交互都可以通过dpms实现;

weston:weston中主要包括窗口管理(shell)、合成器(compositor)和输入管理几个部分。从大体的流程上来看,输入管理模块接受用户输入,然后一方面shell作出相应的窗口管理操作(如窗口堆栈的改变、focus(焦点)的变化等),另一方面将该输入事件(inputevent)传给之前注册了相应输入事件的客户端(client)。client收到后会在处理机(handler)中做相应动作,如调整视图然后重绘。如有重绘发生,则新的图形缓存(buffer)渲染完成后client将buffer的handle(句柄)传给服务器端(server),接着server端生成z-order序的窗口列表,之后compositor使用渲染器(renderer)进行合成,最后输出(比如输出到framebuffer)。

staticpageservice:主要负责管理系统的安装包(package),包括package的安装、卸载,以及信息查询等。

本申请实施例中,将上述dpms、weston和staticpageservice以及其他可用于实现应用程序相关管理功能的模块,统称为应用管理模块。

2、guest子系统(android)框架说明

在guest子系统(android)框架内,activity是应用程序(application)的组件,是实现应用程序的主体,它承担了大量的显示和交互工作,一个应用程序通常包含多个activity。一个activity可提供一个独立的可视ui(userinterface,用户界面),用户可以通过activity所提供的ui完成某项任务,例如拨号、拍照、发送电子邮件、搜索等。

activity的管理采用堆栈机制,其遵循先进后出的原则,系统总是显示位于activitystack栈顶的activity。

task是指将相关的activity组合到一起,以activitystack方式进行管理。一个task是可以由一个或多个应用程序组成。例如:如果需要在发送短信时,拍一张照并作为彩信发出去,这时用户可首先停留在短信应用程序的acitivity上,然后跳转到camera应用程序的activity上,当完成拍照功能后,再返回到短信应用程序的activity。

在guest子系统(android)框架内,主要提供了以下几种系统服务:

activitymanagerservice(活动管理服务):其主要负责管理应用程序组件,具体可包括管理应用进程的生命周期以及应用进程的组件,如,activity、service、broadcast和provider等组件;

windowmanagerservice(窗口管理服务):主要负责系统中的窗口管理,比如可包括窗口堆栈的管理,focus(焦点)管理等;

packagemanagerservice(安装包管理服务):主要负责对系统的apk(androidpackage,android安装包)进行管理,比如apk的安装、卸载、删除等管理。更具体地,是指管理其中的组件等,如activiey、service(服务) 等,从apk中解析其中的组件,保存到相关结构中。

本申请实施例中,将上述activitymanagerservice、windowmanagerservice和packagemanagerservice以及其他可用于实现应用程序相关管理功能的模块,统称为应用管理模块。

可以看出,yunos中的dpms和android中的activitymanagerservice在功能上对等,均用用于对应用程序组件或服务组件进行管理;yunos中的weston中的窗口管理模块和android中的windowmanagerservice在功能上对等,均用于进行窗口管理;yunos中的staticpageservice和android中的packagemanagerservice在功能上对等,均用于进行应用程序安装包管理。

图2a和图2b分别示出了host子系统中的page与guest子系统中的actibity之间切换的示意图。

如图2a所示,host子系统中的page(hostpage)从start(开始)状态进入running(运行)状态,该hostpage对应的窗口被显示;该hostpage可启动guest子系统中的activity(guestactivity);被启动的guestactivity可返回该hostpage。被启动的guestactivity也可以调用hostpage。hostpage还可以启动其他hostpage,或者返回前一个hostpage。同理,guestactivity也可以启动其他guestactivity,或者返回前一个guestactivity。

图2b所示的hostpage与guestactivity间的切换情况与图2a所示的类似,只是该切换过程是闭环的,并非无限循环,比如,不允许hostpage启动其他hostpage;hostpage启动guestactivity后,不允许该guestactivity返回该hostpage。

基于上述两个子系统的架构,为了实现不同子系统间在控制层面的交互,本申请实施例中,通过yunosbridgeservice在两个子系统之间进行控制信息的交互,yunosbridgeservice是一种系统服务,可以是系统常驻服务,用于实现两个子系统之间交互控制信息。yunosbridgeservice在host子系统和guest子系统中分别建立进程(为了进行区分,可将在host子系统中建立的进 程称为第一连接服务模块,将在guest子系统中建立的进程称为第二连接服务模块,反之亦然),yunosbridgeservice在两个子系统中的进程之间,可采用binder机制进行信息交互。

基于该架构,guest子系统中的第二连接服务模块接收到guest子系统中的应用管理模块发送的控制信息后,可将该控制信息发送给host子系统中的第一连接服务模块,该第一连接服务模块可将该控制信息发送给host子系统中的应用管理模块进行处理。

其中,所述控制信息包括与子系统间切换相关的控制信息,比如子系统间的切换操作可包括:不同子系统中的应用组件之间进行切换,不同子系统中的应用程序窗口间进行切换,不同子系统中的应用程序安装包之间进行调用或切换等。

在一些实施例中,guest子系统中的应用管理模块可在接收到子系统间切换相关事件后,根据接收到的事件,向guest子系统中的第二连接服务模块发送控制信息。

结合host子系统所提供的系统服务以及guest子系统所提供的系统服务,如图3所示,上述控制信息交互过程可包括以下几种情况:

情况1:

guest子系统中的activitymanagerservice向guest子系统中的yunosbridgeservice(图中的第二连接服务模块)发送的控制信息,guest子系统中的yunosbridgeservice将该控制信息发送给host子系统中的yunosbridgeservice(图中的第一连接服务模块),host子系统中的yunosbridgeservice将该控制信息发送给host子系统中的dpms。

在一些实施例中,activitymanagerservice可在接收到用于表明从activity切换到host子系统中的page的事件后,向guest子系统中的yunosbridgeservice发送控制信息,该控制信息具体可以是该事件,也可以是根据该事件生成的应用组件切换相关的控制信息。进一步地,activitymanagerservice收到该 事件后,也会根据该事件对本子系统的相应activity进行管理。

举例来说,用于表明从activity切换到host子系统中的page的事件,可以包括以下事件中的一种:

-guest子系统中的activity启动host子系统中的page;

-guest子系统中的activity返回到host子系统中的前一个page。

进一步地,host子系统中的dpms接收到来自于guest子系统的控制信息后,根据该控制信息进行相应处理。比如,针对启动page的操作,对该page进行生命周期的管理;再比如,针对返回page的操作,更新该page的状态等。

进一步地,host子系统中的dpms还可以将针对该控制信息的处理结果作为响应信息发送给host子系统中的yunosbridgeservice,host子系统中的yunosbridgeservice将该响应信息发送给guest子系统中的activitymanagerservice。

进一步地,如果guest子系统中的activity启动本子系统中的其他activity或者返回到本子系统中的其他activity,则由guest子系统中的activitymanagerservice针对上述activity的切换操作进行管理,比如包括activity的管理、activitystack的管理、task的管理等。

情况2:

host子系统中的dpms向guest子系统中的yunosbridgeservice发送的控制信息,host子系统中的yunosbridgeservice将该控制信息发送给guest子系统中的yunosbridgeservice,guest子系统中的yunosbridgeservice将该控制信息发送给guest子系统中的activitymanagerservice。

在一些实施例中,dpms可在接收到用于表明从page切换到guest子系统中的activity的事件后,向host子系统中的yunosbridgeservice发送控制信息,该控制信息具体可以是该事件,也可以是根据该事件生成的应用组件切换相关的控制信息。进一步地,dpms收到该事件后,也会根据该事件对本子系统的相应page进行管理。

举例来说,用于表明从page切换到guest子系统中的activity的事件,可以包括以下事件中的一种:

-host子系统中的page启动guest子系统中的activity;

-host子系统中的page返回到guest子系统中的前一个activity。

进一步地,guest子系统中的activitymanagerservice接收到来自于host子系统的控制信息后,根据该控制信息进行相应处理。比如,针对启动activity的操作,将该activity放入activitystack中;再比如,针对返回activity的操作,将该activity从activitystack中取出等。

进一步地,guest子系统中的activitymanagerservice还可以将针对该控制信息的处理结果作为响应信息发送给guest子系统中的yunosbridgeservice,host子系统中的yunosbridgeservice将该响应信息发送给host子系统中的dpms。

进一步地,如果host子系统中的page启动本子系统中的其他page或者返回到本子系统中的其他page,则由host子系统中的dpms针对上述page的切换操作进行管理。

情况3:

guest子系统中的windowmanagerservice向guest子系统中的yunosbridgeservice发送的控制信息,guest子系统中的yunosbridgeservice将该控制信息发送给host子系统中的yunosbridgeservice,host子系统中的yunosbridgeservice将该控制信息发送给host子系统中的weston,更具体地,是发送给weston中的窗口管理模块。

在一些实施例中,windowmanagerservice可在接收到用于表明从activity窗口(或ui)切换到host子系统中的page窗口(或ui)的事件后,向guest子系统中的yunosbridgeservice发送控制信息,该控制信息具体可以是该事件,也可以是根据该事件生成的窗口切换相关的控制信息。进一步地,windowmanagerservice收到该事件后,也会根据该事件对本子系统的相应应用 程序窗口进行管理。

举例来说,用于表明从activityui切换到pageui的事件,可以包括以下事件中的一种:

-guest子系统中的activity启动host子系统中的page,该page的ui被创建;

-guest子系统中的activity返回到host子系统中的前一个page,该page的ui被重绘。

进一步地,host子系统中weston中的窗口管理模块接收到来自于guest子系统的控制信息后,根据该控制信息进行相应处理。比如,针对启动page的操作,创建该page的ui;再比如,针对返回page的操作,重绘该page的ui等。

进一步地,host子系统中的dpms还可以将针对该控制信息的处理结果作为响应信息发送给host子系统中的yunosbridgeservice,host子系统中的yunosbridgeservice将该响应信息发送给guest子系统中的activitymanagerservice。

进一步地,如果guest子系统中的activity启动本子系统中的其他activity或者返回到本子系统中的其他activity,则由guest子系统中的windowmanagerservice针对上述activity切换操作所导致的窗口切换进行管理,比如更新窗口状态、设置焦点等。

情况4:

host子系统中weston中的窗口管理模块向guest子系统中的yunosbridgeservice发送的控制信息,host子系统中的yunosbridgeservice将该控制信息发送给guest子系统中的yunosbridgeservice,guest子系统中的yunosbridgeservice将该控制信息发送给guest子系统中的windowmanagerservice。

在一些实施例中,weston中的窗口管理模块可在接收到用于表明从page窗口(或ui)切换到guest子系统中的activity(或ui)的事件后,向host 子系统中的yunosbridgeservice发送控制信息,该控制信息具体可以是该事件,也可以是根据该事件生成的窗口切换相关的控制信息。进一步地,weston中的窗口管理模块收到该事件后,也会根据该事件对本子系统的相应应用程序窗口进行管理。

举例来说,用于表明从pageui切换到activityui的事件,可以包括以下事件中的一种:

-host子系统中的page启动guest子系统中的activity,该activity的ui被创建;

-host子系统中的page返回到guest子系统中的前一个activity,该activity的ui被重绘。

进一步地,guest子系统中的windowmanagerservice接收到来自于host子系统的控制信息后,根据该控制信息进行相应处理。比如,针对启动activity的操作,创建该activity的ui;再比如,针对返回activity的操作,重绘该activity的ui等。

进一步地,guest子系统中的windowmanagerservice还可以将针对该控制信息的处理结果作为响应信息发送给guest子系统中的yunosbridgeservice,host子系统中的yunosbridgeservice将该响应信息发送给host子系统中weston中的窗口管理模块。

进一步地,如果host子系统中的page启动本子系统中的其他page或者返回到本子系统中的其他page,则由host子系统中weston中的窗口管理模块针对上述page切换操作所导致的窗口切换进行管理,比如更新窗口状态、设置焦点等。

情况5:

guest子系统中的packagemanagerservice向guest子系统中的yunosbridgeservice发送的控制信息,guest子系统中的yunosbridgeservice将该控制信息发送给host子系统中的yunosbridgeservice,host子系统中的 yunosbridgeservice将该控制信息发送给host子系统中的staticpageservice。

在一些实施例中,packagemanagerservice可在接收到用于表明从调用host子系统中的应用程序安装包的事件后,向guest子系统中的yunosbridgeservice发送控制信息,该控制信息具体可以是该事件,也可以是根据该事件生成的应用程序安装包调用相关的控制信息。

进一步地,host子系统中的staticpageservice接收到来自于guest子系统的控制信息后,根据该控制信息进行相应处理。

进一步地,host子系统中的staticpageservice还可以将针对该控制信息的处理结果作为响应信息发送给host子系统中的yunosbridgeservice,host子系统中的yunosbridgeservice将该响应信息发送给guest子系统中的packagemanagerservice。

进一步地,如果guest子系统中的应用程序安装包被调用,则由guest子系统中的packagemanagerservice进行管理。

情况6:

host子系统中的staticpageservice向host子系统中的yunosbridgeservice发送的控制信息,host子系统中的yunosbridgeservice将该控制信息发送给guest子系统中的yunosbridgeservice,guest子系统中的yunosbridgeservice将该控制信息发送给guest子系统中的packagemanagerservice。

在一些实施例中,staticpageservice可在接收到用于表明从调用guest子系统中的应用程序安装包的事件后,向host子系统中的yunosbridgeservice发送控制信息,该控制信息具体可以是该事件,也可以是根据该事件生成的应用程序安装包调用相关的控制信息。

进一步地,guest子系统中的packagemanagerservice接收到来自于host子系统的控制信息后,根据该控制信息进行相应处理。

进一步地,guest子系统中的packagemanagerservice还可以将针对该控制信息的处理结果作为响应信息发送给guest子系统中的yunosbridgeservice, guest子系统中的yunosbridgeservice将该响应信息发送给host子系统中的staticpageservice。

进一步地,如果host子系统中的应用程序安装包被调用,则由host子系统中的staticpageservice进行管理。

在实际应用场景中,当发生子系统间切换时,上述多种情况可能同时发生,也可能仅发生其中的一种。比如当从activity切换到page时,上述情况1和情况3可能同时发生。

通过以上描述可以看出,在上述yunos系统框架内,yunos(host子系统)应用与android(guest子系统)应用可以基于各自的子系统独立运行,但存在应用之间切换的情况下,可通过上述方法通知切换目标所在的子系统进行管理,使得原本两个系统的应用在生命周期上有着互相启动互相返回的融合,用户体验上有着一致的应用启动和返回方式,从而将android应用融合到了yunos的应用中。

(二)窗口层面的双系统兼容方案

本申请实施例中,guest子系统中的windowmanagerservice可向surfaceflinger发送窗口信息,surfaceflinger将该窗口信息发送给host子系统中的weston,weston可根据从surfaceflinger接收到的窗口信息以及weston中的窗口信息,进行窗口显示。

其中,上述过程中涉及的窗口可包括应用程序窗口和/或操作系统窗口,或者其他类型的窗口,本申请实施例对此不作限制。

优选地,weston可按照窗口显示规则,根据从surfaceflinger接收到的窗口信息以及weston中的窗口信息,进行窗口显示。

其中,窗口信息可包括以下之一或任意组合:

-窗口类型信息

可以从多种角度对窗口类型进行划分,比如系统级窗口(比如操作系统提供的ui)和应用级窗口(比如应用程序提供的ui);再比如,浮动ui和非浮 动ui;再比如,可交互类窗口(比如能够提供与用户交互功能,接收和响应用户操作)和不可交互类窗口等等。

-窗口状态信息

窗口状态可包括可见、非可见等等。

-窗口布局信息

窗口布局可包括全屏显示还是半屏显示等。

-窗口显示属性信息

窗口显示属性信息可包括显示颜色、透明度等多种属性参数中的一种或多种。

上述方案可应用于在yunos架构下,不同子系统的应用程序同时开启的场景。通过上述方法,可由host子系统的图形合成器(weston)对不同子系统的窗口进行统一管理,从而可以使不同子系统的窗口进行合理显示。

在一些实施例中,为了合理布局和管理不同子系统的窗口,可在host子系统的图形合成器中预先设置窗口显示规则,举例来说,窗口显示规则可包括以下规则中的一种或多种:

-窗口焦点设置规则

weston可根据窗口焦点设置规则确定焦点所在的窗口并进行窗口焦点设置。优选地,窗口焦点设置规则中可包括以下规则:各种窗口类型所对应的焦点设置优先级。比如,应用级窗口的优先级可高于系统级窗口的优先级,这样可方便用户使用应用程序;再比如,系统级窗口中,系统主界面的优先级可高于其他系统级窗口。

更优地,远程交互类窗口所对应的焦点设置优先级,可高于其他类型窗口所对应的焦点设置优先级,比如对于可接收遥控器控制信号的窗口,其获得焦点的优先级高于无法接收遥控器控制信号的窗口(比如状态条窗口),这样比较符合用户操作习惯(使用遥控器进行控制的操作的可能性通常大于针对状态条进行操作的可能性),方便用户操作。

针对当前有n个需要显示的场景,在具体实施时,weston可根据这n个窗口信息获取这n个窗口的窗口类型,并根据窗口焦点设置规则以及这n个窗口的窗口类型,确定这n个窗口中焦点所在的窗口。

-窗口位置设置规则

weston可根据窗口位置设置规则确定窗口所在的位置。具体地,窗口所在的位置可与窗口类型和/或窗口布局相关。例如,如果状态条窗口和视频窗口当前被开启,则可将状态条窗口设置在视频窗口上边缘位置。

相应地,在根据窗口位置设置规则进行窗口显示时,可根据窗口信息获取窗口类型和/或窗口布局,根据窗口类型和/或窗口布局以及窗口位置设置规则确定窗口位置并进行窗口显示。

-窗口z序(z-order)排列规则

weston可根据窗口z-order设置规则确定窗口的z-order。优选地,窗口z序排列规则中可包括以下规则:各种窗口类型所对应的z序排列顺序。优选地,浮动ui通常在最上层。

针对当前有n个窗口需要显示的场景,在具体实施时,在根据窗口z序排列规则进行窗口显示时,weston可根据这n个窗口的窗口信息获取这n个窗口的窗口类型,并根据窗口z序排列规则以及这n个窗口的窗口类型,确定这n个窗口的z序排列顺序。

图4示出了两个子系统在窗口级混合显示的架构示意图。如图所示,guest子系统中的windowmanagerservice将其所管理的窗口对象的窗口信息,比如窗口状态(windowstate)或surface(表面)等通过作为client的composerservice发送给guest子系统中的surfaceflinger,更具体地是发送给surfaceflinger中的layer。surfaceflinger将该窗口信息发送给host子系统的weston,具体可通过waland协议进行交互。weston一方面接收surfaceflinger发送来的窗口信息,另一方面接收本子系统的窗口信息(如图中的pagewindow传递来的窗口信息),weston可根据窗口显示规则,对两个子系统的窗口进行统一管理。

可以看出,host子系统中的窗口管理模块控制与调度host子系统的窗口显示,以及guest子系统的窗口显示,协调与管理着两个系统中各个窗口创建、销毁、屏幕布局、窗口z-order、焦点设置等。

作为一个例子,guest子系统中有2个应用开启,分别打开窗口a和窗口b;host子系统中有1个应用开启,对应的窗口为窗口c。这种情况下,guest子系统中的windowmanagerservice中管理以下信息:窗口a和窗口b的类型(系统级,应用级)、窗口状态、窗口布局(全屏/半屏)等信息,通过上述机制这些窗口信息被发送给yunos的weston中的窗口管理模块windowmanager;yunos的windowmanager基于窗口显示规则确定窗口a、窗口b和窗口c的显示方式(包括窗口位置,z-order,焦点所在窗口等),从而由yunos的图形合成器进行显示。从用户使用角度来看,用户无法感知此刻屏幕上到底哪些窗口是yunos系统的哪些是android系统的,从而视觉上和操控上呈现一致性的融合效果,提升用户体验。

图5示例性地示出了基于本申请实施例提供的窗口层面的双系统兼容方案,在屏幕上显示多个应用程序的窗口的示例。

如图5所示,设备100的屏幕上可显示多个应用程序的窗口,在本例子中这些应用程序窗口可包括:

状态条(hoststatusbar)501,是为host子系统中的系统级窗口,用于显示系统状态信息;

音量控制窗口(androidvolumecontrol)502,是guest子系统中的系统级窗口,用于调节音量;

悬浮ui(androidfloatingui)503,是guest子系统中的应用级窗口,被触发时用于实现系统性能优化服务;

焦点(focus)可远程控制的播放ui(hostplayeruiwithremote)504,是host子系统中的应用级窗口,可接收遥控器200发送的控制信号并进行响应,实现视频播放控制功能;

视频表面(hostvideosurface)505,是host子系统中的应用级窗口,用于显示视频。

在一种场景中,设备100上,当前显示有状态条(hoststatusbar)501、音量控制窗口(androidvolumecontrol)502、焦点(focus)可远程控制的播放ui(hostplayeruiwithremote)504、视频表面(hostvideosurface)505,视频表面(hostvideosurface)505正在播放一个视频。

此时用户触发音量控制窗口502调节了音量,并试图快进视频内容,此时后台资源开销较大,因此悬浮ui(androidfloatingui)503显示在屏幕上,供用户选择进行系统性能优化。此时,设备100的桌面上显示有多种应用的窗口,且其中有些窗口是host子系统中的窗口,有些窗口是guest子系统中的窗口,这些窗口的z-order和布局,可host子系统中的图形合成器基于设置的窗口显示规则来确定。在这个例子中,上述各窗口的z-order顺序以及窗口布局可参见图5。

从用户角度来说,无法感知此刻桌面上哪些窗口是host子系统的窗口,哪些窗口是guest子系统的窗口,从而视觉上和操控上呈现一致性的融合效果,提升用户体验。

基于相同的技术构思,本申请实施例提供了一种窗口显示系统,该系统可实现前述实施例提供的窗口显示方法。

参见图6,为本申请实施例提供的窗口显示系统的结构示意图,该系统可包括:

第二图形合成器62,用于接收第二子系统的窗口管理模块61发送的窗口信息,将所述窗口信息发送给第一图形合成器;第一图形合成器63为第一子系统中的图形合成器,第二图形合成器62为第二子系统中的图形合成器;

第一图形合成器63,用于根据从第二图形合成器62接收到的窗口信息以及第一子系统中的窗口管理模块(未在图中示出)发送的窗口信息,进行窗口显示。

优选地,第一图形合成器63具体用于:按照窗口显示规则,根据从第二图形合成器接收到的窗口信息以及第一子系统中的窗口管理模块发送的窗口信息,进行窗口显示。

其中,所述窗口显示规则包括以下规则中的一种或任意组合:

窗口焦点设置规则;

窗口位置设置规则;

窗口z序排列规则。

其中,所述窗口焦点设置规则中包括以下规则:各种窗口类型所对应的焦点设置优先级。

其中,第一图形合成器63具体用于:根据窗口位置设置规则进行窗口显示时执行:根据所述窗口信息获取窗口类型和/或窗口布局,根据窗口类型和/或窗口布局以及窗口位置设置规则进行窗口显示。

其中,所述窗口z序排列规则中包括以下规则:各种窗口类型所对应的z序排列顺序。

优选地,所述窗口信息包括以下之一或任意组合:

窗口类型信息;

窗口状态信息;

窗口布局信息;

窗口显示属性信息。

优选地,所述第一子系统为host子系统,所述第二子系统为guest子系统。

基于相同的技术构思,本申请实施例提供了一种信息交互系统,该系统可实现前述实施例提供的信息交互流程。

参见图7,为本申请实施例提供的信息交互系统的结构示意图,该系统可包括:第一子系统中的第一连接服务模块71和应用管理模块73,第二子系统中的第二连接模块72和应用管理模块74,其中:

第二连接服务模块72,用于接收第二子系统中的应用管理模块74发送的控制信息;以及,将所述控制信息发送给第一子系统中的第一连接服务模块71;

第一连接服务模块71,用于将所述控制信息发送给第一子系统中的应用管理模块73。

优选地,第一连接服务模块71还用于:接收第一子系统中的应用管理模块73根据所述控制信息返回的响应信息,将所述响应信息发送给所述第二连接服务模块72;

第二连接服务模块72还用于:将所述响应信息发送给第二子系统中的应用管理模块74。

优选地,所述应用管理模块包括以下模块中的一种或多种:

组件管理模块,用于对应用程序组件或服务组件进行管理;

窗口管理模块,用于对应用程序窗口进行管理;

安装包管理模块,用于对应用程序安装包进行管理。

优选地,发送所述控制信息的第二子系统中的应用管理模块包括:活动管理模块;接收所述控制信息的第一子系统中的应用管理模块包括:动态服务组件管理服务dpms;或者,

发送所述控制信息的第二子系统中的应用管理模块包括:窗口管理模块;接收所述控制信息的第一子系统中的应用管理模块包括:窗口管理模块;或者,

发送所述控制信息的第二子系统中的应用管理模块包括:安装包管理模块;接收所述控制信息的第一子系统中的应用管理模块包括:静态服务组件管理模块。

优选地,发送所述控制信息的第二子系统中的应用管理模块包括:dpms;接收所述控制信息的第一子系统中的应用管理模块包括:活动管理模块;或者,

发送所述控制信息的第二子系统中的应用管理模块包括:窗口管理模块;接收所述控制信息的第一子系统中的应用管理模块包括:窗口管理模块;或者,

发送所述控制信息的第二子系统中的应用管理模块包括:静态服务组件管理模块;接收所述控制信息的第一子系统中的应用管理模块包括:安装包管理模块。

优选地,第二子系统中的应用管理模块74具体用于:接收到子系统切换相关事件后,根据接收到的事件,向所述第二连接服务模块发送控制信息。

优选地,所述第一子系统为host子系统,所述第二子系统为guest子系统;或者,所述第二子系统为host子系统,所述第一子系统为guest子系统。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申 请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1