基于多系统的输入输出方法及装置与流程

文档序号:12463500阅读:172来源:国知局
基于多系统的输入输出方法及装置与流程

本发明涉及终端设备技术领域,具体而言,本发明涉及一种基于多系统的输入输出方法及装置。



背景技术:

随着社会的进步和科技的发展,智能手机、平板电脑和电子阅读器等终端设备广泛普及。这些终端设备中通常安装有操作系统。当前,终端设备中的操作系统包括linux kernel作为内核的操作系统,例如Android(安卓)系统。

现有的终端设备中操作系统的输入输出包括显示输出和输入。以Android系统为例,现有的操作系统的输入方法通常包括:内核通过输入硬件接收到用户的输入事件后,传递到应用层的应用,由应用对输入事件进行响应处理。

目前,终端设备已经非常普及,随之而来的是终端设备的安全问题日益频发。技术人员考虑利用Linux container(容器)虚拟化技术创建多个容器,在容器中安装操作系统;容器中的操作系统作为容器系统。终端设备可以同时运行多个容器系统,且各容器系统的进程之间是互相隔离的,当一个容器系统受到不安全信息的入侵时,入侵的后果被限制在该容器系统内部,而不会影响到其它容器系统,因此基于Linux container虚拟化技术的多操作系统具有较高的安全性,可以提升终端设备的安全性。

然而,本发明的发明人发现,若将现有的操作系统的输入输出方法应用到终端设备的多容器系统中,容易造成不同容器系统对同一输入设备或同一显示输出设备产生竞争,容易导致混乱的结果。

例如,根据现有的操作系统的输入输出方法,当用户期望某一个容器系统向终端设备进行输入操作,形成一个输入事件时,结果很可能由另一个容器系统对该输入事件进行了响应,而用户期望的容器系统未响应该输入事件,导致输入响应混乱,给用户与终端设备进行人机交互带来极大的困扰,严重影响用户体验。



技术实现要素:

本发明针对现有方式的缺点,提出一种基于多系统的输入输出方法及装置,用以解决现有技术存在多系统输入响应混乱的问题。

本发明的实施例根据第一个方面,提供了一种基于多系统的输入输出方法,包括:

内核中的输入模块接收到输入事件后,分别向本设备中两个以上容器系统发送;

第一容器系统中的输入服务模块接收到所述输入事件后,若检测到第一容器系统处于前台,则将所述输入事件发送至对应的应用;

其它容器系统中的输入服务模块接收到所述输入事件后,若检测到所述其它容器系统处于后台,则忽略所述输入事件。

本发明的实施例根据第二个方面,还提供了一种基于多系统的输入输出方法,包括:

主控系统中的主控输入模块接收到输入事件后,检测本设备中两个以上容器系统的前后台状态,将所述输入事件向位于前台的容器系统发送;

当第一容器系统中的输入模块接收到所述输入事件后,将所述输入事件发送至第一容器系统中对应的应用。

本发明的实施例根据第三个方面,还提供了一种基于多系统的输入输出装置,包括:内核和两个以上容器系统;

所述内核包括:

输入模块,用于接收到输入事件后,分别向所述两个以上容器系统发送;

所述两个以上容器系统中的第一容器系统包括:

输入服务模块,用于接收到所述输入事件后,若检测到第一容器系统处于前台,则将所述输入事件发送至对应的应用;

所述两个以上容器系统中的其它容器系统包括:

输入服务模块,用于接收到所述输入事件后,若检测到所述其它容器系统处于后台,则忽略所述输入事件。

本发明的实施例根据第四个方面,还提供了一种基于多系统的输入输出装置,包括:主控系统和两个以上容器系统;

所述主控系统包括:

主控输入模块,用于接收到输入事件后,检测本设备中所述两个以上容器系统的前后台状态,将所述输入事件向位于前台的容器系统发送;

所述两个以上容器系统中的第一容器系统包括:

输入模块,用于当接收到所述输入事件后,将所述输入事件发送至第一容器系统中对应的应用。

根据本发明的第一和/或第三个方面,由各容器系统各自的输入服务模块检测各容器系统的前后台状态;由位于前台的第一容器系统的输入服务模块独占终端设备的输入设备获取输入事件,并进行响应。可以防止不同容器系统对输入事件进行误响应的混乱情况,保证用户可以与其预期的容器系统(即为切换至前台的第一容器系统)进行交互,提升用户的体验。

