CN106575226A - 对从主机操作系统显示访客应用的促进 - Google Patents

对从主机操作系统显示访客应用的促进 Download PDF

Info

Publication number
CN106575226A
CN106575226A CN201480081498.7A CN201480081498A CN106575226A CN 106575226 A CN106575226 A CN 106575226A CN 201480081498 A CN201480081498 A CN 201480081498A CN 106575226 A CN106575226 A CN 106575226A
Authority
CN
China
Prior art keywords
buffer
visitor
drafting
operating system
application
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
Application number
CN201480081498.7A
Other languages
English (en)
Other versions
CN106575226B (zh
Inventor
任晋奎
许东晓
张献涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN106575226A publication Critical patent/CN106575226A/zh
Application granted granted Critical
Publication of CN106575226B publication Critical patent/CN106575226B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45541Bare-metal, i.e. hypervisor runs directly on hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

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)
  • User Interface Of Digital Computer (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Digital Computer Display Output (AREA)
  • Stored Programmes (AREA)

Abstract

描述用于缓冲器供应应用(“BFA”)的装置、方法以及计算机可读介质。BPA可促进在主机操作系统(“主机OS”)中执行的访客应用的显示。主机OS可提供例如通过使用仿真器的访客应用的执行,该仿真器配置成仿真访客OS环境。BFA可提供绘制缓冲器以供访客应用使用。可促使绘制缓冲器被BFA在主机OS内分配。然后BFA可促使分配的缓冲器被提供给访客应用,使得访客应用可将帧数据直接绘制到绘制缓冲器。然后在将绘制缓冲器数据与主机OS的其他绘制数据合成时BFA可促进主机OS对绘制缓冲器的访问。可描述和要求保护其他实施例。

Description

对从主机操作系统显示访客应用的促进
技术领域
本公开涉及数据处理领域,具体而言,涉及与促进主机操作系统中的访客应用的显示相关联的装置、方法和存储介质。
背景技术
本文提供的背景描述用于整体上展示本公开的上下文的目的。除非本文另外指出,否则在这个部分描述的材料并非本申请中的权利要求的现有技术,并且并没有通过包括在这个部分来被承认为现有技术。
许多计算设备环境(例如,移动设备)提供执行应用的能力。在许多设备中,设备运行特定操作系统(“OS”)和执行环境,并且允许执行为该OS和环境制作的应用。但是,在这些情景中,这些设备的用户可希望执行应用,该应用被开发以在不同的环境和/或在不同的OS下执行。例如,在一些情景中,在某个版本的Android®OS下执行的移动电话的用户可能希望执行访客应用,该访客应用最初并不是为在Android设备上操作而编写的,例如Windows®应用。
这些访客应用在一些情景中可在仿真器中执行,该仿真器允许访客应用好像它在其期望OS和环境中执行那样地执行。但是,当尝试允许访客应用绘制到计算设备的屏幕时,可能遭遇困难。在各种情景中,因为访客应用不是运行在计算设备的主机OS下,计算设备可能发现难以获得对访客应用产生的屏幕的访问,该访问是为了将访客应用绘制在设备中。
在一些技术中,使用存储器复制方案来绕过这些限制。在很多情况下,主机OS可利用两个缓冲器(前缓冲器和后缓冲器),来允许访客应用帧在后缓冲器上的绘制,并且当每个帧的绘制完成时在两个缓冲器之间切换。但是,主机OS可能不知道何时帧的绘制完成,这是因为访客应用在仿真环境中执行其绘制(并且不一定要知道主机操作系统正在等待完成的帧)。因此,主机OS在一些情景中可能周期性地轮询(poll)访客应用来确定何时完成帧。在得到这样的指示时,主机OS然后可执行访客应用的本地绘制缓冲器到主机OS的后缓冲器的复制,并且然后执行缓冲器切换以允许访客应用绘制的帧在计算设备的屏幕上出现。但是,尽管这个技术可提供用于访客应用绘制到计算设备屏幕,但是绘制缓冲器存储器的轮询和复制带来了不期望的大量处理成本。
附图说明
通过下列详细描述连同附图将容易理解实施例。为了促进该描述,类似的参考数字表示类似的结构要素。在附图的图中,通过示例的方式而不是通过限制的方式示出实施例。
图1示出根据各个实施例的配置成促进访客应用在主机OS中显示的计算设备的示例布置。
图2示出根据各个实施例的促进访客应用在主机OS中显示的缓冲器供应应用的示例布置。
图3示出根据各个实施例的绘制缓冲器合成的示例图示。
图4示出根据各个实施例的促进访客应用在主机OS中显示的缓冲器供应应用的示例过程。
图5示出根据各个实施例的用于提供缓冲器给访客应用的缓冲器供应应用的示例过程。
图6示出根据各个实施例的用于要渲染的访客屏幕的示例过程。
图7示出根据各个实施例的适合于实践本公开的各个方面的示例计算环境。
图8示出根据各个实施例的具有配置成使装置能够实践本公开的各个方面的指令的示例存储介质。
具体实施方式
在下面的详细描述中,参考了附图,所述附图形成描述的一部分,附图中类似的数字通篇表示类似的部分,并且附图中通过图示的方式示出可实践的实施例。将要理解,可利用其他实施例并且可进行结构或逻辑改变,而不脱离本公开的范围。因此,下面的详细描述并非以限制的意义进行,并且实施例的范围由所附权利要求和其等同体来限定。
各个操作可以按最有助于理解所要求保护的主题的方式依次被描述为多个离散的动作或操作。但是,描述的顺序不应当被解释为暗示这些操作必须取决于顺序。具体而言,这些操作可以不按展示的顺序来执行。所描述的操作可以按与所描述的实施例不同的顺序来执行。可执行各个附加的操作和/或在附加实施例中可省略所描述的操作。
对于本公开的目的,短语“A和/或B”是指(A)、(B)、或(A和B)。对于本公开的目的,短语“A、B、和/或C”是指(A)、(B)、(C)、(A和B)、(A和C)、(B和C)、或(A、B和C)。
描述可使用短语“在一实施例中”或“在实施例中”,其每个可指代一个或多个相同的或不同的实施例。此外,术语“包括”、“包含”、“具有”等等在关于本公开的实施例使用时是同义的。
当在本文中使用时,术语“逻辑”和“模块”可指下列、作为下列的一部分、或包括下列:专用集成电路(ASIC)、电子电路、执行一个或多个软件或固件程序的处理器(共享、专用或群组)和/或存储器(共享、专用或群组)、组合逻辑电路、和/或提供所描述的功能性的其他合适组件。当在本文中描述时,术语“逻辑”和“模块”可指代片上系统、作为片上系统的一部分、或包括片上系统,如下所述。
在各个实施例中,缓冲器供应应用(“BFA”)可配置成促进在主机操作系统(“主机OS”)中执行的访客应用的显示。在各个实施例中,主机操作系统可操作在计算设备上并且允许应用的执行。在各个实施例中,访客应用可配置成在不同于主机OS的访客操作系统(“访客OS”)中执行。主机OS可例如通过使用仿真器来提供访客应用的执行,该仿真器配置成仿真用于访客应用的访客OS环境。在各个实施例中,BFA可配置成提供绘制缓冲器,以供访客应用使用。在各个实施例中,可促使由BFA(或者由BFA的助理应用)在主机OS内分配绘制缓冲器。然后,BFA可促使分配的缓冲器被提供给访客应用,使得访客应用可将帧数据直接绘制到绘制缓冲器。因为绘制缓冲器被分配成对BFA可用并且对BFA已知,但是,当将绘制缓冲器数据与主机OS的其他绘制数据合成时,BFA然后可促进主机OS对绘制缓冲器的访问。在各个实施例中,通过执行绘制缓冲器的这个分配和供应,可减少上面所论述的开销问题的需要。具体而言,BFA可减少轮询访客应用的需要,该轮询用于确定何时绘制帧和/或来自访客应用的绘制缓冲器的帧数据的复制。以下提供特定非限制的实施例和实现示例。
现在参考图1,根据各个实施例的配置成促进访客应用150的显示的计算设备105的示例布置。在各个实施例中,计算设备105可包括各种类型的计算设备,包括但不限于,移动设备、移动电话、膝上型计算机、桌上型计算机、嵌入式系统等等。计算设备105可包括设备存储器160,其可包括如可理解的各种类型的可移除或永久存储器(或存储设备)。主机OS120可从设备存储器160内部执行。在一些实施例中,主机OS 120可以是某个版本的AndroidTM操作系统,但是在各个实施例中,主机OS 120可包括但不限于,配置成在移动或非移动计算设备上操作的其他操作系统,例如,iOSTM、WindowsTM、Fire OSTM、以及其他OS。在各个实施例中,主机OS 120可配置成支持一个或多个应用(例如缓冲器供应应用150(“BPA150”))的执行,该缓冲器供应应用150可配置成促进访客应用150在主机OS 120中的显示,如本文所描述的那样。主机OS 120还可配置成支持软件合成器应用130(“SWC 130”)的执行,软件合成器应用130可配置成执行绘制数据的合成,如本文所描述的那样。以下描述BPA150和SWC 130的具体动作。
计算设备105也可包括访客应用150。在各个实施例中,访客应用150可配置成在与主机OS 120不同的操作系统上执行。例如,在一些实施例中,访客应用150可以是配置成在WindowsTM操作系统上执行的应用。此外,在各个实施例中,计算设备105可包括用于执行本文所描述的一个或多个技术的硬件逻辑。具体而言,主机OS 20可包括硬件合成器140(“HWC140”),其可配置成执行绘制数据的合成,如本文所描述的那样。可注意到,虽然在本文的示例中将特定特征示出为由硬件和/或软件执行,但是它们仅作为示例提供并且不应当必须解读为对于本文描述的实施例需要任何特定的轨迹。
现在参考图2,根据各个实施例示出促进访客应用在主机OS 120中显示的BPA 100的示例布置。在各个实施例中,BPA 100可配置成与其他应用105并排地在计算设备105上操作。在一些实施例中,访客应用150和BPA 100可以用不同编程语言来实现。例如,在图1所示出的示例中,主机OS可以是AndroidTM OS,其中BPA 100用JavaTM实现,而访客应用可以是用C++实现的WindowsTM应用。在其他实现中,在结合本文描述的实施例的方面时可以利用不同的编程语言;此外,在一些实施例中,可以利用相同的编程语言整个或部分地实现BPA 100和访客应用150。因此,作为示例,这样提供本文参考图1描述的特定OS和编程语言示例,并且并不因此倾向于特定实现。
在各个实施例中,BPA 100可配置成在不同过程中执行该访客应用150,如所示出的那样。在各个实施例中,当本文利用术语“过程”时,这样的使用可包括用于在计算设备上执行的单独应用的操作的各个技术,包括但不限于,分开的过程、线程、方法、分开的处理器上的操作、分开的处理器核上的操作、等等。此外,在各个实施例中,访客应用150和BPA 100可整体或部分地在公共线程或过程上执行。在各个实施例(例如图1中示出的实施例)中,访客应用150可在由仿真器260促进时在计算设备上执行。在各个实施例中,仿真器260可配置成给访客应用150提供环境,在该环境中执行对于访客应用150看起来像是访客OS(与主机OS 120不同),访客应用配置成在该访客OS中执行,如可以理解的那样。在各个实施例中,仿真器260可配置成通过使用仿真器服务240与主机OS 120应用互操作,其可包括可配置成在与访客应用150相同的过程中执行的应用或其他代码。在一些实施例中,仿真器服务240可配置成在主机OS 120内从设备存储器160分配存储器以供仿真器260使用。在一些实施例中,仿真器160可提供这个存储器给访客应用150,以供访客应用150使用,好像它是访客OS存储器一样。在各个实施例中,可以利用其他存储器分配方法来提供存储器,以供访客应用150使用,如可理解的那样。此外,在各个实施例中,BPA 100可配置成与仿真器助理230互操作,该仿真器助理230可包括可配置成绑定到仿真器服务240以允许供应数据或其他信息给仿真器260的应用或其他代码。
在各个实施例中,访客应用150可配置成绘制帧数据的一个或多个图形帧到绘制缓冲器,以便于提供图形界面给计算设备105的用户。在各个实施例中,BPA 100可配置成促使绘制缓冲器210的分配,并且提供该绘制缓冲器210给访客应用150,用于绘制帧数据。在各个实施例中,BPA 100可配置成创建绘制缓冲器210,该绘制缓冲器210对于BPA 100是本地的。在一些实施例中,这个绘制缓冲器210在由BPA 100创建的时候可以是未分配的。在一些这种实施例中,BPA 100可将绘制缓冲器210创建为绘制缓冲器引用220,其稍后可分配在设备存储器160中,例如本文所描述的。在各个实施例中,BPA 100可配置成在绘制缓冲器212的队列内创建绘制缓冲器210,如可以理解的那样。BPA 100可配置成在创建之后(以及在分配之前)将绘制缓冲器210出列,使得它可不被BPA 100或主机OS 120的其他过程用来显示到计算设备105的任何显示器。
在各个实施例中,BPA 100可通过发送绘制缓冲器引用220给仿真器助理230来促使绘制缓冲器210的分配,仿真器助理230可在与BPA 100相同的过程中执行。仿真器助理230又可以将绘制缓冲器引用220发送到仿真器服务240,仿真器服务240可配置成分配存储器给绘制缓冲器210,如所示出的那样。仿真器服务240又可配置成将现在分配的绘制缓冲器210提供给访客应用150。例如,如果访客应用150是WindowsTM应用,则绘制缓冲器210可被提供给访客应用150作为标准视频图像阵列(“VGA”)缓冲器,如可以理解的那样。为了更清晰图示的目的,绘制缓冲器210在访客应用150中用虚线示出,以示出当绘制缓冲器210被访客应用150视为本地缓冲器时,绘制缓冲器由BPA 100创建并且可直接由BPA 100访问。
在将绘制缓冲器210供应到访客应用150的时候,访客应用150可继续以将帧数据绘制到绘制缓冲器210。然后这个帧数据可对于BPA 100可访问,并且因此对于计算设备105上的主机OS 120的其他过程可访问。因此,BPA 100可配置成将(现在分配的)绘制缓冲器210入列。在各个实施例中,然后这个入列的缓冲器(其对于计算设备作为主机OS 120应用绘制缓冲器出现)可由主机OS用于显示来自访客应用150的帧数据。
图3示出根据各个实施例的绘制数据合成的示例图示。在各个实施例中,可利用图3中示出的技术以组合来自应用(并且特别地访客应用150)的帧数据和其他帧数据,例如主机OS 120绘制数据。因此,如在图3中所示,访客应用150可绘制到绘制缓冲器210(再次,用虚线示出),以便于绘制与访客应用150关联的应用屏幕310。因此这个应用屏幕310可被绘制到对主机OS 120可用的绘制缓冲器,如上所述。此外,主机OS 120可附加地能访问各个与OS关联的绘制数据,例如状态栏340、控制栏330、以及背景320。在各个实施例中,主机OS120可利用这个绘制数据来显示主机OS 120用户界面要素和功能性。如图3示出的,通过使用BPA 100,访客应用150的应用屏幕310可仅作为主机OS 120的绘制数据可用,并且因此应用屏幕310可与主机OS绘制数据合成。
在各个实施例中,可利用各个技术来将访客应用150的应用屏幕310与主机OS 120的绘制数据合成。在一些实施例中,这些技术可包括AndroidTM OS的各个实现中利用的绘制数据合成技术。在各个实施例中,主机OS 120可利用SWC 130来将主机OS 120绘制数据(包括状态栏340、控制栏330、和背景320)合成进帧缓冲器3260中,其中它们可作为屏幕数据325存在。接下来,使用HWC 140,计算设备105在主机OS 120的控制下可将屏幕数据325(作为副本328)复制到显示缓冲器350,根据显示缓冲器350,显示器110可直接渲染屏幕。计算设备105还可从绘制缓冲器210直接合成应用屏幕315,作为屏幕数据318的副本之上的副本318。在各个实施例中,通过提供应用屏幕310用于与主机OS屏幕数据325的直接的、基于硬件的合成,BPA 100可提供应用屏幕对显示缓冲器350并且因此对计算设备105的显示器110的更快且更高效的供应。
图4示出根据各个实施例的用于促进访客应用在主机OS中的显示的缓冲器供应应用的示例过程400。尽管图4以特定顺序示出特定操作,但在各个实施例中,操作可被组合、分成部分、和/或省略。在各个实施例中,过程400(以及子过程)的操作可由BPA 100、SWC130、和/或HWC 140中的一个或多个来执行。在其他实施例中,操作可由与所示出的那些实体不同的实体来执行。过程可在操作410开始,其中BPA 100可创建绘制缓冲器210。在各个实施例中,创建的绘制缓冲器210在创建的时候可仅包括绘制缓冲器引用220,而在其他实施例中,创建的绘制缓冲器210可由BPA 100在创建的时候分配。接下来,在操作420处,BPA100可将绘制缓冲器210从绘制缓冲器队列212出列。
在操作430处,BPA 100可提供缓冲器给访客应用150,以便于访客应用150可将绘制缓冲器210用于绘制帧数据。以下参考图5的过程500描述操作430的特定实施例。接下来,在操作440处,BPA 100可将绘制缓冲器入列,该绘制缓冲器可以在操作430期间被分配(如果它先前没有被分配)。接下来,在操作450处,访客应用150可促使其帧数据被渲染,使得可渲染其应用屏幕310。以下参考图6的过程600描述操作450的特定实施例。接着过程可结束。
图5示出根据各个实施例的用于提供绘制缓冲器210给访客应用150的缓冲器供应应用100的示例过程500。尽管图5以特定顺序示出特定操作,但在各个实施例中操作可被组合、分成部分、和/或省略。在各个实施例中,过程500(以及子过程)的操作可由BPA 100、仿真器助理230、仿真器服务240、和/或仿真器260中的一个或多个来执行。在其他实施例中,操作可由与示出的那些实体不同的实体来执行。
过程可在操作510处开始,其中BPA 100可发送绘制缓冲器引用220到仿真器助理230,该仿真器助理230可在与BPA 100相同的过程中执行。在各个实施例中,绘制缓冲器引用220所指向的绘制缓冲器210在执行操作510期间可被分配或可不被分配。接下来,在操作520处,仿真器助理230可提供绘制缓冲器引用220给仿真器服务240,其可在与仿真器助理230和BPA 100不同的过程中执行。在各个实施例中,仿真器助理230可通过绑定发送绘制缓冲器引用220给仿真器服务240,如可以理解的那样。
接下来,在操作530处,仿真器服务240可在设备存储器160中在特定存储器地址分配绘制缓冲器210。在各个实施例中,可以利用各个已知技术来执行这个分配,如可以理解的那样。在BPA 100(或其他实体)先前分配绘制缓冲器210的实施例中,在操作530可以不执行分配。接下来,在操作540处,仿真器服务240可提供所分配的缓冲器的地址给仿真器260。接着,仿真器260又可提供所分配的缓冲器给访客应用作为标准VGA帧缓冲器,访客应用150可通过该标准VGA帧缓冲器绘制帧数据。然后过程可结束。
图6示出根据各个实施例的用于要渲染的访客屏幕的示例过程600。尽管图6以特定顺序示出特定操作,但在各个实施例中操作可被组合、分成部分、和/或省略。在各个实施例中,过程600(以及子过程)的操作可由SWC 130和/或HWC 140中的一个或多个执行。在其他实施例中,操作可由与示出的那些实体不同的实体执行或可整体地以软件或硬件执行。过程可在操作610处开始,其中主机OS 120可将主机OS 120绘制数据绘制到一个或多个主机OS 120绘制缓冲器(未示出)。接下来,在操作620处,SWC可在帧缓冲器360合成主机OS120绘制缓冲器,如上所述。接下来,在操作630处,访客应用150可将帧数据绘制到绘制缓冲器210,好像它是对于访客应用150本地的VGA缓冲器一样。接下来,在操作640处,HWC 140可将来自绘制缓冲器120的帧数据与来自帧缓冲器360的数据合成进显示缓冲器350中。接下来,在操作650处,显示缓冲器350的内容可在计算设备105的显示器110上渲染。接着,当主机OS 120和访客应用150继续生成图形数据的新帧时,该过程可在操作310重复。可认识到,尽管示出用于渲染访客应用150帧数据和主机OS 120绘制数据的特定技术,但在其他实施例中,可利用其他渲染技术。
现在参考图7,根据各个实施例示出适合用于实践本公开的各个方面(包括图4-6的过程)的示例计算机。如示出的,计算机700可包括一个或多个处理器或处理器核702、以及系统存储器704。对于包括权利要求的本申请的目的,术语“处理器”和“处理器核”可以看作同义的,除非上下文清楚地相反地要求。此外,计算机700可包括大容量存储设备706(例如磁盘、硬盘驱动器、光盘只读存储器(CD-ROM)等等)、输入/输出设备708(例如显示器、键盘、光标控制、远程控制、游戏控制器、图像捕捉设备、等等)和通信接口710(例如网络接口卡、调制解调器、红外接收器、无线电接收器(例如,蓝牙、WiFi、近场通信、射频识别、等等)。要素可经由系统总线712彼此耦合,系统总线712可代表一个或多个总线。在多总线的情况下,它们可通过一个或多个总线桥(未示出)来桥接。
这些要素中的每个可执行本领域中已知的其惯用功能。特别地,可采用系统存储器704和大容量存储设备706来存储编程指令的工作副本和永久副本,编程指令实现在图1-3中示出的模块、和/或与在图4-6中示出的技术关联的操作中的一个或多个,其统称为计算逻辑722。各个要素可通过处理器702支持的汇编指令或可以编译成这种指令的高级语言(例如,C)来实现。
编程指令的永久副本可在工厂或在现场通过例如分发介质(未示出)(例如光盘(CD))或通过通信接口710(从分发服务器(未示出))放置到永久存储设备706。即,可采用具有代理程序的实现的一个或多个分发介质来分发代理和程序给各个计算设备。在实施例中,编程指令可存储在一个或多个计算机可读非暂时性存储介质中。在其他实施例中,编程指令可编码在暂时性存储介质(例如信号)中。
这些要素710-712的数量、能力和/或容量可改变。它们的构成以其他方式已知,并且相应地将不做进一步描述。
图8示出根据各个实施例的示例性的至少一个计算机可读存储介质802,所述计算机可读存储介质具有配置成实践与先前描述技术关联的操作中的所有或选定一些的指令。如所示出的,至少一个计算机可读存储介质802可包括多个编程指令804。编程指令804可配置成使设备(例如,计算机700)能响应于编程指令的执行,来实现例如图4-6的过程的各个操作,例如,但不限于,为了实现访客应用帧数据的绘制的促进而执行的各个操作。在备选实施例中,编程指令804可改为放置在多个至少一个计算机可读存储介质802上。
返回参考图7,对于一个实施例,处理器702中的至少一个可与计算逻辑722封装在一起,该计算逻辑722配置成实践图4-6的过程的方面。对于一个实施例,处理器702中的至少一个可与计算逻辑722封装在一起以形成系统级封装(SiP),该计算逻辑722配置成实践图4-6的过程的方面。对于一个实施例,处理器702中的至少一个可与计算逻辑722集成在相同的晶片上,该计算逻辑722配置成实践图4-6的过程的方面。对于一个实施例,处理器702中的至少一个可与计算逻辑722封装在一起以形成片上系统(SoC),该计算逻辑722配置成实践图4-6的过程的方面。对于至少一个实施例,SoC可以用于例如但不限于平板计算机。(例如,WiFi、蓝牙、蓝牙低能量、近场通信、射频识别(RFID)等等)和如有需要的其他部件,以满足系统的功能和非功能的需求。
用于实现上述技术的计算机可读介质(其包括至少一个计算机可读介质)、方法、装置、系统和设备是本文公开的实施例的说明性示例。此外,在上述交互中的其他设备可配置成实现各个公开的技术。本文描述的实施例的特定示例包括但不限于下列:
示例1包括一种促进在访客操作系统中运行的访客应用的显示的装置。所述装置包括:一个或多个计算处理器;用于在所述计算处理器上操作的主机操作系统;以及缓冲器供应应用,用于在所述主机操作系统内操作。缓冲器供应应用用于促使在所述主机操作系统内分配绘制缓冲器以供所述访客应用使用,以及提供所述绘制缓冲器以供所述访客应用用于绘制一个或多个用户界面要素。
示例2包括示例1所述的装置,还包括仿真器,所述仿真器由所述一个或多个处理器操作,以促进所述访客应用在所述主机操作系统内执行。
示例3包括示例2所述的装置,其中,所述缓冲器供应应用用于提供所述绘制缓冲器到所述仿真器。
示例4包括示例3所述的装置,其中,所述仿真器还提供所述绘制缓冲器给所述访客应用,作为所述访客操作系统中的执行中的缓冲器。
示例5包括示例1-4中的任一项所述的装置,其中,所述缓冲器供应应用提供对所述绘制缓冲器的引用。
示例6包括示例1-4中的任一项所述的装置,其中,所述缓冲器供应应用提供可以直接由访客应用写入的绘制缓冲器。
示例7包括示例1-4中的任一项所述的装置,其中,所述缓冲器供应应用将所述绘制缓冲器从缓冲器队列出列,所述绘制缓冲器对所述缓冲器供应应用可用。
示例8包括示例7所述的装置,其中,所述缓冲器供应应用还在供应所述绘制缓冲器到所述访客应用之后将所述绘制缓冲器入列到所述缓冲器队列。
示例9包括示例1-4中的任一项所述的装置,其中,所述主机操作系统是Android操作系统。
示例10包括示例9所述的装置,其中,所述访客操作系统是Windows操作系统。
示例11包括一种促进在访客操作系统中运行的访客应用的显示的方法。所述方法包括:通过计算设备的缓冲器供应应用促使在主机操作系统内分配绘制缓冲器,以供访客应用使用;以及所述缓冲器供应应用提供所述绘制缓冲器,以供所述访客应用用来绘制一个或多个用户界面要素。
示例12包括示例11所述的方法,还包括:通过计算设备的仿真器,促进所述访客应用在所述主机操作系统内执行。
示例13包括示例12所述的方法,其中,提供所述绘制缓冲器包括提供所述绘制缓冲器给所述仿真器。
示例14包括示例13所述的方法,其中,提供所述绘制缓冲器包括:所述仿真器提供所述绘制缓冲器给所述访客应用,作为所述访客操作系统中的执行中的缓冲器。
示例15包括示例11-14中的任一项所述的方法,其中,提供所述绘制缓冲器包括提供对所述绘制缓冲器的引用。
示例16包括示例11-14中的任一项所述的方法,其中,提供所述绘制缓冲器包括提供由访客应用直接写入的所述绘制缓冲器。
示例17包括示例11-14中的任一项所述的方法,其中,促使所述绘制缓冲器的分配包括将绘制缓冲器从缓冲器队列出列,所述绘制缓冲器对于所述缓冲器供应应用可用。
示例18包括示例17所述的方法,还包括:在供应所述绘制缓冲器给所述访客应用之后,通过所述缓冲器供应应用或所述计算设备的仿真器服务将所述绘制缓冲器入列到所述缓冲器队列。
示例19包括示例11-14中的任一项所述的方法,其中,所述主机操作系统是Android操作系统。
示例20包括示例19所述的方法,其中,所述访客操作系统是Windows操作系统。
示例21包括一个或多个计算机可读介质,其包含写入其上的指令,所述指令用于促进在访客操作系统中运行的访客应用的显示。所述指令响应于在计算设备上的执行,使得所述计算设备促使在主机操作系统内分配绘制缓冲器以供访客应用使用,并且提供所述绘制缓冲器以供所述访客应用用来绘制一个或多个用户界面要素。
示例22包括示例21所述的计算机可读介质,其中,所述指令还促使所述计算设备使用仿真器促进所述访客应用在所述主机操作系统内的执行。
示例23包括示例22所述的计算机可读介质,其中,提供所述绘制缓冲器包括提供所述绘制缓冲器给所述仿真器。
示例24包括示例23所述的计算机可读介质,其中,提供所述绘制缓冲器包括:使用所述仿真器提供所述绘制缓冲器给所述访客应用,作为所述访客操作系统中的执行中的缓冲器。
示例25包括示例21-24中的任一项所述的计算机可读介质,其中,提供所述绘制缓冲器包括:提供对所述绘制缓冲器的引用。
示例26包括示例21-24中的任一项所述的计算机可读介质,其中,提供所述绘制缓冲器包括:提供由所述访客应用直接写入的所述绘制缓冲器。
示例27包括示例21-24中的任一项所述的计算机可读介质,其中,促使所述绘制缓冲器的分配包括将绘制缓冲器从缓冲器队列出列。
示例28包括示例27所述的计算机可读介质,其中,所述指令还促使所述计算设备:在将所述绘制缓冲器供应给所述访客应用之后,将所述绘制缓冲器入列到所述缓冲器队列。
示例29包括示例21-24中的任一项所述的计算机可读介质,其中,所述主机操作系统是Android操作系统。
示例30包括示例29所述的计算机可读介质,其中,所述访客操作系统是Windows操作系统。
示例31包括一种用于促进在访客操作系统中运行的访客应用的显示的装置。所述装置包括:用于促使在主机操作系统内分配绘制缓冲器以供访客应用使用的部件;以及用于提供所述绘制缓冲器以供所述访客应用用来绘制一个或多个用户界面要素的部件。
示例32包括示例31所述的装置,还包括:用于促进所述访客应用在所述主机操作系统内执行的部件。
示例33包括示例32所述的装置,其中,用于提供所述绘制缓冲器的部件包括用于提供所述绘制缓冲器给所述仿真器的部件。
示例34包括示例33所述的装置,其中,用于提供所述绘制缓冲器的部件包括:用于提供所述绘制缓冲器给所述访客应用、作为所述访客操作系统中的执行中的缓冲器的部件。
示例35包括示例31-34中的任一项所述的装置,其中,用于提供所述绘制缓冲器的部件包括:用于提供对所述绘制缓冲器的引用的部件。
示例36包括示例31-34中的任一项所述的装置,其中,用于提供所述绘制缓冲器的部件包括:用于提供由所述访客应用直接写入的所述绘制缓冲器的部件。
示例37包括示例31-34中的任一项所述的装置,其中,用于促使所述绘制缓冲器的分配的部件包括:用于将所述绘制缓冲器从缓冲器队列出列的部件。
示例38包括示例37所述的装置,还包括:用于在将所述绘制缓冲器供应到所述访客应用之后、将所述绘制缓冲器入列到所述缓冲器队列的部件。
示例39包括示例31-34中的任一项所述的装置,其中,所述主机操作系统是Android操作系统。
示例40包括示例39所述的装置,其中,所述访客操作系统是Windows操作系统。
尽管本文中为了描述目的已经图示并描述了某些实施例,但是计算用于实现相同目的的各种各样的备选和/或等同的实施例或实现可替代示出和描述的实施例,而没有脱离本公开的范围。本申请意在覆盖本文论述的实施例的任何改编或变化。因此,明白地旨在,本文所述的实施例仅通过权利要求来限定。
在本公开记载“一”或“第一”要素或其等同体时,这样的公开包括一个或多个这种要素,既不要求也不排除两个或更多这种要素。此外,识别的要素的序数表示(例如,第一、第二或第三)用于在要素之间区别,并且不表示或暗示要求或限制数量的这种要素,它们也没有指示这种要素的特定位置或顺序,除非明确地相反叙述。

Claims (25)

1.一种促进在访客操作系统中运行的访客应用的显示的装置,所述装置包括:
一个或多个计算处理器;
在所述计算处理器上操作的主机操作系统;
缓冲器供应应用,用于在所述主机操作系统内操作,以:
促使在所述主机操作系统内分配绘制缓冲器以供所述访客应用使用;以及
提供所述绘制缓冲器以供所述访客应用用来绘制一个或多个用户界面要素。
2.如权利要求1所述的装置,还包括仿真器,所述仿真器由所述一个或多个处理器操作,以促进所述访客应用在所述主机操作系统内的执行。
3.如权利要求2所述的装置,其中,所述缓冲器供应应用用于提供所述绘制缓冲器给所述仿真器。
4.如权利要求3所述的装置,其中,所述仿真器还提供所述绘制缓冲器给所述访客应用,作为所述访客操作系统中的执行中的缓冲器。
5.如权利要求1-4中的任一项所述的装置,其中,所述缓冲器供应应用用于提供对所述绘制缓冲器的引用。
6.如权利要求1-4中的任一项所述的装置,其中,所述缓冲器供应应用用于提供能直接被所述访客应用写入的绘制缓冲器。
7.如权利要求1-4中的任一项所述的装置,其中,所述缓冲器供应应用用于将所述绘制缓冲器从缓冲器队列出列,所述绘制缓冲器可用于所述缓冲器供应应用。
8.如权利要求7所述的装置,其中,所述缓冲器供应应用还用于:在将所述绘制缓冲器供应给所述访客应用之后,将所述绘制缓冲器入列到所述缓冲器队列。
9.如权利要求1-4中的任一项所述的装置,其中,所述主机操作系统是Android操作系统。
10.如权利要求9所述的装置,其中,所述访客操作系统是Windows操作系统。
11. 一种促进在访客操作系统中运行的访客应用的显示的方法,所述方法包括:
通过计算设备的缓冲器供应应用,促使在主机操作系统内分配绘制缓冲器,以供访客应用使用;以及
所述缓冲器供应应用提供所述绘制缓冲器,以供所述访客应用用来绘制一个或多个用户界面要素。
12.如权利要求11所述的方法,还包括:通过所述计算设备的仿真器促进所述访客应用在所述主机操作系统内的执行。
13.如权利要求12所述的方法,其中,提供所述绘制缓冲器包括提供所述绘制缓冲器给所述仿真器。
14.如权利要求13所述的方法,其中,提供所述绘制缓冲器包括:所述仿真器提供所述绘制缓冲器给所述访客应用,作为所述访客操作系统中的执行中的缓冲器。
15.如权利要求11-14中的任一项所述的方法,其中,提供所述绘制缓冲器包括提供对所述绘制缓冲器的引用。
16.如权利要求11-14中的任一项所述的方法,其中,提供所述绘制缓冲器包括:提供由所述访客应用直接写入的所述绘制缓冲器。
17.如权利要求11-14中的任一项所述的方法,其中,促使所述绘制缓冲器的分配包括:将绘制缓冲器从缓冲器队列出列,所述绘制缓冲器对于所述缓冲器供应应用可用。
18.如权利要求17所述的方法,还包括在将所述绘制缓冲器供应给所述访客应用之后,通过所述缓冲器供应应用或所述计算设备的仿真器服务将所述绘制缓冲器入列到所述缓冲器队列。
19.如权利要求11-14中的任一项所述的方法,其中,所述主机操作系统是Android操作系统。
20.如权利要求19所述的方法,其中,所述访客操作系统是Windows操作系统。
21.一个或多个计算机可读介质,包含写入其上的指令,所述指令用于促进在访客操作系统中运行的访客应用的显示,所述指令响应于在计算设备上的执行而促使所述计算设备执行权利要求11-20中的任一项所述的方法。
22. 一种用于促进在访客操作系统中运行的访客应用的显示的装置,所述装置包括:
用于促使在主机操作系统内分配绘制缓冲器以供访客应用使用的部件;以及
用于提供所述绘制缓冲器以供所述访客应用用来绘制一个或多个用户界面要素的部件。
23.如权利要求22所述的装置,还包括:用于促进在所述主机操作系统内的所述访客应用的执行的部件。
24.如权利要求22-23中的任一项所述的装置,其中,用于提供所述绘制缓冲器的部件包括:用于提供对所述绘制缓冲器的引用的部件。
25.如权利要求22-23中的任一项所述的装置,其中,用于促使所述绘制缓冲器的分配的部件包括:用于将对所述缓冲器供应应用可用的绘制缓冲器从缓冲器队列出列的部件。
CN201480081498.7A 2014-09-26 2014-09-26 用于计算的装置、方法和计算机可读介质 Active CN106575226B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/087490 WO2016045070A1 (en) 2014-09-26 2014-09-26 Facilitation of guest application display from host operating system

Publications (2)

Publication Number Publication Date
CN106575226A true CN106575226A (zh) 2017-04-19
CN106575226B CN106575226B (zh) 2021-04-20

Family

ID=55580117

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480081498.7A Active CN106575226B (zh) 2014-09-26 2014-09-26 用于计算的装置、方法和计算机可读介质

Country Status (4)

Country Link
US (2) US9798562B2 (zh)
EP (2) EP3198406B1 (zh)
CN (1) CN106575226B (zh)
WO (1) WO2016045070A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9582849B2 (en) * 2013-10-28 2017-02-28 Vmware, Inc. Method and system to virtualize graphic processing services
CN109240677B (zh) 2017-07-07 2020-10-16 阿里巴巴集团控股有限公司 一种图层处理方法及装置
US11757891B1 (en) * 2019-10-29 2023-09-12 Meta Platforms, Inc. Using a host application to authorize a user of a client device to perform an action within a guest application

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101490648A (zh) * 2006-07-25 2009-07-22 Nxp股份有限公司 包含操作系统仿真器的移动设备
CN101667123A (zh) * 2009-09-24 2010-03-10 中兴通讯股份有限公司 一种不规则窗口实现方法及移动手持设备
CN102135866A (zh) * 2010-10-29 2011-07-27 华南理工大学 一种基于Xen安全计算机显示优化的方法
CN103327117A (zh) * 2013-07-05 2013-09-25 百度在线网络技术(北京)有限公司 应用程序的跨系统运行方法和装置
US20140063028A1 (en) * 2012-05-02 2014-03-06 Nvidia Corporation Memory Space Mapping Techniques for Server Based Graphics Processing

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9047102B2 (en) * 2010-10-01 2015-06-02 Z124 Instant remote rendering
US7644407B2 (en) * 2004-03-05 2010-01-05 Intel Corporation Method, apparatus and system for seamlessly sharing a graphics device amongst virtual machines
US8117554B1 (en) * 2006-04-25 2012-02-14 Parallels Holdings, Ltd. Seamless integration of non-native widgets and windows with dynamically scalable resolution into native operating system
TW201301118A (zh) * 2011-06-30 2013-01-01 Gcca Inc 雲端通訊裝置以及使用雲端通訊裝置之智慧行動裝置
US9171028B1 (en) * 2013-06-11 2015-10-27 Google Inc. Method of maintaining a large set of taint labels
US9582849B2 (en) * 2013-10-28 2017-02-28 Vmware, Inc. Method and system to virtualize graphic processing services
US9201635B2 (en) * 2013-12-30 2015-12-01 Unisys Corporation Just-in-time dynamic translation for translation, compilation, and execution of non-native instructions

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101490648A (zh) * 2006-07-25 2009-07-22 Nxp股份有限公司 包含操作系统仿真器的移动设备
CN101667123A (zh) * 2009-09-24 2010-03-10 中兴通讯股份有限公司 一种不规则窗口实现方法及移动手持设备
CN102135866A (zh) * 2010-10-29 2011-07-27 华南理工大学 一种基于Xen安全计算机显示优化的方法
US20140063028A1 (en) * 2012-05-02 2014-03-06 Nvidia Corporation Memory Space Mapping Techniques for Server Based Graphics Processing
CN103327117A (zh) * 2013-07-05 2013-09-25 百度在线网络技术(北京)有限公司 应用程序的跨系统运行方法和装置

Also Published As

Publication number Publication date
EP3198406B1 (en) 2022-02-23
EP3198406A4 (en) 2018-05-30
CN106575226B (zh) 2021-04-20
US9798562B2 (en) 2017-10-24
WO2016045070A1 (en) 2016-03-31
EP3974976A1 (en) 2022-03-30
US20180052700A1 (en) 2018-02-22
US20160291995A1 (en) 2016-10-06
EP3198406A1 (en) 2017-08-02

Similar Documents

Publication Publication Date Title
CN103282881B (zh) 通过虚拟化直接共享智能设备
US10310879B2 (en) Paravirtualized virtual GPU
CN102567052B (zh) 启用配置有图形处理器的服务器的远程管理的技术
CN107533469A (zh) 对图形处理单元资源的容器访问
TWI512479B (zh) 針對記憶體映射組態分派處理器之技術
US11426665B2 (en) Method, apparatus, computer program and recording medium for providing game service
CN105830026A (zh) 用于调度来自虚拟机的图形处理单元工作负荷的装置和方法
KR20120087967A (ko) 응용 프로그램 화상의 표시 방법 및 장치
CN106797388A (zh) 跨系统多媒体数据编解码方法、装置、电子设备和计算机程序产品
US20090083753A1 (en) Dynamic thread generation and management for improved computer program performance
CN107122176B (zh) 一种图形绘制方法及装置
CN101739289A (zh) 一种在Linux虚拟机中设置显示模式的方法及装置
CN106575226A (zh) 对从主机操作系统显示访客应用的促进
US9325576B2 (en) Dynamic server to server configuration and initialization
CN107193633A (zh) 一种批量创建虚拟机的方法及装置
CN111654539B (zh) 基于云原生的物联网操作系统构建方法、系统及电子设备
CN104254836B (zh) 向大型机系统的指令提供
US20060036775A1 (en) Apparatus and methods for video graphics array (VGA) virtualization in system exploiting multiple operating systems
CN107291561A (zh) 一种图形合成方法、信息交互方法及系统
US20210064384A1 (en) Computing method and apparatus with multi-phase/level boot
CN108235757A (zh) 一种操作系统屏幕锁定的方法、装置及电子设备
US20240168785A1 (en) Remote desktop composition
KR102586821B1 (ko) 가상 ecu 환경에서의 오토사 플랫폼 입출력에 따른 동작 검증 시스템 및 방법
US20230305878A1 (en) Communication method between virtual machines using mailboxes, system-on-chip performing the communication method, and in-vehicle infotainment system including same
KR20220034483A (ko) 전자 장치 및 이의 제어 방법

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