CN106951249A - 多***终端设备中窗口的管理方法及多***终端设备 - Google Patents
多***终端设备中窗口的管理方法及多***终端设备 Download PDFInfo
- Publication number
- CN106951249A CN106951249A CN201710157312.7A CN201710157312A CN106951249A CN 106951249 A CN106951249 A CN 106951249A CN 201710157312 A CN201710157312 A CN 201710157312A CN 106951249 A CN106951249 A CN 106951249A
- Authority
- CN
- China
- Prior art keywords
- window
- display
- relevant information
- terminal device
- information
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 30
- 238000007726 management method Methods 0.000 claims abstract description 24
- 238000004064 recycling Methods 0.000 claims description 14
- 238000004891 communication Methods 0.000 claims description 10
- 238000009738 saturating Methods 0.000 claims description 2
- 238000009877 rendering Methods 0.000 claims 1
- 238000012545 processing Methods 0.000 description 7
- 230000003139 buffering effect Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 101100264195 Caenorhabditis elegans app-1 gene Proteins 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 241001062009 Indigofera Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
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
技术领域
本发明涉及计算机技术领域,具体而言,本发明涉及一种多***终端设备中窗口的管理方法,及一种多***终端设备。
背景技术
随着多***终端设备的兴起,目前,多***终端设备的各个操作***,通过其各自的窗口管理器维护一个***级别的窗口栈,各操作***创建的窗口,均需要添加至其各自的窗口栈中。操作***的窗口管理器负责将窗口栈中存储的窗口进行混合处理,并将混合处理后的窗口显示数据在终端设备的显示区域进行绘制显示,但是,现有技术中一个操作***只允许一个窗口管理器处于运行状态,在多***终端设备中,将存在多个操作***的多个窗口管理器并存的情况,当多个操作***其各自的窗口管理器同时请求终端设备的显示驱动对其各自创建的窗口进行绘制显示时,将导致对终端设备显示驱动的访问冲突,从而无法正确显示多个操作***其各自的窗口。
因此,需要一种在多***终端设备中,对多***其各自创建的窗口进行正确显示的方法。
发明内容
为克服上述技术问题或者至少部分地解决上述技术问题,特提出以下技术方案:
本发明的实施例提出了一种多***终端设备中窗口的管理方法,包括:
获取多个***各自的窗口的显示相关信息;
根据已获取的各个***的窗口的显示相关信息,通过预定的窗口显示算法计算确定多个***的窗口混合显示数据;
基于窗口混合显示数据,通过多***终端设备的显示驱动显示多个***混合后的各个窗口。
可选地,该方法还包括:
依据窗口创建时间获取并存储多个***各自的窗口的显示相关信息至窗口栈,窗口栈以栈的队列顺序存储多个***各自的窗口的显示相关信息。
优选地,获取多个***各自的窗口的显示相关信息,包括:
基于窗口栈的队列顺序依次获取多个***各自的窗口的显示相关信息;
其中,窗口的显示相关信息包括以下至少一项:
窗口的标识信息;
窗口的显示数据信息;
窗口的显示透明度属性信息;
窗口的显示透明度数据信息。
优选地,根据已获取的各个***的窗口的显示相关信息,通过预定的窗口显示算法计算确定多个***的窗口混合显示数据,包括:
S1、依据窗口栈的队列顺序,依次获取窗口栈中一个窗口的显示相关信息;
S2、根据已获取的窗口的显示相关信息中的显示透明度属性信息,判断该窗口是否透明;
S3、若判断该窗口为透明,则循环执行S1,直至判断任一窗口为不透明;
S4、获取不透明的任一窗口的透明度数据信息以及已获取的其它窗口的显示数据信息;
S5、基于已获取的不透明的任一窗口的透明度数据信息以及已获取的其它窗口的显示数据信息,通过预定的窗口显示算法计算确定多个***的窗口混合显示数据。
可选地,该方法还包括:
创建用于保存多个***各自窗口的显示相关信息的预定缓冲区;
其中,S3中若判断该窗口为透明,在循环执行S1之前,该方法还包括:
S6、判断预定缓冲区中是否存储该窗口的显示相关信息;
S7、若预定缓冲区中未存储有该窗口的显示相关信息,将该窗口的显示相关信息存储至预定缓冲区,再循环执行S1。
可选地,若S6中判断预定缓冲区中存储有该窗口的显示相关信息,该方法还包括:
S8、从预定缓冲区中获取该窗口的透明度数据信息;
S9、根据该窗口的透明度数据信息,通过预定的透明度算法计算该窗口的计算透明度后的显示数据信息,并更新至预定缓冲区,再循环执行S1。
本发明的另一实施例提出了一种多***终端设备,多***终端设备包括用于管理窗口的渲染器,渲染器包括:
获取模块,用于获取多个***各自的窗口的显示相关信息;
计算确定模块,用于根据已获取的各个***的窗口的显示相关信息,通过预定的窗口显示算法计算确定多个***的窗口混合显示数据;
显示模块,用于基于窗口混合显示数据,通过多***终端设备的显示驱动显示多个***混合后的各个窗口。
可选地,该多***终端设备还包括:
获取及存储模块,用于依据窗口创建时间获取并存储多个***各自的窗口的显示相关信息至窗口栈,窗口栈以栈的队列顺序存储多个***各自的窗口的显示相关信息。
优选地,获取模块,包括:
第一获取单元,用于基于窗口栈的队列顺序依次获取多个***各自的窗口的显示相关信息;
其中,窗口的显示相关信息包括以下至少一项:
窗口的标识信息;
窗口的显示数据信息;
窗口的显示透明度属性信息;
窗口的显示透明度数据信息。
优选地,计算确定模块,包括:
S1、第二获取单元,用于依据窗口栈的队列顺序,依次获取窗口栈中一个窗口的显示相关信息;
S2、第一判断单元,用于根据已获取的窗口的显示相关信息中的显示透明度属性信息,判断该窗口是否透明;
S3、循环执行单元,用于若判断该窗口为透明,则循环执行S1,直至判断任一窗口为不透明;
S4、第三获取单元,用于获取不透明的任一窗口的透明度数据信息以及已获取的其它窗口的显示数据信息;
S5、计算确定单元,用于基于已获取的不透明的任一窗口的透明度数据信息以及已获取的其它窗口的显示数据信息,通过预定的窗口显示算法计算确定多个***的窗口混合显示数据。
可选地,该多***终端设备还包括:
第一创建模块,用于创建用于保存多个***各自窗口的显示相关信息的预定缓冲区;
其中,S3循环执行单元中若判断该窗口为透明,在循环执行S1之前,该多***终端设备还包括:
S6、第二判断单元,用于判断预定缓冲区中是否存储该窗口的显示相关信息;
S7、存储单元,用于若预定缓冲区中未存储有该窗口的显示相关信息,将该窗口的显示相关信息存储至预定缓冲区,再循环执行S1。
可选地,若S6第二判断单元中判断预定缓冲区中存储有该窗口的显示相关信息,该多***终端设备还包括:
S8、第四获取单元,用于从预定缓冲区中获取该窗口的透明度数据信息;
S9、计算及更新单元,用于根据该窗口的透明度数据信息,通过预定的透明度算法计算该窗口的计算透明度后的显示数据信息,并更新至预定缓冲区,再循环执行S1。
可选地,还包括第二创建模块:
第二创建模块,用于创建用于实现渲染器与多个***的各个窗口进行通信的通信文件;
渲染器,还用于监听通信文件,以用于获取多个***各自的窗口的显示相关信息。
本发明的实施例中,提出了一种多***终端设备中窗口的管理方案,获取多个***各自的窗口的显示相关信息,为后续能够正确显示多个***各自的窗口提供了必要的前提保障;根据已获取的各个***的窗口的显示相关信息,通过预定的窗口显示算法计算确定多个***的窗口混合显示数据,实现了快速正确地处理各个***的窗口的显示相关信息,并得到各个***的窗口的正确的显示数据,避免了混合多窗口的显示数据时发生错误而导致多***各个窗口无法正常同时显示的情况;基于窗口混合显示数据,通过多***终端设备的显示驱动显示多个***混合后的各个窗口,实现了正确地显示各个***的窗口,避免了多***窗口同时显示而导致显示驱动绘制多***各窗口时发生冲突而无法正常同时绘制多***的各个窗口的情况,进一步地,提高了用户的使用体验。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为一个实施例的多***终端设备的内部结构的框架示意图;
图2为一个实施例的多***终端设备中管理各***窗口的框架示意图;
图3为本发明中一个实施例的多***终端设备中窗口的管理方法的流程图;
图4为本发明中一个优选实施例的多***终端设备中窗口的管理方法的流程图;
图5为本发明中另一优选实施例的多***终端设备中窗口的管理方法的流程图;
图6为本发明中另一优选实施例的多***终端设备中窗口的管理方法的流程图;
图7为本发明中另一优选实施例的多***终端设备中窗口的管理方法的流程图;
图8为本发明中一个实施例的多***终端设备中窗口管理器启动的流程图;
图9为本发明中一个实施例的多***终端设备中应用程序启动的流程图;
图10为本发明中一个实施例的多***终端设备中应用程序窗口创建过程的流程图;
图11为本发明中另一实施例的多***终端设备的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
下面结合附图具体介绍本发明实施例的技术方案。
本发明实施例的多***终端设备的内部结构的框架示意图如图1所示,包括:第一***OS1和第二***OS2。其中,第一***OS1为Windows操作***,第二***OS2的操作***为Android操作***,第一***OS1和第二***OS2共享同一***内核。
本发明实施例在多***终端设备中管理各***窗口的框架示意图如图2所示,包括:第一***OS1和第二***OS2。第一***OS1和第二***OS2各自拥有一个窗口管理器,来管理各自***创建的窗口;该多***终端设备通过多***终端设备的渲染器,管理第一***OS1和第二***OS2各自的窗口管理器。其中,在多***终端设备的内核中创建一帧缓冲区,缓存第一***OS1和第二***OS2各自窗口的显示相关信息,并将该显示相关信息提交至多***终端设备的显示硬件。
其中,本发明实施例中运行的各个操作***,可以为传统意义上的Linux操作***或Unix操作***,也可以是基于Linux操作***衍生出来的Android***、Ubuntu***或FireFox***等,还可以为以Windows平台为基础的windows***等等,在此不做限定。
图3为本发明中一个实施例的多***终端设备中窗口的管理方法的流程图。
本发明的实施例中,各步骤所执行的内容概述如下:步骤S310:获取多个***各自的窗口的显示相关信息;步骤S320:根据已获取的各个***的窗口的显示相关信息,通过预定的窗口显示算法计算确定多个***的窗口混合显示数据;步骤S330:基于窗口混合显示数据,通过多***终端设备的显示驱动显示多个***混合后的各个窗口。
本发明的实施例中,提出了一种多***终端设备中窗口的管理方法,获取多个***各自的窗口的显示相关信息,为后续能够正确显示多个***各自的窗口提供了必要的前提保障;根据已获取的各个***的窗口的显示相关信息,通过预定的窗口显示算法计算确定多个***的窗口混合显示数据,实现了快速正确地处理各个***的窗口的显示相关信息,并得到各个***的窗口的正确的显示数据,避免了混合多窗口的显示数据时发生错误而导致多***各个窗口无法正常同时显示的情况;基于窗口混合显示数据,通过多***终端设备的显示驱动显示多个***混合后的各个窗口,实现了正确地显示各个***的窗口,避免了多***窗口同时显示而导致显示驱动绘制多***各窗口时发生冲突而无法正常同时绘制多***的各个窗口的情况,进一步地,提高了用户的使用体验。以下针对各个步骤的具体实现做进一步的说明:
步骤S310:获取多个***各自的窗口的显示相关信息。
其中,窗口的显示相关信息包括以下至少一项:
1)窗口的标识信息;例如,窗口的唯一标识号,如ID值。
2)窗口的显示数据信息;例如,窗口显示内容的各个像素的RGB数据。
3)窗口的显示透明度属性信息;例如,窗口的显示透明度属性值的数据。
4)窗口的显示透明度数据信息。
例如,在多***终端设备A中,包括第一***OS1和第二***OS2,获取第一***OS1的所有窗口的显示相关信息,如第一***OS1存在两个窗口,获取到该两个窗口的标识号ID值分别为“01”和“02”、该两个窗口各自显示内容的各个像素的RGB值和透明度属性值数据等;并获取第二***OS2的所有窗口的显示相关信息,如第二***OS2存在一个窗口,获取到该一个窗口标识号ID值为“03”、该“03”窗口显示内容的各个像素的RGB值和透明度属性值数据等。
需要说明的是,本领域技术人员可以了解到,终端设备中窗口的显示内容由多个像素组成,一个像素由RGBA来表示,即R代表红,G代表绿,B代表蓝,A(Alpha)代表透明度;每一种颜色和透明度各占一个字节,也就是一个像素占4字节,如果屏幕分辨率是1280x760,那么存储一个窗口的所有像素的内存大小就是1280x760x4字节;对应于物理屏幕上的一个像素点,最终的显示可以抛弃掉A值,硬件会根据各像素的RGB值,来控制最终液晶颗粒的旋转角度,显示出各像素的正确颜色。
步骤S320:根据已获取的各个***的窗口的显示相关信息,通过预定的窗口显示算法计算确定多个***的窗口混合显示数据。
例如,在多***终端设备A中,根据已获取的第一***OS1和第二***OS2各自窗口的显示相关信息,通过预定的窗口显示算法计算各个窗口的显示内容的各像素的RGBA值,以确定多个***的窗口混合显示后的各窗口显示内容的各像素的RGBA值数据。
步骤S330:基于窗口混合显示数据,通过多***终端设备的显示驱动显示多个***混合后的各个窗口。
例如,在多***终端设备A中,基于窗口标识号为“01”、“02”和“03”的三个窗口混合显示数据,通过多***终端设备的显示驱动显示该混合显示数据中的每个像素RGB值,以正确显示多个***混合后的窗口标识号为“01”、“02”和“03”的三个窗口。
优选地,如图4所示,该管理方法包括步骤S410、步骤S420、步骤S430和步骤S440;步骤S410:获取多个***各自的窗口的显示相关信息;步骤S420:根据已获取的各个***的窗口的显示相关信息,通过预定的窗口显示算法计算确定多个***的窗口混合显示数据;步骤S430:基于窗口混合显示数据,通过多***终端设备的显示驱动显示多个***混合后的各个窗口;步骤S440:依据窗口创建时间获取并存储多个***各自的窗口的显示相关信息至窗口栈,窗口栈以栈的队列顺序存储多个***各自的窗口的显示相关信息。
其中,本优选实施例中的多***的终端设备在步骤S410、步骤S420和步骤S430中执行的操作与图3所示的多***的终端设备在步骤S310、步骤S320和步骤S330中执行的操作相同或相似,在此不再赘述。
例如,在多***终端设备A中,将多个***中第一***OS1和第二***OS2各自的窗口的显示相关信息存储至多***终端设备的窗口栈中,窗口栈以栈的队列顺序来存储多***各自的窗口的显示相关信息;依据各个窗口的创建时间的先后顺序,各个窗口的创建时间顺序依次为:窗口标识号为“01”的窗口、窗口标识号为“02”的窗口和窗口标识号为“03”的窗口,随后,首先获取创建的“01”窗口的窗口的显示相关信息并存储至窗口栈中,再获取创建的“02”窗口的窗口的显示相关信息并存储至窗口栈中,最后获取创建的“03”窗口的窗口的显示相关信息并存储至窗口栈中。需要说明的是,在多***终端设备的任一***中创建一窗口,随后即获取该创建窗口的显示相关信息并存储至窗口栈中。
需要说明的是,本领域技术人员可以了解到,栈,是一种遵循先进后出规则的队列,本发明实施例中窗口栈通过栈的方式来管理多***中的各个窗口,因此,依据窗口的创建时间,越早创建的窗口在窗口栈队列中越靠后,而最新创建的窗口则排在窗口栈队列的最前面。
优选地,如图5所示,该管理方法包括步骤S510、步骤S520和步骤S530;步骤S510:基于窗口栈的队列顺序依次获取多个***各自的窗口的显示相关信息;步骤S520:根据已获取的各个***的窗口的显示相关信息,通过预定的窗口显示算法计算确定多个***的窗口混合显示数据;步骤S530:基于窗口混合显示数据,通过多***终端设备的显示驱动显示多个***混合后的各个窗口。
其中,本优选实施例中的多***的终端设备在步骤S520和步骤S530中执行的操作与图3所示的多***的终端设备在步骤S320和步骤S330中执行的操作相同或相似,在此不再赘述。
例如,在多***终端设备A中,将第一***OS1和第二***OS2各自的窗口的显示相关信息存储至多***终端设备的窗口栈中;第一***OS1和第二***OS2各自的窗口的显示相关信息存储至窗口栈中的先后顺序为:窗口标识号为“01”的窗口、窗口标识号为“02”的窗口和窗口标识号为“03”的窗口,依据窗口栈队列中先进后出规则,首先获取窗口标识号为“03”的窗口的显示相关信息,随后获取窗口标识号为“02”的窗口的显示相关信息,最后获取窗口标识号为“01”的窗口的显示相关信息。
优选地,如图6所示,该管理方法包括步骤S610、步骤S620、步骤S630、步骤S640、步骤S650、步骤S660和步骤S670;步骤S610:获取多个***各自的窗口的显示相关信息;步骤S620:依据窗口栈的队列顺序,依次获取窗口栈中一个窗口的显示相关信息;步骤S630:根据已获取的窗口的显示相关信息中的显示透明度属性信息,判断该窗口是否透明;步骤S640:若判断该窗口为透明,则循环执行步骤S620,直至判断任一窗口为不透明;步骤S650:获取不透明的任一窗口的透明度数据信息以及已获取的其它窗口的显示数据信息;步骤S660:基于已获取的不透明的任一窗口的透明度数据信息以及已获取的其它窗口的显示数据信息,通过预定的窗口显示算法计算确定多个***的窗口混合显示数据;步骤S670:基于窗口混合显示数据,通过多***终端设备的显示驱动显示多个***混合后的各个窗口。
其中,本优选实施例中的多***的终端设备在步骤S610和步骤S670中执行的操作与图3所示的多***的终端设备在步骤S310和步骤S330中执行的操作相同或相似,在此不再赘述。
例如,在多***终端设备A中,将第一***OS1和第二***OS2各自的窗口的显示相关信息存储至多***终端设备的窗口栈中,依据窗口栈的队列顺序,在队列顶端至队列底部依次存储的是窗口标识号为“03”的窗口的显示相关信息、窗口标识号为“02”的窗口的显示相关信息和窗口标识号为“01”的窗口的显示相关信息,首先获取窗口栈中窗口标识号为“03”的窗口的显示相关信息,根据已获取的窗口标识号为“03”的窗口的显示相关信息中的显示透明度属性信息,判断窗口标识号为“03”的窗口是否透明,如透明度属性值为0至1之间的数值,值为0,代表该窗口为透明显示,值介于0至1之间,代表透明显示的不同程度,值为1,代表该窗口为全透明显示,若透明度属性值为空值,代表该窗口为非透明显示,若根据窗口标识号为“03”的窗口的显示相关信息中,得到窗口标识号为“03”的窗口透明度属性值为0.2,可判断窗口标识号为“03”的窗口为透明显示,则循环执行步骤S620,直至判断任一窗口为不透明,若随后判断窗口标识号为“02”的窗口为不透明,获取窗口标识号为“03”的窗口的显示数据信息以及窗口标识号为“02”的窗口的透明度数据信息,基于已获取的窗口标识号为“03”和“02”的窗口的显示数据信息,通过预定的窗口显示算法计算窗口标识号为“03”和“02”的窗口的显示内容的各像素的RGBA值,以确定多个***的窗口标识号为“03”和“02”的窗口混合显示后的显示内容的各像素的RGBA值。
优选地,该管理方法还包括:创建用于保存多个***各自窗口的显示相关信息的预定缓冲区。
例如,在多***终端设备A中,创建用于保存多个***各自窗口的显示相关信息的预定缓冲区,如在多***终端设备的***内核中创建一个用于保存多个***各自窗口的显示相关信息的预定帧缓冲的缓冲区。
优选地,如图7所示,该管理方法包括步骤S7010、步骤S7020、步骤S7030、步骤S7040、步骤S7050、步骤S7060、步骤S7070、步骤S7080、步骤S790和步骤S7100;步骤S7010:获取多个***各自的窗口的显示相关信息;步骤S7020:依据窗口栈的队列顺序,依次获取窗口栈中一个窗口的显示相关信息;步骤S7030:根据已获取的窗口的显示相关信息中的显示透明度属性信息,判断该窗口是否透明;步骤S7040:若判断该窗口为透明,判断预定缓冲区中是否存储该窗口的显示相关信息;步骤S7050:若预定缓冲区中未存储有该窗口的显示相关信息,将该窗口的显示相关信息存储至预定缓冲区,再循环执行步骤S7020;步骤S7060:若判断预定缓冲区中存储有该窗口的显示相关信息,从预定缓冲区中获取该窗口的透明度数据信息;步骤S7070:根据该窗口的透明度数据信息,通过预定的透明度算法计算该窗口的计算透明度后的显示数据信息,并更新至预定缓冲区,再循环执行步骤S7020;步骤S7080:获取不透明的任一窗口的透明度数据信息以及已获取的其它窗口的显示数据信息;步骤S7090:基于已获取的不透明的任一窗口的透明度数据信息以及已获取的其它窗口的显示数据信息,通过预定的窗口显示算法计算确定多个***的窗口混合显示数据;步骤S7100:基于窗口混合显示数据,通过多***终端设备的显示驱动显示多个***混合后的各个窗口。
其中,本优选实施例中的多***的终端设备在步骤S7010、步骤S7020、步骤S7030、步骤S7080、步骤S7090和步骤S7100中执行的操作与图6所示的多***的终端设备在步骤S610、步骤S620、步骤S630、步骤S650、步骤S660和步骤S670中执行的操作相同或相似,在此不再赘述。
例如,在多***终端设备A中,在***内核中创建一个用于保存多个***各自窗口的显示相关信息的预定帧缓冲的缓冲区;将多个***中第一***OS1和第二***OS2各自的窗口的显示相关信息存储至多***终端设备的窗口栈中,依据窗口栈的队列顺序,在队列顶端至队列底部依次存储的是窗口标识号为“03”的窗口的显示相关信息、窗口标识号为“02”的窗口的显示相关信息和窗口标识号为“01”的窗口的显示相关信息,首先获取窗口栈中窗口标识号为“03”的窗口的显示相关信息,根据已获取的窗口标识号为“03”的窗口的显示相关信息中的显示透明度属性值,该值若为0.2,可判断该窗口为透明显示,随后判断预定缓冲区中是否存储窗口标识号为“03”的窗口的显示相关信息,若预定缓冲区中未存储有窗口标识号为“03”的窗口的显示相关信息,将窗口栈中获取的窗口标识号为“03”的窗口的显示相关信息存储至预定缓冲区,再循环执行步骤S7020;若预定缓冲区中存储有窗口标识号为“03”的窗口的显示相关信息,从***内核的预定缓冲区中获取窗口标识号为“03”的窗口的透明度数据信息,随后根据窗口标识号为“03”的窗口的透明度数据信息,通过预定的窗口显示算法计算窗口标识号为“03”的窗口的计算透明度后的显示数据信息,并更新至预定缓冲区,再循环执行步骤S7020。
在一具体应用场景中,在多***终端设备B中,包括第一***OS1和第二***OS2,多***终端设备B中通过渲染器管理第一***OS1和第二***OS2中各个窗口的显示相关信息,在多***终端设备B中首先启动渲染器,并在该渲染器中创建一个用于实现该渲染器与第一***OS1和第二***OS2的各个窗口进行通信的通信文件,如Soket(套接字)文件,渲染器监听该通信文件,以用于获取第一***OS1和第二***OS2各自的窗口的显示相关信息;第一***OS1和第二***OS2拥有用各自的窗口管理器,在多***终端设备B中的渲染器启动后,当多***终端设备B中任一***的窗口管理器启动时,如第一***OS1的窗口管理器启动时,窗口管理器启动的流程图如图8所示,当第一***OS1的***启动后,启动第一***OS1的窗口管理器,随后获取第一***OS1的***名称,并将第一***OS1的***名称经过预定的编码方式,如Base64编码方式,进行相应处理,并将处理后的第一***OS1的***名称作为第一***OS1本地通信文件的名称,如Soket文件,随后修改第一***OS1中应用启动的环境变量,并通过第一***OS1的窗口管理器监听第一***OS1本地Soket文件以等待第一***OS1的应用接入;当第一***OS1中的任一应用,如App1启动时,启动流程如图9所示,首先读取第一***OS1的环境变量,获得需要连接的第一***OS1的本地Soket文件,随后第一***OS1的App1通过该Soket文件连接第一***OS1的窗口管理器,随后第一***OS1的窗口管理器将创建第一***OS1的App1的显示窗口的消息发送至渲染器中的通信文件,随后通过渲染器创建第一***OS1的App1的显示窗口,窗口创建过程如图10所示;当第一***OS1的App1应用退出后,则通过渲染器关闭并销毁第一***OS1的App1的窗口。
需要说明的是,本领域技术人员可以了解到,本发明中虽以终端设备的渲染器为例对多***中的各个窗口进行管理,但在此不做限定。
图11为本发明中另一实施例的多***终端设备的结构示意图。
本发明的实施例中,多***终端设备包括用于管理窗口的渲染器,渲染器包括的各模块所执行的内容概述如下:获取模块1110获取多个***各自的窗口的显示相关信息;计算确定模块1120根据已获取的各个***的窗口的显示相关信息,通过预定的窗口显示算法计算确定多个***的窗口混合显示数据;显示模块1130基于窗口混合显示数据,通过多***终端设备的显示驱动显示多个***混合后的各个窗口。
本发明的实施例中,提出了一种多***终端设备,获取多个***各自的窗口的显示相关信息,为后续能够正确显示多个***各自的窗口提供了必要的前提保障;根据已获取的各个***的窗口的显示相关信息,通过预定的窗口显示算法计算确定多个***的窗口混合显示数据,实现了快速正确地处理各个***的窗口的显示相关信息,并得到各个***的窗口的正确的显示数据,避免了混合多窗口的显示数据时发生错误而导致多***各个窗口无法正常同时显示的情况;基于窗口混合显示数据,通过多***终端设备的显示驱动显示多个***混合后的各个窗口,实现了正确地显示各个***的窗口,避免了多***窗口同时显示而导致显示驱动绘制多***各窗口时发生冲突而无法正常同时绘制多***的各个窗口的情况,进一步地,提高了用户的使用体验。以下针对各个模块的具体实现做进一步的说明:
获取模块1110,用于获取多个***各自的窗口的显示相关信息;
计算确定模块1120,用于根据已获取的各个***的窗口的显示相关信息,通过预定的窗口显示算法计算确定多个***的窗口混合显示数据;
显示模块1130,用于基于窗口混合显示数据,通过多***终端设备的显示驱动显示多个***混合后的各个窗口。
可选地,该多***终端设备还包括:
获取及存储模块,用于依据窗口创建时间获取并存储多个***各自的窗口的显示相关信息至窗口栈,窗口栈以栈的队列顺序存储多个***各自的窗口的显示相关信息。
优选地,获取模块,包括:
第一获取单元,用于基于窗口栈的队列顺序依次获取多个***各自的窗口的显示相关信息;
其中,窗口的显示相关信息包括以下至少一项:
窗口的标识信息;
窗口的显示数据信息;
窗口的显示透明度属性信息;
窗口的显示透明度数据信息。
优选地,计算确定模块,包括:
S1、第二获取单元,用于依据窗口栈的队列顺序,依次获取窗口栈中一个窗口的显示相关信息;
S2、第一判断单元,用于根据已获取的窗口的显示相关信息中的显示透明度属性信息,判断该窗口是否透明;
S3、循环执行单元,用于若判断该窗口为透明,则循环执行S1,直至判断任一窗口为不透明;
S4、第三获取单元,用于获取不透明的任一窗口的透明度数据信息以及已获取的其它窗口的显示数据信息;
S5、计算确定单元,用于基于已获取的不透明的任一窗口的透明度数据信息以及已获取的其它窗口的显示数据信息,通过预定的窗口显示算法计算确定多个***的窗口混合显示数据。
可选地,该多***终端设备还包括:
第一创建模块,用于创建用于保存多个***各自窗口的显示相关信息的预定缓冲区;
其中,S3循环执行单元中若判断该窗口为透明,在循环执行S1之前,该多***终端设备还包括:
S6、第二判断单元,用于判断预定缓冲区中是否存储该窗口的显示相关信息;
S7、存储单元,用于若预定缓冲区中未存储有该窗口的显示相关信息,将该窗口的显示相关信息存储至预定缓冲区,再循环执行S1。
可选地,若S6第二判断单元中判断预定缓冲区中存储有该窗口的显示相关信息,该多***终端设备还包括:
S8、第四获取单元,用于从预定缓冲区中获取该窗口的透明度数据信息;
S9、计算及更新单元,用于根据该窗口的透明度数据信息,通过预定的透明度算法计算该窗口的计算透明度后的显示数据信息,并更新至预定缓冲区,再循环执行S1。
可选地,还包括第二创建模块:
第二创建模块,用于创建用于实现渲染器与多个***的各个窗口进行通信的通信文件;
渲染器,还用于监听通信文件,以用于获取多个***各自的窗口的显示相关信息。
本发明实施例提供的多***终端设备可以实现上述提供的方法实施例,具体功能实现请参见方法实施例中的说明,在此不再赘述。
本技术领域技术人员可以理解,本发明包括涉及用于执行本申请中所述操作中的一项或多项的设备。这些设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备。这些设备具有存储在其内的计算机程序,这些计算机程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随即存储器)、EPROM(Erasable ProgrammableRead-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically ErasableProgrammable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。
本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本发明公开的结构图和/或框图和/或流图的框或多个框中指定的方案。
本技术领域技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (13)
1.一种多***终端设备中窗口的管理方法,其特征在于,包括:
获取多个***各自的窗口的显示相关信息;
根据已获取的各个***的窗口的显示相关信息,通过预定的窗口显示算法计算确定所述多个***的窗口混合显示数据;
基于所述窗口混合显示数据,通过多***终端设备的显示驱动显示所述多个***混合后的各个窗口。
2.根据权利要求1所述的管理方法,其特征在于,该方法还包括:
依据窗口创建时间获取并存储多个***各自的窗口的显示相关信息至窗口栈,所述窗口栈以栈的队列顺序存储所述多个***各自的窗口的显示相关信息。
3.根据权利要求2所述的管理方法,其特征在于,所述获取多个***各自的窗口的显示相关信息,包括:
基于窗口栈的队列顺序依次获取多个***各自的窗口的显示相关信息;
其中,所述窗口的显示相关信息包括以下至少一项:
窗口的标识信息;
窗口的显示数据信息;
窗口的显示透明度属性信息;
窗口的显示透明度数据信息。
4.根据权利要求3所述的管理方法,其特征在于,所述根据已获取的各个***的窗口的显示相关信息,通过预定的窗口显示算法计算确定所述多个***的窗口混合显示数据,包括:
S1、依据所述窗口栈的队列顺序,依次获取所述窗口栈中一个窗口的显示相关信息;
S2、根据已获取的窗口的显示相关信息中的显示透明度属性信息,判断该窗口是否透明;
S3、若判断该窗口为透明,则循环执行S1,直至判断任一窗口为不透明;
S4、获取所述不透明的任一窗口的透明度数据信息以及已获取的其它窗口的显示数据信息;
S5、基于已获取的所述不透明的任一窗口的透明度数据信息以及所述已获取的其它窗口的显示数据信息,通过预定的窗口显示算法计算确定所述多个***的窗口混合显示数据。
5.根据权利要求4所述的管理方法,其特征在于,该方法还包括:
创建用于保存多个***各自窗口的显示相关信息的预定缓冲区;
其中,所述S3中若判断该窗口为透明,在循环执行S1之前,该方法还包括:
S6、判断所述预定缓冲区中是否存储所述该窗口的显示相关信息;
S7、若所述预定缓冲区中未存储有所述该窗口的显示相关信息,将所述该窗口的显示相关信息存储至所述预定缓冲区,再循环执行S1。
6.根据权利要求5所述的管理方法,其特征在于,若所述S6中判断所述预定缓冲区中存储有所述该窗口的显示相关信息,该方法还包括:
S8、从所述预定缓冲区中获取所述该窗口的透明度数据信息;
S9、根据所述该窗口的透明度数据信息,通过预定的透明度算法计算所述该窗口的计算透明度后的显示数据信息,并更新至所述预定缓冲区,再循环执行S1。
7.一种多***终端设备,其特征在于,所述多***终端设备包括用于管理窗口的渲染器,所述渲染器包括:
获取模块,用于获取多个***各自的窗口的显示相关信息;
计算确定模块,用于根据已获取的各个***的窗口的显示相关信息,通过预定的窗口显示算法计算确定所述多个***的窗口混合显示数据;
显示模块,用于基于所述窗口混合显示数据,通过多***终端设备的显示驱动显示所述多个***混合后的各个窗口。
8.根据权利要求7所述的管理方法,其特征在于,该多***终端设备还包括:
获取及存储模块,用于依据窗口创建时间获取并存储多个***各自的窗口的显示相关信息至窗口栈,所述窗口栈以栈的队列顺序存储所述多个***各自的窗口的显示相关信息。
9.根据权利要求8所述的多***终端设备,其特征在于,所述获取模块,包括:
第一获取单元,用于基于窗口栈的队列顺序依次获取多个***各自的窗口的显示相关信息;
其中,所述窗口的显示相关信息包括以下至少一项:
窗口的标识信息;
窗口的显示数据信息;
窗口的显示透明度属性信息;
窗口的显示透明度数据信息。
10.根据权利要求9所述的多***终端设备,其特征在于,所述计算确定模块,包括:
S1、第二获取单元,用于依据所述窗口栈的队列顺序,依次获取所述窗口栈中一个窗口的显示相关信息;
S2、第一判断单元,用于根据已获取的窗口的显示相关信息中的显示透明度属性信息,判断该窗口是否透明;
S3、循环执行单元,用于若判断该窗口为透明,则循环执行S1,直至判断任一窗口为不透明;
S4、第三获取单元,用于获取所述不透明的任一窗口的透明度数据信息以及已获取的其它窗口的显示数据信息;
S5、计算确定单元,用于基于已获取的所述不透明的任一窗口的透明度数据信息以及所述已获取的其它窗口的显示数据信息,通过预定的窗口显示算法计算确定所述多个***的窗口混合显示数据。
11.根据权利要求10所述的多***终端设备,其特征在于,该多***终端设备还包括:
第一创建模块,用于创建用于保存多个***各自窗口的显示相关信息的预定缓冲区;
其中,所述S3循环执行单元中若判断该窗口为透明,在循环执行S1之前,该多***终端设备还包括:
S6、第二判断单元,用于判断所述预定缓冲区中是否存储所述该窗口的显示相关信息;
S7、存储单元,用于若所述预定缓冲区中未存储有所述该窗口的显示相关信息,将所述该窗口的显示相关信息存储至所述预定缓冲区,再循环执行S1。
12.根据权利要求11所述的多***终端设备,其特征在于,若所述S6第二判断单元中判断所述预定缓冲区中存储有所述该窗口的显示相关信息,该多***终端设备还包括:
S8、第四获取单元,用于从所述预定缓冲区中获取所述该窗口的透明度数据信息;
S9、计算及更新单元,用于根据所述该窗口的透明度数据信息,通过预定的透明度算法计算所述该窗口的计算透明度后的显示数据信息,并更新至所述预定缓冲区,再循环执行S1。
13.根据权利要求7所述的多***终端设备,其特征在于,还包括第二创建模块:
所述第二创建模块,用于创建用于实现所述渲染器与多个***的各个窗口进行通信的通信文件;
所述渲染器,还用于监听所述通信文件,以用于获取多个***各自的窗口的显示相关信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710157312.7A CN106951249B (zh) | 2017-03-16 | 2017-03-16 | 多***终端设备中窗口的管理方法及多***终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710157312.7A CN106951249B (zh) | 2017-03-16 | 2017-03-16 | 多***终端设备中窗口的管理方法及多***终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106951249A true CN106951249A (zh) | 2017-07-14 |
CN106951249B CN106951249B (zh) | 2021-02-02 |
Family
ID=59473438
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710157312.7A Active CN106951249B (zh) | 2017-03-16 | 2017-03-16 | 多***终端设备中窗口的管理方法及多***终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106951249B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108279963A (zh) * | 2018-01-05 | 2018-07-13 | 郑州信大捷安信息技术股份有限公司 | 一种单Linux内核多Android***的智能终端显示虚拟化方法 |
CN111352677A (zh) * | 2018-12-20 | 2020-06-30 | 青岛海信移动通信技术股份有限公司 | 应用程序的界面显示方法及终端 |
CN113721809A (zh) * | 2021-09-08 | 2021-11-30 | 遨博(江苏)机器人有限公司 | 一种窗口展示方法及*** |
CN114116087A (zh) * | 2021-10-09 | 2022-03-01 | 维沃移动通信有限公司 | 双***间的界面操作方法、装置、电子设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102053871A (zh) * | 2009-10-28 | 2011-05-11 | ***通信集团公司 | 一种应用程序图像的显示方法和装置 |
CN105404547A (zh) * | 2014-09-12 | 2016-03-16 | 阿里巴巴集团控股有限公司 | 一种操作***的融合方法及装置 |
-
2017
- 2017-03-16 CN CN201710157312.7A patent/CN106951249B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102053871A (zh) * | 2009-10-28 | 2011-05-11 | ***通信集团公司 | 一种应用程序图像的显示方法和装置 |
CN105404547A (zh) * | 2014-09-12 | 2016-03-16 | 阿里巴巴集团控股有限公司 | 一种操作***的融合方法及装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108279963A (zh) * | 2018-01-05 | 2018-07-13 | 郑州信大捷安信息技术股份有限公司 | 一种单Linux内核多Android***的智能终端显示虚拟化方法 |
CN108279963B (zh) * | 2018-01-05 | 2020-11-20 | 郑州信大捷安信息技术股份有限公司 | 一种单Linux内核多Android***的智能终端显示虚拟化方法 |
CN111352677A (zh) * | 2018-12-20 | 2020-06-30 | 青岛海信移动通信技术股份有限公司 | 应用程序的界面显示方法及终端 |
CN111352677B (zh) * | 2018-12-20 | 2023-05-09 | 青岛海信移动通信技术有限公司 | 应用程序的界面显示方法及终端 |
CN113721809A (zh) * | 2021-09-08 | 2021-11-30 | 遨博(江苏)机器人有限公司 | 一种窗口展示方法及*** |
CN113721809B (zh) * | 2021-09-08 | 2023-07-04 | 遨博(江苏)机器人有限公司 | 一种窗口展示方法及*** |
CN114116087A (zh) * | 2021-10-09 | 2022-03-01 | 维沃移动通信有限公司 | 双***间的界面操作方法、装置、电子设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106951249B (zh) | 2021-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106951249A (zh) | 多***终端设备中窗口的管理方法及多***终端设备 | |
CN103699372B (zh) | 从中央存储装置引导计算机*** | |
US20100083159A1 (en) | Segmented progress indicator | |
CN112137591B (zh) | 基于视频流的目标物位置检测方法、装置、设备及介质 | |
US10867582B2 (en) | Method and apparatus for generating an image | |
CN108984137B (zh) | 双屏显示方法及其***、计算机可读存储介质 | |
JP5668078B2 (ja) | サーバサイドレンダリング | |
CN108876764A (zh) | 渲染图像获取方法、装置、***和存储介质 | |
CN111862096A (zh) | 图像分割方法、装置、电子设备及存储介质 | |
KR102186632B1 (ko) | 의료 영상의 분석 모델을 학습시키는 학습 장치 및 그 학습 방법 | |
CN111860377A (zh) | 基于人工智能的直播方法、装置、电子设备及存储介质 | |
CN113298159B (zh) | 目标检测方法、装置、电子设备及存储介质 | |
JP7420916B2 (ja) | 機械学習システムのリアルタイム展開 | |
CN111752435A (zh) | 多媒体和多文件的多媒体实时渲染方法、***及装置 | |
CN101562005A (zh) | 文字显示装置 | |
CN117237755A (zh) | 目标检测模型训练方法及装置、图像检测方法及装置 | |
CN113591580B (zh) | 图像标注方法、装置、电子设备和存储介质 | |
US7757001B2 (en) | System, method and graphical user interface for identifying image from remote site during screen sharing | |
JP7203000B2 (ja) | プログラム、情報処理方法及び情報処理装置 | |
US20180196928A1 (en) | Network visualization for access controls | |
CN112017763A (zh) | 医疗影像数据传输方法、装置、设备及介质 | |
CN113409280B (zh) | 医学影像的处理方法、标注方法和电子设备 | |
JP2021124896A5 (zh) | ||
CN106681868A (zh) | 图像数据测试方法及*** | |
CN113703865B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230428 Address after: Room 401, Floor 4, No. 2, Haidian East Third Street, Haidian District, Beijing 100080 Patentee after: Yuanxin Information Technology Group Co.,Ltd. Address before: 100176 room 2222, building D, building 33, 99 Kechuang 14th Street, Beijing Economic and Technological Development Zone, Beijing Patentee before: YUANXIN TECHNOLOGY |