CN112905275A - 用于多操作***的显示方法和显示设备 - Google Patents
用于多操作***的显示方法和显示设备 Download PDFInfo
- Publication number
- CN112905275A CN112905275A CN201911217493.3A CN201911217493A CN112905275A CN 112905275 A CN112905275 A CN 112905275A CN 201911217493 A CN201911217493 A CN 201911217493A CN 112905275 A CN112905275 A CN 112905275A
- Authority
- CN
- China
- Prior art keywords
- operating system
- foreground
- display
- synthesizer
- identification
- 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
- 238000000034 method Methods 0.000 title claims abstract description 50
- 239000000872 buffer Substances 0.000 claims description 13
- 230000015572 biosynthetic process Effects 0.000 claims description 8
- 238000003786 synthesis reaction Methods 0.000 claims description 8
- 239000000203 mixture Substances 0.000 claims description 3
- 230000008569 process Effects 0.000 claims description 3
- 230000000694 effects Effects 0.000 claims description 2
- 239000010410 layer Substances 0.000 description 32
- 230000009977 dual effect Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- PPDBOQMNKNNODG-NTEUORMPSA-N (5E)-5-(4-chlorobenzylidene)-2,2-dimethyl-1-(1,2,4-triazol-1-ylmethyl)cyclopentanol Chemical compound C1=NC=NN1CC1(O)C(C)(C)CC\C1=C/C1=CC=C(Cl)C=C1 PPDBOQMNKNNODG-NTEUORMPSA-N 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000002085 persistent effect Effects 0.000 description 4
- 238000005538 encapsulation Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 239000002355 dual-layer Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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
- G06F9/452—Remote windowing, e.g. X-Window System, desktop virtualisation
-
- 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/4401—Bootstrapping
- G06F9/4406—Loading of operating system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
提出了一种用于多操作***的显示方法和设备。该方法包括:第一操作***的第一合成器接收来自所述第一操作***的显示请求;所述第一合成器在用户态判断所述第一操作***是否位于前台;以及在确定所述第一操作***位于前台时,所述第一合成器利用内核态的帧缓存在屏幕上实现显示通过在用户空间而非内核层进行双***显示虚拟化,本发明的显示方案能够通过减少不必要的底层处理而降低功耗。进一步地,该方案通过引入全局前台标识来进一步提升各操作***的状态判断和***切换的效率。
Description
技术领域
本发明涉及操作***,尤其涉及一种用于多操作***的显示方法和显示设备。
背景技术
随着诸如智能手机的移动设备的日益普及,人们对移动设备的依赖度也越来越高。移动平台上实现的操作***(即,移动操作***)包括Android***、iOS***和AliOS等。
在现有的应用中,一个移动设备上通常至安装一个操作***。但随着用户需求的日益高涨以及特殊用途移动设备的引入(例如,专用警务终端等),有越来越多的移动设备开始预装两个或多个操作***。
在移动设备安装有多个操作***的情况下,由于移动设备的一套硬件需要支持多个操作***,因此需要借助显示***虚拟化技术来实现针对每个操作***的显示支持。由于移动设备功耗和处理能力受限的特性,如何在安装有多个操作***时进行高效且低功耗的显示,成为了本领域亟需解决的问题。
发明内容
有鉴于此,本发明提出了一种用于多操作***的显示方案。该方案通过在用户空间而非内核层进行双***显示虚拟化,能够通过减少不必要的底层处理而降低功耗。进一步地,该方案通过引入全局前台标识来进一步提升各操作***的状态判断和***切换的效率。
根据本发明的第一方面,提出了一种用于多操作***的显示方法,包括:第一操作***的第一合成器接收来自所述第一操作***的显示请求;所述第一合成器在用户态判断所述第一操作***是否位于前台;以及在确定所述第一操作***位于前台时,所述第一合成器利用内核态的帧缓存在屏幕上实现显示。
根据本发明的第二方面,提出了一种显示设备,所述显示设备安装有多个操作***,所述多个操作***包括第一操作***和第二操作***,其中,所述第一操作***包括:第一合成器,用于:接收来自所述第一操作***的显示请求;在用户态判断所述第一操作***是否位于前台;以及在确定所述第一操作***位于前台时,利用内核态的帧缓存在所述设备的屏幕上实现显示,并且所述第二操作***包括:第二合成器,用于:接收来自所述第二操作***的显示请求;在用户态判断所述第二操作***是否位于前台;以及在确定所述第二操作***位于后台时,不进行合成显示操作。
根据本发明的第三方面,提出了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如上任一项所述的方法。
根据本发明的第四方面,提出了一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上所述的方法。
由此,本发明的多操作***显示方法和设备通过在用户空间而不是内核层进行双***显示虚拟化,从而使得上述虚拟化无需依赖于底层显示***实现,并且能够更为普适化的移至到各类移动设备平台。进一步地,本发明的显示方案通过引入全局前台标识和可实现为root***的切换器,能够实现极为高效的***切换,并且由于后台***不进行任何合成操作,***功耗也得到了充分保障。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了根据本发明一个实施例的用于多操作***的显示方法的流程示意图。
图2示出了安装在一个移动设备中的双操作***的体系架构图。
图3示出了根据本发明的双***显示方案的一个示例。
图4示出了根据本发明一个实施例的安装有多个操作***的显示设备的组成示意图。
图5示出了根据本发明一个实施例可用于实现上述用于多操作***的显示方法的计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在移动平台上使用的操作***成为移动操作***,常见的移动操作***包括Android***、iOS***和AliOS***。移动操作***近似在台式机上运行的操作***,但通常较为简单,而且提供了无线通信的功能。使用移动操作***的设备有智能手机、PDA、平板电脑等,另外也包括嵌入式***、移动通信设备、无线设备等。
一般的移动设备(例如,智能手机)上通常只安装有一个操作***。而当一个移动设备上有两个独立的***同时运行时,在该移动设备就安装有双***。双***可以是两个相同或不同的操作相同同时运行。例如,在一款智能手机上同时运行的Android***和AliOS***,或是同时运行的两个Android***等。类似地,一个移动设备上还可以安装有更多的操作***,例如,三个甚至更多的操作***。
在移动设备安装有多个操作***的情况下,由于移动设备的一套硬件需要支持多个操作***,因此需要借助显示***虚拟化技术来实现针对每个操作***的显示支持。显示***虚拟化技术可以实现为操作***中用于显示界面效果的模块,通常包含上层的图形合成器,底层的帧缓存、显示驱动部分等。双***(或多***)需要实现显示***的虚拟化,即让上层的每一个***看起来都有自己独立且互不影响的显示。
在移动设备上,由于多个操作***独立运行,并且只能有一个操作***在前台运行,因此需要具备***切换功能。通过前台的应用,可以把前台***切换到后台,并将后台***切换到前台进行显示。
为了实现显示虚拟化,可以通过在内核(kernel)层增加一个封装模块,统一处理来自上层显示***请求。该封装模块则直接对接底层显示驱动模块,以进行内存分配、显示内容提交等处理。该方案优点是所有处理都在kernel层进行处理,无需上层显示***做修改,但是,由于增加了封装层,对于上层所有请求都必须进行完整处理,同时需要适配底层驱动,还存在需要更多显示缓存的拷贝等工作,因此会降低切换性能,并导致更高的***功耗。
为此,本发明提出了一种用于多操作***的显示方案。该方案通过在用户空间而非内核层进行双***显示虚拟化,能够通过减少不必要的底层处理而降低功耗。进一步地,该方案通过引入全局前台标识来进一步提升各操作***的状态判断和***切换的效率。
图1示出了根据本发明一个实施例的用于多操作***的显示方法的流程示意图。该方法可以由安装了多个操作***的移动设备,例如,智能手机执行。
在步骤S110,第一操作***的第一合成器接收来自所述第一操作***的显示请求。在此,第一操作***例如可以是Android***。Android***自带的合成器可以接收该操作***中安装的APP的显示请求,例如,某聊天器APP提交的聊天页面的显示请求。
在步骤S120,第一合成器在用户态判断所述第一操作***是否位于前台。在步骤S130,在确定所述第一操作***位于前台时,所述第一合成器利用内核态的帧缓存在屏幕上实现显示。
操作***的体系架构分为用户态和内核态。内核态(也可称为“内核层”)控制计算机的硬件资源,并提供上层应用程序运行的环境。用户态对应于上层应用程序的活动空间,也可称为用户空间。应用程序(例如,客户端APP)的执行必须依托于内核提供的资源,包括CPU资源、存储资源、I/O资源等。为了使上层应用能够访问到这些资源,内核必须为上层应用提供访问的接口:即***调用。
在此,操作***的***合成器是用于在例如客户端APP提交完整显示内容时,用于对提交内容进行合成,并提交至相应的硬件显示***(经由内核层)的上层应用。不同于在内核层进行操作***前后台判断的现有技术,本发明将操作***的前后台判断上移至用户空间,从而避免了底层涉及内存和硬件的不必要操作。
进一步地,对于作为后台操作***的第二操作***,本发明的显示方法还可以包括:第二操作***的第二合成器接收来自所述第二操作***的显示请求;所述第二合成器在用户态判断所述第二操作***是否位于前台;以及在确定所述第二操作***位于后台时,不进行合成显示操作。在此,第二操作***可以是AliOS,并且包括***自带的合成器。在本发明的显示方案中,每一个***的合成器,在***内的客户端app提交完整显示内容时候,都会根据其所属***是否是前台***,决定是否需要对客户端内容进行合成,以及是否需要提交到相应的硬件显示***。由此,能够通过在用户空间进行的判定直接避免后台的任何合成显示操作,从而进一步降低***功耗。
在本申请的显示方案中,还可以具有第三甚至更多的操作***,本发明在此不对操作***的个数进行限制。但是在一个移动设备中安装有三个或以上操作***的情况下,仍然只能有一个前台操作***(以及多个后台操作***),其运行原理与双***类似。因此下文中仍然以双***为例对多***进行说明。在此,“第一”、“第二”和“第三”旨在对同类型的不同对象加以区分,而非对次序或是重要程度做出任何暗示。
在本申请中,各个操作***的合成器可以根据各种机制来进行所属操作***是否位于前台的判断。在一个实施例中,合成器可以通过查看前台标识来判定其所属的操作***是否位于前台。为此,S120可以包括:第一合成器通过查看前台标识来判定所述第一操作***是否位于前台。相应地,所述第二合成器在用户态判断所述第二操作***是否位于前台可以包括第二合成器通过查看前台标识来判定所述第二操作***是否位于前台。在此,前台标识可以是用于指示当前前台操作***是什么操作***的标识。在一个实施例中,可以直接使用操作***名称作为前台标识。例如,在第一操作***(例如,Android***)是前台操作***时,前台标识可以是Android或其缩写And。而当第二操作***(例如,AliOS***)当前是前台操作***时,前台标识可以是AliOS或其缩写Ali。在另一个实施例中,可以前台标识也使用代号或是0和1的值来进行指代,本发明在此不做限制。为了方便位于前台和后台的操作***都能够方便获取该前台标识,在一个实施例中,该前台标识可以实现为一个全局属性,例如全局前台属性。
进一步地,通过查看前台***标识来判定所属操作***是否位于前台还可以涉及***标识。该***标识可由本***保有。例如,第一操作***保有自己的第一***标识(例如,Android),第二操作***则保有自己的第二***标识(例如,AliOS)。这样,每一个操作***都需要读取或保有2个标识,一个***标识用于标识它属于哪一个***,另一个前台标识则用于标识当前前台的***。在此,***标识也可以是一个全局属性,例如,全局***属性。***属性和前台属性这两个属性可以同时用于确定该***当前是否是前台***。只有当这2个属性值完全相同时候,这个***就是前台***。换句话说,第一合成器可以读取用于标识第一操作***的第一***标识以及用于标识当前前台***的前台标识,并且通过比较所述第一***标识与所述前台标识是否一致,判定所述第一操作***是否位于前台。类似地,第二合成器可以读取用于标识第二操作***的第二***标识以及用于标识当前前台***的前台标识,并且通过比较所述第二***标识与所述前台标识是否一致,判定所述第二操作***是否位于前台。
在双***方案中,第一操作***和第二操作***共用一个内核。图2示出了安装在一个移动设备中的双操作***的体系架构图。如图所示,操作***1和2在各自的用户空间中都包括APP层、APPframework层和***runtime(运行时)层,并且两个***共用一个kernel(内核)层。优选地,第一操作***和第二操作***在所述内核中分别保有各自独立的帧缓存,以便在切换至前台时可以直接使用其对应帧缓存中的内容送入硬件显示器进行显示。
另外,合成器中往往存在sync fence,必须要保证后台和切换过程的逻辑正确,否则容易导致fd(filedescriptor,文件描述符)泄露,造成***不稳定。于是,在一个实施例中,在确定所述第二操作***位于后台时,不进行合成显示操作可以包括:在确定所述第二操作***位于后台时,所述第二合成器拒绝对来自所述第二操作***的显示请求进行处理。为此,可以通过后台操作***的合成器直接拒绝显示请求来避免fd泄露导致的***崩溃风险。
在安装了多个操作***的情况下,由于多个操作***独立运行,并且只能有一个操作***在前台运行,因此需要具备***切换功能。通过前台的应用,可以把前台***切换到后台,并将后台***切换到前台进行显示。于是,在一个实施例中,本发明的显示方法还包括:基于用户操作,将所述第二操作***切换至前台显示。具体地,可以基于用户在所述第一操作***中的操作,将所述第二操作***切换至前台显示。例如,用户可以在作为前台操作***的第一操作***中点击相应的切换图标而直接完成从第一到第二操作***的切换。相应地,用户可以在作为前台操作***的第二操作***中点击相应的切换图标而直接完成从第二到第一操作***的切换。在设备上安装有多个操作***的情况下,则可基于用户在前台***的切换操作来到切换页面,并由用户选取想要切换至前台的操作***。
如图2所示,操作***之间的切换还可以借助独立于两个操作***的切换器(switch)进行。于是,基于用户操作,将所述第二操作***切换至前台显示包括:基于所述用户操作,所述第一操作***通知切换器进行显示切换;以及所述切换器将所述第二操作***切换至前台显示。在此,切换器可以是一个独立的root***。该root***是独立于第一和第二操作***的***,例如,一个具有root权限的部分功能的操作***。
在一个实施例中,切换器将所述第二操作***切换至前台显示可以包括:所述切换器修改前台标识,将所述前台标识从所述第一操作***修改为所述第二操作***;所述第一合成器根据所述前台标识判定所述第一操作***不位于前台,并停止显示操作;以及所述第二合成器根据所述前台标识判定所述第二操作***位于前台,并开始显示操作。
具体地,***切换的应用可以同时运行在两个操作***里。每当切换***时,首先对当前前台***进行必要的处理,改变前台属性为另外一个***,例如,从第一操作***切换至第二操作***。此时,第一合成器会因为判定本***不是前台***而使其显示内容不再提交,并且第一操作***处于非常短暂的冻屏状态。随后,切换器可以通过修改相关文件内容,切换后台***为当前活动***,再在新的前台***里面修改其前台属性为当前***,以使得新切换的前台***的显示内容能够正常显示。
为了使得***切换能够实时完成,可以在***的合成器里面增加新的接口。通过这个接口可以强制刚切换为前台的***进行显示请求的重新提交,由此保证实时切换。具体地,切换器将所述第二操作***切换至前台显示包括:所述第二合成器使得所述第二操作***重新提交显示请求;以及基于重新提交的显示请求,在屏幕上实现显示。
由此,通过***内切换应用、切换器以及全局前台属性的配合,本发明的显示方法能够以极快的速度完成显示***切换,例如,可以在数个vsync周期之内完成。
另外,为了进一步减少后台操作,还可以在将所述第一操作***切换至后台时,将所述第一操作***置为锁屏状态。为此,后台***的显示请求会变得更少,直至灭屏状态下减少为零。
在另一个实施例中,可以通过在内核层增加新的封装层来统一处理***合成器发过来操作,并将要显示的***的内容显示在屏幕上。
图3示出了根据本发明的双***显示方案的一个示例。如图所示,操作***1和2的彼此分开的用户空间中,***各自的应用(例如,app1和2)向其各自的合成器提交显示请求。合成器在用户空间中直接确定(例如,基于前台属性)本***当前是否为前台***。如果是,则使用内核层中的帧缓存进行针对硬件显示屏的显示。如果不是,则不处理接收到的显示请求。在***切换时,操作***1和2可以交互前台和后台身份,并基于切换后的身份进行操作。由此,通过在用户空间进行判断分叉,能够更为直接,改动更少的解决双***显示虚拟化问题,而且和切换保持了一致的逻辑,且无需在内核层的修改。
以上结合图1-3描述了根据本发明的用于多操作***的显示方法。相比于在底层进行显示虚拟化的移动双***方案,本发明在用户空间而非内化成进行多***显示虚拟化。
由于内核层显示部分的修改,往往需要厂商支持才能够做得稳定可靠,并且针对drm、adf、fb等各种技术方案,需要进行专门化的修改和支持,因此本发明中在用户空间实现的多***显示虚拟化不仅能够避免底层实现带来的诸多不便,还能够提升了本方案对各移动平台的移植能力,并且由于后台***不进行任何合成操作,***功耗也得到了充分保障。进一步地,本发明的显示方法通过引入全局前台标识和可实现为root***的切换器,还能实现极为高效的***切换。
图4示出了根据本发明一个实施例的安装有多个操作***的显示设备的组成示意图。如图所示,显示设备400安装有多个操作***410以及用于进行操作***切换的切换器420。多个操作***例如图示的第一操作***和第二操作***。第一操作***包括:第一合成器,用于:接收来自所述第一操作***的显示请求;在用户态判断所述第一操作***是否位于前台;以及在确定所述第一操作***位于前台时,利用内核态的帧缓存在所述设备的屏幕上实现显示。第二操作***包括:第二合成器,用于:接收来自所述第二操作***的显示请求;在用户态判断所述第二操作***是否位于前台;以及在确定所述第二操作***位于后台时,不进行合成显示操作。
第一合成器和第二合成器可以通过查看作为全局属性的前台标识来判定各自所属的操作***是否位于前台。具体地,第一合成器和第二合成器读取前台标识以及标识各自所属操作***的***标识,通过比较***标识与所述前台标识,判定各自所属的操作***是否位于前台。
在一个实施例中,第一操作***和所述第二操作***共用一个内核,并且第一操作***和第二操作***在所述内核中分别保有各自独立的帧缓存。
在确定所述第二操作***位于后台时,第二合成器可以拒绝对来自第二操作***的显示请求进行处理。
为了应对切换,第一操作***和第二操作***可以包括切换应用,用于在用户的操作下进行前后台显示切换。
具体地,显示设备400还可以安装有作为切换器的root***,所述切换器基于用户对切换应用的操作,进行操作***的前后台显示切换。
基于用户对切换应用的操作,切换器420可以进一步用于:修改前台标识,将所述前台标识从所述第一操作***修改为所述第二操作***,并且所述第一合成器根据所述前台标识判定所述第一操作***不位于前台,并停止显示操作,所述第二合成器根据所述前台标识判定所述第二操作***位于前台,并开始显示操作。
第二合成器包括重新提交接口,所述接口用于使得所述第二操作***重新提交显示请求,并且第二合成器基于重新提交的显示请求,在屏幕上实现显示。
切换器420还可以用于:在将所述第一操作***切换至后台时,将所述第一操作***置为锁屏状态。
图5示出了根据本发明一个实施例可用于实现上述用于多操作***的显示方法的计算设备的结构示意图。
参见图5,计算设备500包括存储器510和处理器520。
处理器520可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器1020可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)等等。在一些实施例中,处理器520可以使用定制的电路实现,例如特定用途集成电路(ASIC)或者现场可编程逻辑门阵列(FPGA)。
存储器510可以包括各种类型的存储单元,例如***内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理器520或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。***内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。***内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器510可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器510可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
存储器510上存储有可执行代码,当可执行代码被处理器520处理时,可以使处理器520执行上文述及的用于多操作***的显示方法。
上文中已经参考附图详细描述了根据本发明的用于多操作***的显示方法和显示设备。本发明的多操作***显示方法和设备通过在用户空间而不是内核层进行双***显示虚拟化,从而使得上述虚拟化无需依赖于底层显示***实现,并且能够更为普适化的移至到各类移动设备平台。进一步地,本发明的显示方案通过引入全局前台标识和可实现为root***的切换器,能够实现极为高效的***切换,并且由于后台***不进行任何合成操作,***功耗也得到了充分保障。
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的***和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (26)
1.一种用于多操作***的显示方法,包括:
第一操作***的第一合成器接收来自所述第一操作***的显示请求;
所述第一合成器在用户态判断所述第一操作***是否位于前台;以及
在确定所述第一操作***位于前台时,所述第一合成器利用内核态的帧缓存在屏幕上实现显示。
2.如权利要求1所述的方法,还包括:
第二操作***的第二合成器接收来自所述第二操作***的显示请求;
所述第二合成器在用户态判断所述第二操作***是否位于前台;以及
在确定所述第二操作***位于后台时,不进行合成显示操作。
3.如权利要求2所述的方法,其中,所述第一合成器在用户态判断所述第一操作***是否位于前台包括:
所述第一合成器通过查看前台标识来判定所述第一操作***是否位于前台。
4.如权利要求3所述的方法,其中,所述第一合成器通过查看前台***标识来判定所述第一操作***是否位于前台包括:
所述第一合成器读取用于标识所述第一操作***的第一***标识以及用于标识当前前台***的前台标识;以及
通过比较所述第一***标识与所述前台标识,判定所述第一操作***是否位于前台。
5.如权利要求2所述的方法,其中,所述第一操作***和所述第二操作***共用一个内核。
6.如权利要求5所述的方法,其中,所述第一操作***和所述第二操作***在所述内核中分别保有各自独立的帧缓存。
7.如权利要求2所述的方法,其中,在确定所述第二操作***位于后台时,不进行合成显示操作包括:
在确定所述第二操作***位于后台时,所述第二合成器拒绝对来自所述第二操作***的显示请求进行处理。
8.如权利要求2所述的方法,还包括:
基于用户操作,将所述第二操作***切换至前台显示。
9.如权利要求8所述的方法,其中,基于用户操作,将所述第二操作***切换至前台显示包括:
基于用户在所述第一操作***中的操作,将所述第二操作***切换至前台显示。
10.如权利要求8所述的方法,其中,基于用户操作,将所述第二操作***切换至前台显示包括:
基于所述用户操作,所述第一操作***通知切换器进行显示切换;以及
所述切换器将所述第二操作***切换至前台显示。
11.如权利要求10所述的方法,其中,所述切换器将所述第二操作***切换至前台显示包括:
所述切换器修改前台标识,将所述前台标识从所述第一操作***修改为所述第二操作***;
所述第一合成器根据所述前台标识判定所述第一操作***不位于前台,并停止显示操作;以及
所述第二合成器根据所述前台标识判定所述第二操作***位于前台,并开始显示操作。
12.如权利要求10所述的方法,其中,所述切换器将所述第二操作***切换至前台显示包括:
所述第二合成器使得所述第二操作***重新提交显示请求;以及
基于重新提交的显示请求,在屏幕上实现显示。
13.如权利要求10所述的方法,其中,所述切换器是root***。
14.如权利要求8所述的方法,还包括:
在将所述第一操作***切换至后台时,将所述第一操作***置为锁屏状态。
15.一种显示设备,所述显示设备安装有多个操作***,所述多个操作***包括第一操作***和第二操作***,其中,
所述第一操作***包括:
第一合成器,用于:
接收来自所述第一操作***的显示请求;
在用户态判断所述第一操作***是否位于前台;以及
在确定所述第一操作***位于前台时,利用内核态的帧缓存在所述设备的屏幕上实现显示,并且
所述第二操作***包括:
第二合成器,用于:
接收来自所述第二操作***的显示请求;
在用户态判断所述第二操作***是否位于前台;以及
在确定所述第二操作***位于后台时,不进行合成显示操作。
16.如权利要求15所述的设备,其中,所述第一合成器和第二合成器通过查看作为全局属性的前台标识来判定各自所属的操作***是否位于前台。
17.如权利要求16所述的设备,其中,所述第一合成器和第二合成器读取所述前台标识以及标识各自所属操作***的***标识,通过比较所述***标识与所述前台标识,判定各自所属的操作***是否位于前台。
18.如权利要求15所述的设备,其中,所述第一操作***和所述第二操作***共用一个内核,并且所述第一操作***和所述第二操作***在所述内核中分别保有各自独立的帧缓存。
19.如权利要求15所述的设备,其中,在确定所述第二操作***位于后台时,所述第二合成器拒绝对来自所述第二操作***的显示请求进行处理。
20.如权利要求15所述的设备,其中,所述第一操作***和所述第二操作***各自包括切换应用,用于在用户的操作下进行前后台显示切换。
21.如权利要求20所述的设备,其中,所述显示设备还安装有作为切换器的root***,所述切换器基于用户对切换应用的操作,进行操作***的前后台显示切换。
22.如权利要求21所述的设备,其中,基于用户对切换应用的操作,所述切换器进一步用于:
修改前台标识,将所述前台标识从所述第一操作***修改为所述第二操作***,并且
所述第一合成器根据所述前台标识判定所述第一操作***不位于前台,并停止显示操作,
所述第二合成器根据所述前台标识判定所述第二操作***位于前台,并开始显示操作。
23.如权利要求22所述的设备,其中,所述第二合成器包括重新提交接口,所述接口用于使得所述第二操作***重新提交显示请求,并且
所述第二合成器基于重新提交的显示请求,在屏幕上实现显示。
24.如权利要求21所述的设备,其中,所述切换器进一步用于:
在将所述第一操作***切换至后台时,将所述第一操作***置为锁屏状态。
25.一种计算设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1-14中任一项所述的方法。
26.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1-14中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911217493.3A CN112905275A (zh) | 2019-12-03 | 2019-12-03 | 用于多操作***的显示方法和显示设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911217493.3A CN112905275A (zh) | 2019-12-03 | 2019-12-03 | 用于多操作***的显示方法和显示设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112905275A true CN112905275A (zh) | 2021-06-04 |
Family
ID=76104194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911217493.3A Pending CN112905275A (zh) | 2019-12-03 | 2019-12-03 | 用于多操作***的显示方法和显示设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112905275A (zh) |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120042159A1 (en) * | 2010-08-11 | 2012-02-16 | Wei-Hung Liu | Application method for integrating heterogeneous operating systems based on the same system kernel |
KR20120116771A (ko) * | 2011-04-13 | 2012-10-23 | 주식회사 케이티 | 단말의 다중 운영체제 구동장치 및 운영체제 전환방법 |
CN103593185A (zh) * | 2013-11-04 | 2014-02-19 | 浙江大学 | 基于单Linux内核的多Android***共享输入显示设备的方法 |
CN104360900A (zh) * | 2014-11-03 | 2015-02-18 | 上海迈微软件科技有限公司 | 用于运行多操作***的方法以及相应的***和移动设备 |
CN104516760A (zh) * | 2014-12-12 | 2015-04-15 | 华为技术有限公司 | 一种操作***热切换的方法、装置及移动终端 |
US20160048398A1 (en) * | 2014-08-12 | 2016-02-18 | Linkedin Corporation | Enhancing a multitasking user interface of an operating system |
CN105653336A (zh) * | 2015-12-30 | 2016-06-08 | 惠州市德赛西威汽车电子股份有限公司 | 双操作***下整合应用的方法 |
CN105677315A (zh) * | 2015-12-28 | 2016-06-15 | 北京元心科技有限公司 | 多操作***的界面显示方法及智能终端 |
US20170118611A1 (en) * | 2015-10-27 | 2017-04-27 | Blackberry Limited | Monitoring resource access |
CN107278294A (zh) * | 2017-05-12 | 2017-10-20 | 深圳前海达闼云端智能科技有限公司 | 输入设备实现方法及其实现装置 |
US20170337026A1 (en) * | 2016-05-20 | 2017-11-23 | International Business Machines Corporation | Dynamic display arrangement |
CN108089928A (zh) * | 2016-11-22 | 2018-05-29 | 华为技术有限公司 | 终端控制方法及装置 |
CN108124476A (zh) * | 2017-09-18 | 2018-06-05 | 深圳前海达闼云端智能科技有限公司 | 多操作***的显示方法和装置,计算机设备和存储介质 |
CN108304248A (zh) * | 2017-12-19 | 2018-07-20 | 西安电子科技大学 | 一种多***虚拟化的移动设备 |
CN110058905A (zh) * | 2018-01-18 | 2019-07-26 | 阿里巴巴集团控股有限公司 | 事件处理及操作***管理方法、装置、设备以及存储介质 |
-
2019
- 2019-12-03 CN CN201911217493.3A patent/CN112905275A/zh active Pending
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120042159A1 (en) * | 2010-08-11 | 2012-02-16 | Wei-Hung Liu | Application method for integrating heterogeneous operating systems based on the same system kernel |
KR20120116771A (ko) * | 2011-04-13 | 2012-10-23 | 주식회사 케이티 | 단말의 다중 운영체제 구동장치 및 운영체제 전환방법 |
CN103593185A (zh) * | 2013-11-04 | 2014-02-19 | 浙江大学 | 基于单Linux内核的多Android***共享输入显示设备的方法 |
US20160048398A1 (en) * | 2014-08-12 | 2016-02-18 | Linkedin Corporation | Enhancing a multitasking user interface of an operating system |
CN104360900A (zh) * | 2014-11-03 | 2015-02-18 | 上海迈微软件科技有限公司 | 用于运行多操作***的方法以及相应的***和移动设备 |
CN104516760A (zh) * | 2014-12-12 | 2015-04-15 | 华为技术有限公司 | 一种操作***热切换的方法、装置及移动终端 |
US20170118611A1 (en) * | 2015-10-27 | 2017-04-27 | Blackberry Limited | Monitoring resource access |
CN105677315A (zh) * | 2015-12-28 | 2016-06-15 | 北京元心科技有限公司 | 多操作***的界面显示方法及智能终端 |
CN105653336A (zh) * | 2015-12-30 | 2016-06-08 | 惠州市德赛西威汽车电子股份有限公司 | 双操作***下整合应用的方法 |
US20170337026A1 (en) * | 2016-05-20 | 2017-11-23 | International Business Machines Corporation | Dynamic display arrangement |
CN108089928A (zh) * | 2016-11-22 | 2018-05-29 | 华为技术有限公司 | 终端控制方法及装置 |
CN107278294A (zh) * | 2017-05-12 | 2017-10-20 | 深圳前海达闼云端智能科技有限公司 | 输入设备实现方法及其实现装置 |
CN108124476A (zh) * | 2017-09-18 | 2018-06-05 | 深圳前海达闼云端智能科技有限公司 | 多操作***的显示方法和装置,计算机设备和存储介质 |
CN108304248A (zh) * | 2017-12-19 | 2018-07-20 | 西安电子科技大学 | 一种多***虚拟化的移动设备 |
CN110058905A (zh) * | 2018-01-18 | 2019-07-26 | 阿里巴巴集团控股有限公司 | 事件处理及操作***管理方法、装置、设备以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9176765B2 (en) | Virtual machine system and a method for sharing a graphics card amongst virtual machines | |
US9268678B2 (en) | Memory defragmentation in a hosted hypervisor | |
US8478926B1 (en) | Co-processing acceleration method, apparatus, and system | |
US8610732B2 (en) | System and method for video memory usage for general system application | |
ES2886760T3 (es) | Redirección de API para sistemas operativos de capacidad limitada | |
US20190095220A1 (en) | Multicore framework for use in pre-boot environment of a system-on-chip | |
US20220230271A1 (en) | Full screen processing in multi-application environments | |
CN111737019B (zh) | 一种显存资源的调度方法、装置及计算机存储介质 | |
KR20100110824A (ko) | 다수의 그래픽 서브시스템 및 감소된 전력 소비 모드들을 구비한 연산 장치를 위한 드라이버 아키텍쳐, 소프트웨어 및 방법 | |
US9883137B2 (en) | Updating regions for display based on video decoding mode | |
US20210225096A1 (en) | Power off and power on method and apparatus for an in-vehicle system | |
US20180365425A1 (en) | Systems and methods for securely booting a system on chip via a virtual collated internal memory pool | |
US20110219373A1 (en) | Virtual machine management apparatus and virtualization method for virtualization-supporting terminal platform | |
US9805439B2 (en) | Memory space mapping techniques for server based graphics processing | |
EP2854030A1 (en) | Sharing non-page aligned memory | |
CN113204407A (zh) | 一种内存超配管理方法及装置 | |
US11037358B1 (en) | Methods and apparatus for reducing memory bandwidth in multi-pass tessellation | |
CN113886019B (zh) | 虚拟机创建方法、装置、***、介质和设备 | |
US10908958B2 (en) | Shared memory in memory isolated partitions | |
CN112905275A (zh) | 用于多操作***的显示方法和显示设备 | |
KR101614920B1 (ko) | 다수 개의 컴퓨팅 시스템 및/또는 환경들에서의 입출력 자원들의 공유 | |
CN108304200B (zh) | 一种驱动程序升级的方法、装置以及电子设备 | |
US20240192965A1 (en) | Continuity of service for virtualized device after resumption from hibernation | |
US20240220626A1 (en) | Secure boot using parallelization | |
CN117546150A (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 |