根据本发明的第二和/或第四个方面,由主控系统中的主控输入模块统检测各容器系统的前后台状态,将接收的输入事件仅向位于前台的第一容器系统发送,而不向位于后台的其它容器系统发送,相当于第一容器系统独占输入设备对输入事件进行响应。可以防止不同容器系统对输入事件进行误响应的混乱情况,保证用户可以与其预期的容器系统(即为切换至前台的第一容器系统)进行交互,提升用户的体验。

本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1为本发明实施例一的终端设备的内部结构的框架示意图;

图2为本发明实施例一的基于多系统的输入输出方法的流程示意图;

图3为本发明实施例一的基于多系统的输入输出装置的内部结构的框架示意图;

图4为本发明实施例二的终端设备的内部结构的框架示意图;

图5为本发明实施例二的基于多系统的输入输出方法的流程示意图;

图6为本发明实施例二的基于多系统的输入输出装置的内部结构的框架示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。

本技术领域技术人员可以理解,这里所使用的“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(Personal Communications Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(Global Positioning System,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。

本发明的发明人还发现,现有的操作系统的显示输出方法通常包括:Android系统中在内核kernel的上层还设置有显示合成模块,例如SurfaceFlinger(外观投掷者)模块;SurfaceFlinger模块对操作系统中运行的应用窗口、壁纸和状态栏等需要显示的内容等进行合成,再将合成的待显示的内容输出到内核中,经过显示硬件的驱动,进行显示。然而,根据现有的操作系统的输入输出方法,当两个容器系统都需要占用显示输出设备(包括屏幕)进行显示输出时,很可能出现屏幕上一会显示一个容器系统的内容,再一会又显示另一个容器系统的内容,导致显示内容混乱,给用户与终端设备进行人机交互带来极大的困扰,严重影响用户体验。

本发明的发明人考虑到,可以在终端设备中增设识别每个容器系统的运行状态的功能。根据各容器系统的运行状态,使得处于某一运行状态(例如位于前台)的容器系统可以进行显示输出并对输入事件进行响应,而此时其它容器系统无法进行显示输出,也无法对输入事件进行响应。

基于上述考虑,本发明的发明人提供了两种改进思路。思路一、由各容器系统检测各自的运行状态;思路二、由各容器系统之外的内核检测各容器系统的运行状态。思路一、二分别对应本发明的下述实施例一、二。

实施例一

本发明实施例一中的终端设备的内部结构的框架示意图如图1所示,包括:两个以上容器系统、内核、显示硬件和输入硬件。

其中,本发明(包括实施例一和二)中的容器系统,是设置在以Linux container(容器)虚拟化技术创建的容器中的操作系统。操作系统可以为传统意义上的Linux操作系统或Unix操作系统,也可以是基于Linux操作系统衍生出来的Android系统、Ubuntu系统等,还可以为以Windows平台为基础的windows系统等等。实际上,本发明中的容器系统不限于前述例举的操作系统,可以涵盖所有能够在容器中运行的操作系统。为便于描述,下面以Android系统作为容器系统为例阐述本发明的技术方案。

本发明实施例一的容器系统中,包括:显示服务模块和输入服务模块。较佳地,显示服务模块可以是在传统的SurfaceFlinger(外观投掷者)模块的基础上改进得到的。输入服务模块,可以是在传统的输入模块的基础上改进得到的。显示服务模块和输入服务模块分别与容器系统中的多个应用,又称APP(Application,应用程序)进行交互。进一步,图1中的实线表示数据传输(数据交互的一种),虚线表示数据未传输(即未进行数据交互)。

较佳地,为便于描述,本发明中将位于前台的容器系统称为第一容器系统;将位于后台的容器系统统一称为其它容器系统。

本发明实施例一中的内核可以是kernel。较佳地,内核可以是多个版本之一的kernel。内核中包括显示模块和输入模块。

本发明实施例一中的容器系统中的显示服务模块、输入服务模块分别与内核中的显示模块、输入模块进行交互。

本发明实施例一中的显示硬件、输入硬件分别与内核中的Kernel中的显示模块、输入模块进行交互。

下面介绍本发明实施例一的基于多系统的输入输出方法的流程示意图如图2所示,包括下述步骤:

S201:内核中的输入模块接收到输入事件后,分别向本设备中两个以上容器系统发送。

内核中的输入模块,通过终端设备中的输入硬件接收到用户的输入操作后,将用户的输入信息封装为输入事件。

内核中的输入模块将封装的输入事件,分别向本终端设备中位于前台的第一容器系统中的输入服务模块、以及位于后台的其它容器系统中的输入服务模块进行发送。

S202:第一容器系统中的输入服务模块接收到输入事件后,若检测到第一容器系统处于前台,则将输入事件发送至对应的应用。

第一容器系统中的输入服务模块接收到输入事件后,检测本输入服务模块所在的第一容器系统的运行状态。

当该输入服务模块检测到第一容器系统位于前台时,确定出接收的输入事件在第一容器系统中对应的应用,例如根据输入事件中携带的应用标识确定出对应的应用;将接收的输入事件发送至第一容器系统中对应的应用,由该应用对输入事件进行响应处理。

S203:其它容器系统中的输入服务模块接收到输入事件后,若检测到其它容器系统处于后台,则忽略输入事件。

事实上,终端设备中通常只有一个容器系统可以位于前台。因此,当上述步骤中检测出第一容器系统位于前台时,运行的其它容器系统实际上位于后台。本步骤与上述步骤202实际上都是在第一容器系统位于前台、且其它容器系统位于后台的持续过程中执行的。

具体地,对于每个运行的其它容器系统,该其它容器系统中的输入服务模块接收到输入事件后,检测本输入服务模块所在的其它容器系统的运行状态。当该输入服务模块检测到其所在的其它容器系统位于后台时,忽略接收到的输入事件。

S204:第一容器系统中的显示服务模块接收到第一容器系统中至少一个应用发送的待显示的内容后,若检测到第一容器系统处于前台,则将接收到的各应用的待显示的内容,向内核发送。

第一容器系统中的显示服务模块,接收到其所在的第一容器系统中至少一个应用发送的待显示的内容后,检测本输入服务模块所在的第一容器系统的运行状态。其中,各应用的待显示的内容,包括:桌面应用的系统桌面、其它应用各自的用户界面。

当该输入服务模块检测到第一容器系统位于前台时,将接收到的各应用的待显示的内容,向内核中的显示模块发送。

较佳地,第一容器系统中的显示服务模块,根据第一容器系统中的系统桌面和各用户界面在屏幕上的位置、大小和层叠顺序,确定出系统桌面和各用户界面的可视区域;对各可视区域进行合成,使得合成后的可视区域不超出屏幕的区域;将合成后的可视区域向内核中的显示模块发送。

S205:其它容器系统中的显示服务模块检测到其它容器系统处于后台后,停止接收其它容器系统中应用的待显示的内容。

事实上,终端设备中通常只有一个容器系统可以位于前台。因此,当上述步骤中检测出第一容器系统位于前台时,运行的其它容器系统实际上位于后台。本步骤与上述步骤204实际上都是在第一容器系统位于前台、且其它容器系统位于后台的持续过程中执行的。

具体地,对于每个运行的其它容器系统,该其它容器系统中的显示服务模块检测本显示服务模块所在的其它容器系统的运行状态。当该显示服务模块检测到其所在的其它容器系统位于后台时,停止接收该显示服务模块所在的其它容器系统中应用的待显示的内容。

显然,由于位于后台的其它容器系统的待显示内容不会发送至内核的显示模块,使得内核的显示模块仅能接收到位于前台的第一容器系统的待显示的内容,进而使得后续内核中显示模块实际上仅对位于前台的第一容器系统的内容进行显示输出,解决了不同容器系统混乱显示输出的问题,可以提升用户的体验。

而且,内核的显示模块不需要对位于后台的其它容器系统的待显示的内容进行处理,大大减轻了内核的显示模块的工作量。

S206:内核中的显示模块对接收到的待显示的内容进行显示输出。

当内核中的显示模块仅接收到位于前台的第一容器系统的待显示的内容,而未接收位于后台的其它容器系统的待显示的内容;因此内核中的显示模块根据接收到的来自第一容器系统的待显示的内容进行显示输出,显示输出的具体方法为本领域技术人员所熟知,此处不再赘述。

事实上,上述步骤S201至步骤S203的组合,与步骤S204至步骤S206的组合之间是互相独立的。本发明实施例一中,对于执行步骤S201至步骤S203的组合、与步骤S204至步骤S206的组合,可以同时执行该两个组合,可以仅执行其中一个组合,可以交替执行,也可以执行过程中各自的时间有部分交叠。

根据本发明实施例一中上述基于多系统的输入输出方法,本发明实施例一还提供了一种基于多系统的输入输出装置,该装置设置于本发明的终端设备内部,该装置的内部结构的框架示意图如图3所示,包括:内核和两个以上容器系统。

其中,内核包括:输入模块301。输入模块301用于接收到输入事件后,分别向两个以上容器系统发送。

两个以上容器系统中的第一容器系统包括:输入服务模块311。输入服务模块311用于接收到输入事件后,若检测到第一容器系统处于前台,则将输入事件发送至对应的应用。

两个以上容器系统中的其它容器系统包括:输入服务模块321。

输入服务模块321用于接收到输入事件后,若检测到其它容器系统处于后台,则忽略输入事件。

较佳地,第一容器系统,还包括:显示服务模块312。显示服务模块312用于接收到第一容器系统中至少一个应用发送的待显示的内容后,若检测到第一容器系统处于前台,则将接收到的各应用的待显示的内容,向内核发送。

较佳地,两个以上容器系统中的其它容器系统还包括:显示服务模块322。显示服务模块322用于检测到其它容器系统处于后台后,停止接收其它容器系统中应用的待显示的内容。

以及,内核还包括:显示模块302。显示模块302用于对接收到的待显示的内容进行显示输出。

事实上,当上述第一容器系统切换到后台、且其它容器系统之一切换到前台时,第一容器系统的输入服务模块311与位于前台的其它容器系统的输入服务模块321的功能互换;第一容器系统的显示服务模块312与位于前台的其它容器系统的显示服务模块322的功能互换。也就是说,实际上,输入服务模块311与输入服务模块321的功能相同,显示服务模块312与显示服务模块322的功能相同;标号不同仅代表属于不同的容器系统而已。

本发明实施例一中,由各容器系统各自的输入服务模块检测各容器系统的前后台状态;由位于前台的第一容器系统的输入服务模块独占终端设备的输入设备获取输入事件,并进行响应。可以防止不同容器系统对输入事件进行误响应的混乱情况,保证用户可以与其预期的容器系统(即为切换至前台的第一容器系统)进行交互,提升用户的体验。

而且,本发明实施例一中,位于前台的第一容器系统的显示服务模块确定将第一容器系统待显示的内容通过内核的显示模块发送至显示设备进行显示输出,同时位于后台的其它容器系统中的显示服务模块都确定忽略各自所在的其它容器系统的待显示内容。相当于位于前台的第一容器系统的显示服务模块独占终端设备的显示设备进行显示输出,可以防止显示设备在短时间内交替输出不同容器系统的内容导致显示混乱的情况,可以保证用户可以观看到其预期的容器系统的显示内容,与该用户预期的容器系统进行交互,提升用户的体验。

进一步,本发明实施例一中,内核可以直接采用linux kernel,仅对容器系统的框架层(例如其中的SurfaceFlinger模块)进行修改即可。而且,不依赖具体的硬件平台,使得本发明实施例一的跨平台的移植性较佳。

此外,本发明实施例一中,内核的显示模块不需要对位于后台的其它容器系统的待显示的内容进行处理,大大减轻了内核的显示模块的工作量,有利于降低功耗,延长终端设备的续航时间。

实施例二

本发明实施例二中的终端设备的内部结构的框架示意图如图4所示,包括:两个以上容器系统、主控系统、显示硬件和输入硬件。

其中,本发明实施例二中的容器系统,是设置在以Linux container(容器)虚拟化技术创建的容器中的操作系统。操作系统可以为传统意义上的Linux操作系统或Unix操作系统,也可以是基于Linux操作系统衍生出来的Android系统、Ubuntu系统等,还可以为以Windows平台为基础的win系统等等。实际上,本发明中的容器系统不限于前述例举的操作系统,可以涵盖所有能够在容器中运行的操作系统。为便于描述,下面以Android系统作为容器系统为例阐述本发明的技术方案。

本发明实施例二的容器系统中,包括:SurfaceFlinger(外观投掷者)模块和输入模块。SurfaceFlinger模块和输入模块分别与容器系统中的多个应用,又称APP(Application,应用程序)进行交互。

较佳地,为便于描述,本发明中将位于前台的容器系统成为第一容器系统;将位于后台的容器系统统一称为其它容器系统。

本发明实施例二中的主控系统包括:主控显示模块和主控输入模块。较佳地,主控显示模块可以是在传统内核中的显示模块的基础上改进得到的。主控输入模块可以是在传统内核中的输入模块的基础上改进得到的。因此,可以认为主控系统是在传统内核kernel基础上改进得到的。

本发明实施例二中的容器系统中的SurfaceFlinger模块、输入模块分别与主控系统中的主控显示模块、主控输入模块进行交互。进一步,图4中的实线表示数据传输(数据交互的一种),虚线表示数据未传输(即未进行数据交互)。

本发明实施例二中的显示硬件、输入硬件分别与主控系统中的主控显示模块、主控输入模块进行交互。

下面介绍本发明实施例二的基于多系统的输入输出方法的流程示意图如图5所示,包括下述步骤:

S501:主控系统中的主控输入模块接收到输入事件后,检测本设备中两个以上容器系统的前后台状态,将输入事件向位于前台的容器系统发送。

主控系统中的主控输入模块,通过终端设备中的输入硬件接收到用户的输入操作后,将用户的输入信息封装为输入事件,并检测本终端设备中两个以上容器系统中所有运行的容器系统的前后台状态。

主控系统中的主控输入模块将封装的输入事件,向位于前台的第一容器系统发送。

事实上,终端设备中通常只有一个容器系统可以位于前台。因此,当上述步骤中检测出第一容器系统位于前台时,运行的其它容器系统实际上位于后台。主控系统中的主控输入模块不会将输入事件向位于后台的其它容器系统发送。

可见,本步骤中,主控输入模块省略了将输入事件向位于后台的容器系统,节省了主控输入模块的工作负担,有利于降低其功耗。

S502:当第一容器系统中的输入模块接收到输入事件后,将输入事件发送至第一容器系统中对应的应用。

当第一容器系统中的输入模块接收到来自主控系统的输入事件后,确定出接收的输入事件在第一容器系统中对应的应用,例如根据输入事件中携带的应用标识确定出对应的应用;将接收的输入事件发送至第一容器系统中对应的应用,由该应用对输入事件进行响应处理。

由于其它容器系统中的输入模块未接到来自主控系统的输入事件,因此可以节省处理输入事件的工作量,有利于降低其功耗。

S503:当第一容器系统中的SurfaceFlinger模块接收到第一容器系统中至少一个应用发送的待显示的内容后,向主控系统发送。

当第一容器系统中的SurfaceFlinger模块,接收到其所在的第一容器系统中至少一个应用发送的待显示的内容后,将接收到的各应用的待显示的内容,向主控系统中的主控显示模块发送。其中,各应用的待显示的内容,包括:桌面应用的系统桌面、其它应用各自的用户界面。

较佳地,第一容器系统中的SurfaceFlinger模块,根据第一容器系统中的系统桌面和各用户界面在屏幕上的位置、大小和层叠顺序,确定出系统桌面和各用户界面的可视区域;对各可视区域进行合成,使得合成后的可视区域不超出屏幕的区域;将合成后的可视区域向主控系统中的主控显示模块发送。

S504:当其它容器系统中的SurfaceFlinger模块接收到其它容器系统中至少一个应用发送的待显示的内容后,向主控系统发送。

当其它容器系统中的SurfaceFlinger模块,接收到其所在的其它容器系统中至少一个应用发送的待显示的内容后,将接收到的各应用的待显示的内容,向主控系统中的主控显示模块发送。其中,各应用的待显示的内容,包括:桌面应用的系统桌面、其它应用各自的用户界面。

较佳地,其它容器系统中的SurfaceFlinger模块,根据其所在的其它容器系统中的系统桌面和各用户界面在屏幕上的位置、大小和层叠顺序,确定出系统桌面和各用户界面的可视区域;对各可视区域进行合成,使得合成后的可视区域不超出屏幕的区域;将合成后的可视区域向主控系统中的主控显示模块发送。

S505:主控系统中的主控显示模块接收到来自第一容器系统和其它容器系统的待显示的内容后,检测第一容器系统和其它容器系统的前后台状态。

主控系统中的主控显示模块分别接收到来自第一容器系统的SurfaceFlinger模块、和其它容器系统的SurfaceFlinger模块所各自发送的待显示的内容后,检测第一容器系统、和发送待显示的内容的其它容器系统各自的前后台状态。

S506:主控显示模块若检测出第一容器系统、其它容器系统分别处于前、后台,则对来自第一容器系统的待显示的内容进行显示输出,并忽略来自其它容器系统的待显示的内容。

事实上,终端设备中通常只有一个容器系统可以位于前台。因此,当检测出第一容器系统位于前台时,运行的其它容器系统实际上都位于后台。

主控显示模块检测出第一容器系统、其它容器系统分别处于前、后台之后,对来自第一容器系统的待显示的内容进行显示输出,并忽略来自其它容器系统的待显示的内容。

事实上,上述步骤S501至步骤S502的组合,与步骤S503至步骤S506的组合之间是互相独立的。本发明实施例一中,对于执行步骤S501至步骤S502的组合、与步骤S503至步骤S506的组合,可以同时执行该两个组合,可以仅执行其中一个组合,可以交替执行,也可以执行过程中各自的时间有部分交叠。

根据本发明实施例二中上述基于多系统的输入输出方法,本发明实施例二还提供了一种基于多系统的输入输出装置,该装置设置于本发明的终端设备内部,该装置的内部结构的框架示意图如图6所示,包括:主控系统和两个以上容器系统。

其中,主控系统包括:主控输入模块601。

主控输入模块601用于接收到输入事件后,检测本设备中两个以上容器系统的前后台状态,将输入事件向位于前台的容器系统发送。

两个以上容器系统中的第一容器系统包括:输入模块611。

输入模块611用于当接收到输入事件后,将输入事件发送至第一容器系统中对应的应用。

实际上,两个以上容器系统中的其它容器系统包括:输入模块621。此时,输入模块621所在的其它容器系统位于后台,接收不到输入事件。

较佳地,第一容器系统还包括:SurfaceFlinger模块612。SurfaceFlinger模块612用于接收到第一容器系统中至少一个应用发送的待显示的内容后,向主控系统发送。

以及,两个以上容器中除第一容器系统之外的其它容器系统,包括:SurfaceFlinger模块622。SurfaceFlinger模块622用于接收到其它容器系统中至少一个应用发送的待显示的内容后,向主控系统发送;

以及主控系统还包括:主控显示模块602。主控显示模块602用于接收到来自第一容器系统和其它容器系统的待显示的内容后,检测第一容器系统和其它容器系统的前后台状态;若检测出第一容器系统、其它容器系统分别处于前、后台,则对来自第一容器系统的待显示的内容进行显示输出,并忽略来自其它容器系统的待显示的内容。

事实上,第一容器系统的输入模块611与其它容器系统的输入服务模块321的功能一致;第一容器系统的显示模块612与其它容器系统的显示服务模块322的功能一致。不同的标号仅代表属于不同的容器系统而已。

本发明实施例二中,由主控系统中的主控输入模块统检测各容器系统的前后台状态,将接收的输入事件仅向位于前台的第一容器系统发送,而不向位于后台的其它容器系统发送,相当于第一容器系统独占输入设备对输入事件进行响应。可以防止不同容器系统对输入事件进行误响应的混乱情况,保证用户可以与其预期的容器系统(即为切换至前台的第一容器系统)进行交互,提升用户的体验。

而且,本发明实施例二中,在位于前台的第一容器系统和位于后台的其它容器系统都向主控系统的主控显示模块发送待显示的内容的情况下,由主控显示模块确定仅将位于前台的第一容器系统的待显示的内容,发送至显示设备进行显示,而忽略位于后台的其它容器系统的待显示的内容;相当于位于前台的第一容器系统独占终端设备的显示设备进行显示输出,可以防止显示设备在短时间内交替输出不同容器系统的内容导致显示混乱的情况,可以保证用户可以观看到其预期的容器系统的显示内容,与该用户预期的容器系统进行交互,提升用户的体验。

进一步,本发明实施例二中,仅需要修改linux的内核kernel得到主控系统,而无需修改容器系统;增强了兼容性,并且便于扩展容器系统的数量;例如从双容器系统扩展到三容器系统,无需对新增的容器系统的代码进行修改,新创建一个容器,在该容器中安装新增的容器系统即可。

此外,本发明实施例二中,主控系统不向位于后台的其它容器系统发送输入事件,因此位于后台的其它容器系统无需对额外的不需要其响应的输入事件进行处理,减轻了其它容器系统的工作量,有利于降低功耗,延长终端设备的续航时间。

本技术领域技术人员可以理解,本发明包括涉及用于执行本申请中所述操作中的一项或多项的设备。这些设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备。这些设备具有存储在其内的计算机程序,这些计算机程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随即存储器)、EPROM(Erasable Programmable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically Erasable Programmable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。

本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本发明公开的结构图和/或框图和/或流图的框或多个框中指定的方案。

本技术领域技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。

以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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