CN103329094A - Cross-environment redirection - Google Patents

Cross-environment redirection Download PDF

Info

Publication number
CN103329094A
CN103329094A CN 201180058005 CN201180058005A CN103329094A CN 103329094 A CN103329094 A CN 103329094A CN 201180058005 CN201180058005 CN 201180058005 CN 201180058005 A CN201180058005 A CN 201180058005A CN 103329094 A CN103329094 A CN 103329094A
Authority
CN
China
Prior art keywords
application
operating system
os
mobile
environment
Prior art date
Application number
CN 201180058005
Other languages
Chinese (zh)
Other versions
CN103329094B (en
Inventor
B.里弗斯
P.里弗斯
R.特尔茨
D.里弗斯
S.瑟帕尔
C.泰格
Original Assignee
Z124
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
Priority to US38911710P priority Critical
Priority to US61/389,117 priority
Priority to US61/507,199 priority
Priority to US61/507,206 priority
Priority to US201161507206P priority
Priority to US201161507209P priority
Priority to US201161507203P priority
Priority to US201161507199P priority
Priority to US201161507201P priority
Priority to US61/507,203 priority
Priority to US61/507,209 priority
Priority to US61/507,201 priority
Priority to US13/247,166 priority
Priority to US13/247,166 priority patent/US8683496B2/en
Application filed by Z124 filed Critical Z124
Priority to PCT/US2011/053909 priority patent/WO2012044784A2/en
Publication of CN103329094A publication Critical patent/CN103329094A/en
Application granted granted Critical
Publication of CN103329094B publication Critical patent/CN103329094B/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/10Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network
    • H04L67/1095Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network for supporting replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes or user terminals or syncML
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device; Cooperation and interconnection of the display device with other functional units
    • G06F3/1423Digital output to display device; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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; 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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; 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/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/399Control of the bit-mapped memory using two or more bit-mapped memories, the operations of which are switched in time, e.g. ping-pong buffers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/38Protocols for telewriting; Protocols for networked simulations, virtual reality or games
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Application independent communication protocol aspects or techniques in packet data networks
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32High level architectural aspects of 7-layer open systems interconnection [OSI] type protocol stacks

Abstract

A mobile computing device with a mobile operating system and desktop operating system running concurrently and independently on a shared kernel without virtualization. The mobile operating system provides a user experience for the mobile computing device that suits the mobile environment. The desktop operating system provides a full desktop user experience when the mobile computing device is docked to a second user environment. Cross-environment rendering and user interaction support provide a seamless computing experience in a multi-operating system computing environment. Cross environment rendering may be done using the rendering engine of the mobile operating system into a non-extended or an extended rendering context.; To facilitate a transparent cross-environment use model, access is provided to applications and/or mirrored contexts of the mobile operating system from the user environment associated with the desktop operating system. Access to applications and/or mirrored contexts of the mobile operating system is provided by menu icons or menu list items within menus of the user environment of the desktop operating system. The mobile computing device may be a smartphone running the Android mobile operating system and a full desktop Linux distribution on a modified Android kernel.

Description

交叉环境重定向 Redirect Cross-Environment

[0001] 相关申请的交叉引用 CROSS [0001] REFERENCE TO RELATED APPLICATIONS

[0002] 本申请是非临时的,并且要求2010年10月I日提交的标题为“Mult1-OperatingSystem Portable Docking Device”、序列号为N0.61/389,117 的美国临时申请,2011年7 月13 日提交的标题为“Dockable Mobile Software Architecture”、序列号为N0.61/507, 199的美国临时申请,2011年7月13日提交的标题为“Cross-EnvironmentCommunication Framework”、序列号为N0.61/507, 201 的美国临时申请,2011 年7 月13日提交的标题为“Mult1-Operating System”、序列号为N0.61/507,203的美国临时申请,2011 年7 月13 日提交的标题为“Auto-Configuration of a Docked System in Mult1-OSEnvironment”、序列号为N0.61/507,206的美国临时申请,以及2011年7月13日提交的标题为“Auto-Waking of a Suspended Secondary OS in a Dockable System,,、序列号为N0.61/507, 209的美国临时申请的申请日的权益,其中针对所有目的通过弓I用在此而并入前述优先权申请的全部内容。 [0002] The present application is a non temporary and requires title in October 2010 I filed "Mult1-OperatingSystem Portable Docking Device", US Provisional Application Serial No. N0.61 / 389,117 in 2011 July 13 title filed "Dockable Mobile Software Architecture", serial number N0.61 / 507, 199 US provisional application, the title July 13, 2011 entitled "Cross-EnvironmentCommunication Framework", serial number N0.61 / 507, 201 US provisional application, the title July 13, 2011 entitled "Mult1-Operating System", US provisional application serial No. N0.61 / 507,203, entitled July 13, 2011 filed to "Auto-Configuration of a Docked System in Mult1-OSEnvironment", US provisional application serial No. N0.61 / 507,206, as well as the title July 13, 2011 entitled "Auto-Waking of a Suspended Secondary OS in a Dockable System ,,, benefit of the filing date of serial No. U.S. provisional application N0.61 / 507, 209, wherein the bow I for all purposes in the entire contents of which are hereby incorporated by priority application.

技术领域 FIELD

[0003] 本申请总地涉及移动计算环境领域,并且更具体地涉及通过在单个移动计算设备中使用多个操作系统来支持多个用户环境。 [0003] The present application relates generally to the field of mobile computing environments, and more particularly relates to the use of a plurality of operating systems environments to support multiple users on a single mobile computing device.

背景技术 Background technique

[0004] 移动计算设备在当今社会变得无处不在。 [0004] Mobile computing devices become ubiquitous in today's society. 例如,在2008年年底,百分之九十的美国人拥有移动无线设备。 For example, at the end of 2008, ninety percent of Americans own a mobile wireless device. 同时,移动设备的能力正在快速进步,包括将高级计算能力与移动电话能力进行集成的智能电话。 At the same time, the ability of mobile devices is rapidly advances, including advanced computing capabilities and ability to integrate mobile phone smart phone. 移动提供商已经基于若干不同平台在最近三年内发布了数以百计的新的智能电话(例如,苹果iPhone, Android, BlackBerry, Palm,以及WindowsMobiIe)。 Mobile providers have been based on several different platforms released hundreds of new smart phones (eg, Apple iPhone, Android, BlackBerry, Palm, and WindowsMobiIe) in the last three years. 在美国,智能电话在2010年中期的占有率达到了大约23%,并且在一些年龄段超过了35%。 In the United States, the smart phone in mid-2010 share of about 23%, and in some age groups more than 35%. 在欧洲,智能电话市场从2009年到2010年增长了41%,仅仅在五个最大的欧洲国家,在2010年7月就有超过6000万智能电话用户。 In Europe, the smart phone market from 2009 to 2010, an increase of 41% in just five largest European countries, in July 2010 alone more than 60 million smart phone users.

[0005] 尽管智能电话在普及度和计算能力方面取得进步,但它们提供了有限的用户体验。 [0005] Despite the progress in smart phones and the popularity of computing power, but they provide limited user experience. 具体地,它们典型地具有被修改用于移动设备硬件的操作系统和一组受限制的可用于修改后的操作系统的应用程序。 In particular, they typically have to be modified for the mobile device hardware, operating system and a set of applications for the operating system may be modified restricted. 例如,许多智能电话运行Google的Android (安卓)操作系统。 For example, many smartphones running Google's Android (Android) operating system. Android仅仅运行被专门开发用于在基于Java的虚拟机运行时环境中运行的应用程序。 Android only run was specially developed for applications running in virtual machine-based runtime environment of Java. 另外,尽管Android是基于修改的Linux内核,但它使用与Linux不同的标准C库、系统管理器和服务。 In addition, although Android is based on a modified Linux kernel, but it uses a different standard C library Linux, System Manager and services. 相应地,为Linux编写的应用程序在不进行修改或者移植的情况下不能在Android上运行。 Accordingly, applications written for Linux without performing modifications or transplanted will not run on Android. 类似地,苹果的iPhone使用iOS移动操作系统。 Similarly, Apple's iPhone uses iOS mobile operating system. 同样,尽管iOS起源于Mac OS X,但为OS X开发的应用程序不能在iOS上运行。 Similarly, although iOS originated in Mac OS X, but for the development of OS X application can not run on iOS. 因此,尽管许多应用程序可用于诸如Android和iOA之类的移动操作系统,但许多其它的用于诸如Linux和Mac OS X之类的桌面操作系统的普通应用程序不可用于移动平台。 Thus, despite the many applications available for mobile operating systems such as Android and iOA like, but many other common applications for the desktop operating system, Linux and Mac OS X and the like can not be used as a mobile platform.

[0006] 相应地,智能电话典型地适合于一组有限的用户体验并且提供主要为移动环境设计的应用程序。 [0006] Accordingly, a smart phone typically adapted to a limited set of user experiences and applications provided mainly in the mobile environment. 具体地,智能电话不提供适合的桌面用户体验,它们也不运行多数普通的桌面应用程序。 Specifically, the smart phone does not provide a suitable desktop user experience, they do not run most common desktop applications. 结果,许多用户携带并且使用多个计算设备,包括智能电话、膝上型计算机,和/或平板计算机。 As a result, many users to carry and use a plurality of computing devices, including smart phones, laptops, and / or a tablet computer. 在这种情况下,每个设备具有其自身的CPU、存储器、文件存储设备,和操作系统。 In this case, each device has its own CPU, memory, file storage device, and operating systems.

[0007] 智能电话与其它计算设备之间的连接和文件共享涉及通过无线或者有线连接将一个设备(例如,运行移动OS的智能电话)链接到完全不同的第二个设备(例如,运行桌面OS的笔记本、台式机或者平板计算机)。 [0007] The connection between the smart phone and files with other computing devices sharing relates to a completely different link via a wireless or wired connection to a device (e.g., a smart phone running the mobile OS) a second device (e.g., a desktop running OS laptop, desktop or tablet computer). 通过在每个设备上单独运行的应用程序之间进行数据同步而跨越各设备共享信息。 Data synchronization across various devices to share information between applications running on each device individually. 被典型地称为“同步”的该过程是麻烦的并且通常需要用 This process is typically referred to as "synchronization" is cumbersome and generally requires a

户的主动管理。 Households of active management.

发明内容 SUMMARY

[0008] 本发明的实施例针对在单个移动计算设备中提供智能电话的移动计算体验和辅助终端环境的合适用户体验。 [0008] Example embodiments of the present invention, the auxiliary terminal computing experience and provide the environment for the mobile phone in a single smart mobile computing device suitable user experience. 辅助终端环境可以是通过有线(例如USB、Firewire、Thunderbolt等等)或者无线(例如蓝牙、WiFi等等)连接而连接到计算设备的视觉呈现设备(例如,监视器或者显示器)、输入设备(例如,鼠标、触控板、触摸屏、键盘等等),以及其它计算外设(例如,HDD、光盘驱动器、存储棒、相机、打印机等等)的某些组合。 Auxiliary terminal environment may be connected to a computing device through a wired (e.g. USB, Firewire, Thunderbolt, etc.) or wireless (e.g., Bluetooth, WiFi, etc.) connected to a visual presentation device (e.g., a monitor or a display), input devices (e.g. , mouse, touch pad, touch screen, keyboard, etc.), and other computing peripherals (e.g., HDD, an optical disk drive, a memory stick, a camera, a printer, etc.) some combination. 在实施例中,与移动环境的用户体验相关联的移动操作系统和与辅助终端环境的用户体验相关联的桌面操作系统并发地(concurrently)并且独立地在共享的内核上运行。 In an embodiment, the operating system running on the mobile and the associated auxiliary terminal associated with the user experience environment desktop operating systems concurrently (concurrently) in a shared and independently mobile environment kernel and user experience.

[0009] 根据与各个实施例一致的一个方面,由一种方法提供交叉环境的重定向,该方法包括:通过具有第二执行环境的第二操作系统在第一操作系统中查询被编译用于第一操作系统并且被加载到第一操作系统的第一执行环境中的应用程序的列表,第一和第二操作系统在共享的内核上并发地运行;在第二操作系统中接收应用程序对象的列表,每个应用程序对象包括应用程序分组;在第二操作系统的菜单中对与应用程序对象的列表中的应用程序对象对应的第一菜单条目进行实例化;将第一菜单条目与第二操作系统的控制台应用程序相关联,使得在选择第一菜单条目时执行第二操作系统的控制台应用程序,以及将指示与应用程序对象对应的第一OS中的应用程序分组的参数与第一菜单条目相关联。 [0009] According to an aspect of embodiments consistent with various embodiments, there is provided cross redirected from one environment, the method comprising: a compiler for a second execution environment by having the second operating system queries the first operating system a first operating system and loaded into a first list of application execution environment in a first operating system, the first and second operating systems to run concurrently on the shared core; receiving application object in the second operating system, list, each application object includes application group; the first menu entry list of application objects in the application object corresponding to the operating system in the second example of the menu; the first menu item and the second second operating system application associated with the console, so that the execution of the second application operating system console when selecting the first menu item, and the application parameters and the first OS and the application corresponding to the object indicated in the packet The first menu item is associated.

[0010] 根据与各个实施例一致的其它方面,第一操作系统的第一图形服务器可以与第二操作系统的第二图形服务器不兼容。 [0010] According to other aspects consistent with various embodiments, the first graphic operating system of the first server and the second graphics may not be compatible server of the second operating system. 第一图形服务器可以是Android图形服务器,第二图形服务器可以是X-windows类型的图形服务器。 The first pattern may be a server Android graphics server, the second server may be a pattern type X-windows graphics server. 第二操作系统的图形服务器可以是X-windows类型的图形服务器并且对应于应用程序对象的第一操作系统的应用程序可以使用与第二操作系统的X-windows类型的图形服务器不兼容的图形库。 The second operating system graphics server may be of the type X-windows and graphics server application object corresponding to the first operating system application can use the second operating system is not compatible with the type of graphical X-windows graphics library server .

[0011] 根据与各个实施例一致的其它方面,应用程序对象可以包括应用程序名称、应用程序分组名称,以及应用程序图标。 [0011] According to various embodiments consistent with other aspects, the application objects may include application name, name of the application packet, and the application icon. 第一菜单条目在被选择时可以将应用程序分组名称作为执行参数传送给控制台应用程序。 The first menu item may be selected when the application name as the execution packet transfer parameters to the console application. 第二操作系统的菜单可以包括对应于第二应用程序的第二菜单条目,第二应用程序被编译用于第二执行环境并且被加载到第二执行环境中。 The second operating system may include a second menu of menu items corresponding to a second application, the second application for a second execution environment is compiled and loaded into the second execution environment. 第一操作系统可以包括移动操作系统,第二操作系统可以包括桌面操作系统。 The first operating system may include a mobile operating system, the second operating system may include a desktop operating system.

[0012] 根据与各个实施例一致的其它方面,一种用于应用程序或者图形上下文的交叉环境重定向的方法包括:通过第一操作系统从第二操作系统接收请求以在第一操作系统中启动被编译用于第一操作系统并且被加载到第一操作系统的第一执行环境内的第一应用程序,第一和第二操作系统在共享的内核上并发地运行;通过第一操作系统分配虚拟显示器,在第一操作系统内的进程中启动第一应用程序,将第一应用程序的刷新通知与虚拟显示器相关联;以及通过迭代地执行以下步骤来保持第一应用程序的应用程序图形:通过第一操作系统监视第一应用程序的应用程序图形信息,并且在应用程序图形信息被更新时向第二操作系统的控制台应用程序进行通知。 [0012] According to other aspects consistent with various embodiments, a cross environment for redirection application or graphics contexts method comprising: receiving a request from a second operating system in the first operating system to the first operating system, start compiled for a first operating system and a first application program is loaded into the execution environment within a first first operating system, the first and second operating systems to run concurrently on a shared kernel; the first operating system, assign virtual display, in the process of launching a first application within the first operating system, the first refresh notify the application associated with the virtual display; and to keep the application pattern of the first application by performing the following steps iteratively :, and notifies the second operating system console application by the first operating system to monitor the application of the first application when the application graphics information graphics information is updated.

[0013] 根据与各个实施例一致的其它方面,向第二操作系统的控制台应用程序进行通知可以包括:向控制台应用程序传送文件描述符,所述文件描述符指示在共享的存储位置处应用程序图形信息是可用的,共享的存储位置可由第一操作系统和第二操作系统访问。 [0013] According to other aspects consistent with various embodiments, the notification may include the second operating system console applications: The application to the console transmits descriptor, the descriptor indicating the storage location in the shared graphics application information is available, the shared memory location by the first operating system and a second operating system access. 可以通过进程间通信信道传送文件描述符,所述进程间通信信道可以是Unix域套接字或者Binder (绑定器)接口。 By inter-process communication channel transmission file descriptors, a process may be a communication channel or a Unix domain socket Binder (binder) interface. 应用程序图形信息可以包括第一应用程序的表面信息。 Applications may include graphics information surface of the information of the first application. 可替换地,应用程序图形信息可以包括呈现的第一应用程序的图形信息。 Alternatively, the application information may include a graphic pattern information of the first presentation of the application. 响应于用户对第二操作系统的菜单的菜单条目的选择,第二操作系统可以发起请求以便启动第一应用程序。 In response to user selection of a menu of the second operating system menu items, the operating system may initiate a second request to initiate a first application.

[0014] 根据与各个实施例一致的其它方面,一种用于应用程序或者图形上下文的交叉环境重定向的方法包括:通过第一操作系统从第二操作系统的控制台应用程序接收请求以启动被编译用于第一操作系统并且被加载到第一操作系统的第一执行环境内的第一应用程序,第一和第二操作系统在共享的内核上并发地运行;在第一操作系统上的第一进程内运行第一应用程序,第一应用程序包括由第一操作系统的表面管理器保持的图形信息,通过第一操作系统将控制台应用程序与第一操作系统的虚拟显示器标识符相关联,以及注册控制台应用程序以便接收第一应用程序的图形信息的刷新通知。 The redirector application or environment graphics context CROSS Method [0014] According to other aspects consistent with various embodiments, a method comprising: receiving a request to start from the second operating system console application by the first operating system a first operating system is compiled and loaded into a first application in the first execution environment of a first operating system, to run concurrently on a first and a second operating system kernel shared; on the first operating system a first application running in a first process, the first application comprises graphics information held by the first surface of the manager of the operating system, the first operating system and a virtual display console application identifier of the first operating system associated with a console application and registration in order to receive notification of graphic information to refresh the first application. 该方法还可以包括:通过表面管理器呈现第一操作系统的帧缓冲存储器中的图形帧,并且如果第一应用程序的图形信息被更新,则向控制台应用程序进行通知。 The method may further comprise: presenting a first operating system of the graphics frame buffer memory through the surface of the frame manager, and if the pattern information of the first application program is updated, notifies the console application.

附图说明 BRIEF DESCRIPTION

[0015] 在参考附图中图示了本发明的实施例,其中类似的标号在整个对图的描述中指代类似的元素。 [0015] illustrate embodiments of the present invention with reference to the accompanying drawings, wherein like reference numerals to like elements throughout the description to refer to FIG.

[0016]图1图示了根据各个实施例的提供多个用户计算体验的计算环境。 [0016] FIG 1 illustrates a computing experience in accordance with various embodiments provide a plurality of user computing environment.

[0017] 图2图示了根据各个实施例的用于移动计算设备的示例性的系统架构。 [0017] FIG 2 illustrates an exemplary system architecture for a mobile computing device in accordance with various embodiments.

[0018]图3图示了根据各个实施例的用于计算环境的操作系统架构。 [0018] FIG. 3 illustrates an operating system architecture for a computing environment in accordance with various embodiments.

[0019] 图4图示了采用实施例的各个方面的示例性的计算环境。 [0019] FIG 4 illustrates an exemplary computing environment using various aspects of the embodiments.

[0020] 图5图示了根据各个实施例的用于计算环境的操作系统架构的方面。 [0020] FIG. 5 illustrates the operation of aspects of the system architecture for a computing environment of the various embodiments.

[0021] 图6更详细地图示了根据各个实施例的、可以用于配置移动计算设备的操作系统架构的示例性的弓I导例程。 [0021] FIG. 6 illustrates an embodiment in accordance with various embodiments, may be used to bow an exemplary configuration of a mobile computing device operating system architecture guide routine I in more detail.

[0022] 图7图示了根据各个实施例的、用于提供应用程序和/或用户交互空间的交叉环境呈现的操作系统架构配置。 [0022] FIG. 7 illustrates an embodiment in accordance with various embodiments, the operating system architecture for providing application and / or cross-environment interaction space user presentation configuration.

[0023] 图8图示了根据各个实施例的具有多个用户环境的计算环境。 [0023] FIG. 8 illustrates a computing environment having a plurality of user environments in accordance with various embodiments.

[0024] 图9图示了根据各个实施例的交叉环境远程呈现的方面。 [0024] FIG 9 illustrates a cross aspect of various embodiments of a remote environment presented.

[0025] 图10示出了根据各个实施例的、一种用于在非扩展的渲染上下文(renderingcontext)中进行交叉环境远程呈现的例示性方法的流程图。 [0025] FIG. 10 shows a flowchart illustrating an exemplary method embodiment in accordance with various embodiments, a method for remotely cross environmental non-extension rendering context (The RenderingContext) presented.

[0026] 图11图示了根据各个实施例的、一种用于交叉环境远程呈现的注册和绘制过程流程。 [0026] FIG. 11 illustrates a registration process and drawing process cross telepresence environment in accordance with various embodiments, a method for.

[0027] 图12示出了根据各个实施例的、一种用于在非扩展的渲染上下文中进行交叉环境呈现的另一例示性方法的流程图。 [0027] FIG. 12 shows a flowchart in accordance with various embodiments, a method for cross another exemplary method presented in the non-spread environment rendering context.

[0028] 图13图示了根据各个实施例的、用于对交叉环境应用程序提供用户交互支持的操作系统架构配置300b。 [0028] FIG. 13 illustrates an embodiment in accordance with various embodiments for providing user interaction crossing support for environmental applications operating system architecture configuration 300b.

[0029] 图14图示了根据各个实施例的、使用非扩展的图形上下文呈现的交叉环境应用程序的用户交互支持的方面。 [0029] FIG. 14 illustrates an aspect of various embodiments, user interaction crossing support application environments non-extended graphics context presented.

[0030] 图15图示了根据各个实施例的、使用扩展的渲染上下文跨越多个OS进行并发的用户界面支持的方面。 [0030] FIG. 15 illustrates an embodiment in accordance with various aspects of the embodiment, the user interface supports extend across a plurality of rendering context of concurrent OS.

[0031] 图16示出了根据各个实施例的、一种用于在扩展的渲染上下文中进行交叉环境远程呈现的例示性方法的流程图。 [0031] FIG. 16 shows a flowchart illustrating an exemplary method embodiment in accordance with various embodiments, a method for remotely cross extended environment presented rendering context.

[0032] 图17示出了根据各个实施例的、另一种用于在扩展的渲染上下文中进行交叉环境呈现的例示性方法的流程图。 [0032] FIG. 17 shows a flowchart illustrating a method according to various exemplary embodiments, another for cross environments extended rendering context presented.

[0033] 图18a图示了根据各个实施例的、在扩展的渲染上下文中在交叉环境呈现时可以采用的用户环境。 [0033] Figure 18a illustrates, in spreading the user environment at the time of rendering context environment presents cross may be employed in accordance with various embodiments.

[0034] 图18b图示了根据各个实施例的、在扩展的渲染上下文中在交叉环境呈现时可以采用的扩展的输入队列。 [0034] Figure 18b illustrates, in spreading the extended input queue when rendering context environment presents cross may be employed in accordance with various embodiments.

[0035] 图19图示了根据各个实施例的、在扩展的渲染上下文中在交叉环境呈现时可以采用的一种接收输入事件的方法。 [0035] FIG. 19 illustrates a process of receiving an input event in an extended context at the time of rendering environment presents cross may be employed in accordance with various embodiments.

[0036] 图20示出了根据各个实施例的、一种提供镜像的上下文的交叉环境呈现的例示性方法的流程图。 [0036] FIG. 20 shows a flowchart in accordance with various embodiments, a method of providing a cross exemplary environment mirroring the context presented.

[0037] 图21示出了根据各个实施例的、另一种提供镜像的上下文的交叉环境呈现的例示性方法的流程图2100。 [0037] FIG. 21 shows a flowchart in accordance with various embodiments, another exemplary method of providing cross-contextual environment of the mirror 2100 is presented.

[0038] 图22图示了根据各个实施例的、交叉环境重定向的方面。 [0038] FIG. 22 illustrates the various aspects of cross-environment redirection embodiment.

[0039] 图23图示了根据各个实施例的、一种为执行交叉环境重定向的方面可以采用的例示性方法的流程图。 [0039] FIG. 23 illustrates a flowchart illustrating a method according to various exemplary embodiments, a method for the implementation of the cross-environment redirection may be employed.

[0040] 图24图示了根据各个实施例的、另一种为执行交叉环境重定向的方面可以采用的例示性方法的流程图。 [0040] FIG. 24 illustrates a flowchart illustrating a method according to various exemplary embodiments, other cross-environment for the implementation of the redirection may be employed.

具体实施方式 Detailed ways

[0041] 包括计算能力的移动电话设备(S卩,智能电话、手机、移动站、便携式通信设备等等)日益普及。 [0041] The mobile telephone apparatus (S Jie, smart phones, cell phones, mobile stations, portable communication devices, etc.) include computing capabilities growing popularity. 这些智能电话中的许多包括在移动处理器上运行的移动操作系统(“OS”)。 Many mobile operating systems including mobile processors that run on these smart phones ( "OS"). 尽管移动处理器和移动OS已经增加了这些设备的能力,但智能电话还没有取代诸如桌面或者笔记本计算机之类的个人计算机(“PC”)环境(即,Windows, Mac OS X, Linux)的趋势,这至少是因为其提供的用户体验有限。 Although mobile processor and mobile OS has increased the capabilities of these devices, but the smart phone has not been replaced, such as a desktop or notebook computer like a personal computer ( "PC") environment (ie, Windows, Mac OS X, Linux) trend this is because at least it provides user experience is limited. 具体地,在智能电话上看到的(多个)用户接口设备典型地被裁制为适应移动环境。 Specifically, seen on the smart phone (s) of the user interface device is typically tailored to accommodate a mobile environment. 例如,智能电话典型地使用小的拇指风格的QWERTY键盘、触摸屏显示器、棘轮,和/或滚轮作为用户接口设备。 For example, a smart phone typically small thumb-style QWERTY keyboard, a touch screen display, the ratchet wheel and / or roller as the user interface device. 移动OS、以及为移动OS开发的应用程序(B卩,“Apps”)典型地被设计用于包括移动处理器和在移动设备上存在的(多个)用户接口设备的移动环境的约束条件。 Mobile OS, and applications (B Jie, "Apps") for mobile OS developed are typically designed for the mobile environment including constraints and mobile processor (s) of the user interface devices present on the mobile device. 因此,已经为PC操作环境开发的许多应用程序不可用于移动OS (即,不能被编译并且不能在移动OS上运行)。 Therefore, it has been for many applications PC operating environment for the development of non-mobile OS (ie, can not be compiled and can not run on the mobile OS). 另外,对于诸如打字或者编辑文档之类的某些任务,全尺寸键盘和大显示器比典型地在智能电话上看到的用户接口组件更易使用。 Furthermore, for some tasks such as typing or editing a document or the like, full-size keyboard and a large display than is typically seen on a smart phone user interface components easier to use.

[0042] 相应地,用户典型地使用单独的计算设备用于每种计算体验,包括智能电话、平板计算机、膝上型计算机,和/或桌面计算机。 [0042] Accordingly, the user typically used for each separate computing device computing experience, including smart phones, tablet computers, laptop computers, and / or a desktop computer. 在这种情况下,每个设备具有其自身的CPU、存储器、文件存储设备,和OS。 In this case, each device has its own CPU, memory, file storage device, and OS. 智能电话与其它设备之间的连接和文件共享涉及通过无线或者有线连接将一个设备(例如,运行移动OS的智能电话)链接到完全不同的第二设备(例如,运行桌面OS的笔记本、台式机或者平板计算机)。 The connection between the smart phone and files shared with other devices linked to a second device relates to a completely different wired connection or through a wireless device (e.g., a smart phone running the mobile OS) (e.g., the OS running the desktop laptops, desktops or tablet computer). 通过在每个设备上单独运行的应用程序之间进行数据同步而跨越各设备共享信息。 Data synchronization across various devices to share information between applications running on each device individually. 典型地被称为“同步”的该过程是麻烦的并且通常需要用户的主动管理。 This process is typically referred to as "synchronization" is cumbersome and generally requires the user to active management.

[0043] 图1图示了根据各个实施例的计算环境100,其利用包括与单独的用户交互空间(即,用户环境)相关联的多个操作系统的移动设备提供了多种用户计算体验。 [0043] FIG 1 illustrates a 100, which includes the use of separate user interaction space (i.e., user environment) of a plurality of operating system associated with the mobile device can provide multiple user computing experience computing environment in accordance with various embodiments. 计算环境100的第一用户交互空间115包括移动计算设备110的(多个)显示器116和I/O设备118。 A first computing environment 100. User interaction space 115 includes a mobile computing device (s) 110 of the display 116 and I / O device 118. 当移动计算设备110作为单机移动设备操作时,移动0S130通过用户交互空间115呈现典型的移动计算用户体验。 When the mobile computing device 110 as a stand-alone operation of the mobile device, the mobile 0S130 115 shows a typical mobile computing user experience through the user interaction space. 由移动0S130提供的移动计算体验典型地包括移动电话能力以及适合于包括(多个)显示器116和(多个)I/O设备118的用户交互空间115的图形用户界面(“⑶I”)。 0S130 movement provided by the mobile computing experience typically comprises a mobile telephone capabilities and adapted to include (s) 116 and display (s) I / O device 118 of a user interaction space 115 of a graphical user interface ( "⑶I"). 例如,(多个)显示器116可以是(多个)触摸屏显示器,并且可以使用(多个)触摸屏显示器116主要通过移动0S130的基于手势的⑶I来控制在移动0S130上运行的应用程序(即,“Apps”)。 For example, (s) may be a display 116 (s) touch-screen display, and may use (s) the main touch screen display 116 ⑶I gesture-based control applications to run on the mobile 0S130 0S130 movement (i.e., " Apps ").

[0044] 在计算环境100中,移动计算设备110可以与包括I/O设备144、146和/或148的辅助终端环境140对接(dock)。 [0044] In the calculation 100, the mobile computing device 140 may be docked environment 110 (Dock) including I / O devices 144, 146 and auxiliary terminal environment / or 148. 在实施例中,通过将移动计算设备110的端口120连接到辅助终端环境140的端口142而将移动计算设备110与辅助终端环境140对接。 In an embodiment, by connecting the mobile computing device 110 of port 120 to port 142 environment auxiliary terminal 140. The mobile computing device 110 and auxiliary terminal 140 abutting environment. 在这种情况下,辅助终端环境140呈现计算环境100的第二用户交互空间。 In this case, the auxiliary terminal environment, the computing environment 140 presents 100 the second user interaction space. 在某些情况下,第二用户交互空间可以更适合于桌面计算体验。 In some cases, the second user interaction space may be more suitable for desktop computing experience. 在这些情况下,桌面0S160可以与辅助终端环境140相关联以便通过第二用户交互空间提供笔记本计算机、平板计算机,或者桌面计算机环境的完整能力。 In these cases, the terminal may assist 0S160 table 140 associated with the environment in order to provide a notebook computer, a tablet computer, or a desktop computer environment full capacity by the second user interaction space.

[0045] 在实施例中,移动0S130和桌面0S160在移动计算设备110的处理器上的共享内核上并发地运行。 [0045] In an embodiment, the mobile run concurrently on the desktop 0S160 and 0S130 mobile computing device 110, the processor core sharing. 在2011年8月24日提交的题为“MULT1-OPERATING SYSTEM”的美国专利申请N0.13/217,108中更详细地描述了在共享的内核上并发执行移动OS和桌面OS,在此通过引用将其并入。 In the US patent application entitled "MULT1-OPERATING SYSTEM" of August 24, 2011 filed N0.13 / 217,108 described in more detail concurrent execution of mobile OS and desktop OS on a shared kernel in this by reference in its entirety. 以此方式,单个移动计算设备可以通过第一用户交互空间提供移动计算体验并且通过第二用户交互空间提供桌面计算体验。 In this manner, a single mobile computing device can provide the mobile computing experience by providing a first user interaction space and a desktop computing experience by a second user interaction space. 尽管携带一个可以通过单独的用户交互空间并发地执行多个操作系统的移动设备的能力解决了用户的多个问题,但每个用户交互空间(通过并发地运行移动OS和桌面OS)通常提供了单独的一组可用的应用程序和用户功能。 Despite carrying a can run multiple operating systems of mobile device with a single user interaction space concurrently the ability to solve the multiple problems of users, but each user interaction space (by concurrently running mobile OS and desktop OS) generally provides a separate set of available applications and user functions.

[0046] 本发明的实施例针对便于在第二OS (例如,桌面0S160)内以看得见的方式执行第一OS (例如移动0S130)中运行的应用程序,其中第一和第二OS在共享的内核上并发地运行。 [0046] Embodiments of the present invention in a visible manner for facilitating execution of the first OS (e.g. mobile 0S130) applications running in a second OS (e.g., a desktop 0S160), wherein the first and second OS to run concurrently on shared core. 值得注意的,对于被编译用于第一(例如,非兼容的)OS并且在第一OS中运行的应用程序而言,在第二OS中向用户提供输入(例如,输入设备)和输出(例如,显示器、音频等)支持涉及要解决多个问题。 Notably, for compiled for a first (e.g., non-compliant) in terms of OS and applications running in a first OS, the second user provides input to the OS (e.g., input devices) and output ( for example, display, audio, etc.) involved support to solve a number of problems. 当处理并发运行的多个应用程序的显示和交互性时,可能出现附加的问题。 When the display and interactive processing of multiple applications running concurrently, additional problems may arise. [0047] 例如,考虑第一和第二应用程序二者被编译用于第一OS并且在第一OS上并发地运行。 [0047] For example, consider both the first and second application programs are compiled and used for the first OS run concurrently on the first OS. 然而,用户期望通过与第一OS相关联的输入/输出设备(例如使用移动计算环境的触摸屏显示器)观看第一应用程序的图形输出并且与第一应用程序交互,以及通过与第二OS相关联的输入/输出设备(例如使用桌面计算环境的显示器、键盘,以及鼠标)观看第二应用程序的图形输出并且与第二应用程序交互。 However, the user desires to view the graphical output of the first application program through the first OS associated with the input / output device (e.g. a mobile computing environment using a touch screen display) and interacting with a first application, and is associated by the second OS input / output devices (e.g., desktop computing environment display, keyboard, and mouse) graphical output of the second application program viewing and interacting with a second application. 处理这种情形涉及并发地处理多个显示环境中的图形并且并发地处理全部在单独的(例如非兼容的)操作系统上的单独的应用程序的多个输入/输出流。 A plurality of processing graphics display environment such situations involving processed concurrently and concurrently process all of the individual (e.g., non-compliant) a plurality of input individual applications on OS / output stream.

[0048] 相应地,实施例提供了各种新颖的技术用于:在第二OS的用户交互空间内访问第一OS的应用程序,在第二OS的用户交互空间内显示在第一OS中运行的应用程序,以及通过第二OS的用户交互空间处理与那些应用程序的用户交互。 [0048] Accordingly, various embodiments provide novel techniques for: accessing the first application in the OS user interaction space of the second OS, the display in the space of the second user interaction in the first OS in the OS running applications, as well as user interaction with applications that handle user interaction space through the second OS. 实施例包括支持交叉环境应用程序的各种显示和用户交互特征的第二OS的控制台应用程序(console application)。 Various embodiments include a support cross-application environment and the user interactive features of the display console application of the second OS (console application).

[0049] 一组实施例使用所谓的“非扩展的”渲染上下文提供对跨越多个OS计算环境的并发的用户界面支持的技术。 [0049] The embodiment uses a set of so-called "non-extended" Technical rendering context of concurrent computing environment across a plurality of OS user interface supported. 另一组实施例使用所谓的“扩展的”渲染上下文提供对跨越多个OS计算环境的并发的用户界面支持的技术。 Another set of embodiments use a so-called "extended" concurrent rendering context technical computing environment across a plurality of user interfaces supported by the OS. 又一组实施例使用所谓的“镜像的”上下文提供对跨越多个OS的并发的用户界面支持的技术。 Yet another set of embodiments use so-called "mirror" technique to provide context across multiple concurrent OS user interface supported. 再一组实施例提供从第二OS的用户交互空间到第一OS上可用的应用程序的访问。 A further set of embodiments provides access to a user interaction space from the second OS is available to the application on the first OS. 以下将更充分地描述这些组的实施例中的每一个。 Described more fully below each of the embodiments of these groups.

[0050] 如上所述,计算环境100通过与并发地运行多个操作系统的移动设备相关联的多个用户交互空间来提供多种用户计算体验。 [0050] As described above, the computing environment 100 to provide multiple user computing experience by a plurality of mobile device users interaction space associated with running multiple operating systems concurrently. 具体地,因为移动计算设备110包括多个OS,其中每个OS适合于特定的计算环境,移动计算设备110可用适配于外部I/O设备以便利用单个移动计算设备提供宽范围的用户体验。 Specifically, since the mobile computing device 110 includes a plurality of OS, OS wherein each suited to a particular computing environment, mobile computing device 110 may be adapted to the external I / O devices using a single mobile computing device to provide a wide range of user experiences. 例如,用户可能具有移动计算设备110和在膝上型外壳内包括键盘、显示器、和/或(多个)定点设备的辅助终端环境140。 For example, a user may have an auxiliary terminal environment of the mobile computing device 110 and includes a keyboard, a display, and / or (s) within the laptop pointing device housing 140. 当移动计算设备Iio与膝上型类型的辅助终端环境对接时,通过辅助终端环境140可得到桌面0S160的完整能力。 When the mobile computing device and Iio laptop docking type auxiliary terminal environment, full capacity by the auxiliary terminal 140 to obtain the desktop environment of 0S160.

[0051] 图2图示了根据各个实施例的移动计算环境110的示例性的硬件系统架构。 [0051] FIG 2 illustrates an exemplary hardware architecture of a mobile computing system environment 110 in various embodiments. 移动计算设备硬件112包括移动处理器114,移动处理器114包括一个或多个CPU核204以及外部显示接口220。 Mobile computing device 112 includes hardware processor 114 moves, mobile processor 114 comprises a plurality of CPU cores or the external display 204 and interface 220. 通常,移动计算设备硬件112还包括I/O设备118、存储器206、存储设备208、连接到触摸屏显示器116的触摸屏显示器控制器210、连接到电池216的电源管理IC214、蜂窝调制解调器218、通信设备222,和/或通过各种通信信号和接口连接到处理器114的其它设备224。 Typically, the mobile computing device hardware 112 further includes I / O device 118, memory 206, storage device 208, connected to the touch screen display controller touchscreen display 116 210, is connected to the power management battery 216 IC214, cellular modem 218, the communication device 222 , and / or other devices connected to the processor 114 via the interface 224 and various communication signals. I/O设备118通常包括按钮以及在移动计算设备110中可以采用的其它用户接口组件。 I / O devices 118 typically includes buttons and other user interface components of the mobile computing device 110 may be employed. 例如,I/O设备118可以包括一组按钮(例如,回退、菜单、主屏、搜索等等)、屏外(off-screen)手势区、棘轮、滚轮、QWERTY键盘等等。 For example, I / O device 118 may comprise a set of buttons (e.g., rewind, menu, the main screen, search, etc.), an outer screen (off-screen) gesture area, ratchets, rollers, QWERTY, and the like. 其它设备224可以包括例如,GPS设备、LAN连接、麦克风、扬声器、相机、加速计,和/或MS/MMC/SD/SD10卡接口。 Other devices 224 may include, for example, GPS devices, LAN connection, a microphone, a speaker, a camera, an accelerometer, and / or MS / MMC / SD / SD10 card interface. 外部显示接口220可以是任何适合的显示接口(例如,VGA、DV1、HDMI等等)。 External display interface 220 may be any suitable display interface (e.g., VGA, DV1, HDMI, etc.).

[0052] 处理器114可以是基于ARM的移动处理器。 [0052] The processor 114 may be an ARM-based mobile processor. 在实施例中,移动处理器114是基于ARM的移动处理器,诸如德州仪器0MAP3430、Marvell PXA320、Freescale iMX51,或者Qualcomm QSD8650/8250。 In an embodiment, mobile processor 114 is an ARM-based mobile processor such as a Texas Instruments 0MAP3430, Marvell PXA320, Freescale iMX51, or Qualcomm QSD8650 / 8250. 然而,移动处理器114可以是另一种基于ARM的适合的移动处理器或者基于其它处理器架构(诸如例如基于x86处理器架构或者基于其它RISC处理器架构)的处理器。 However, mobile processor 114 may be another suitable movement based on ARM processor or other processor-based architectures (e.g., such as an x86-based processor architecture or other RISC processor-based architectures) processor. [0053] 尽管图2图示了用于移动计算设备110的一种示例性的硬件实现方式112,但是其它架构也是在本发明的范围之内可以想到的。 [0053] Although Figure 2 illustrates an exemplary mobile computing device 110 hardware implementations 112, but other alternatives are within the scope of the invention conceivable. 例如,图2中图示的移动处理器114外部的各种组件可以被集成到移动处理器114中。 For example, an external 114 illustrated in FIG. 2 mobile processor may be integrated into the various components of the processor 114 moves. 可选地,图2中所示的被集成到移动处理器114内部的外部显示接口220可以位于移动处理器114的外部。 Alternatively, as shown in FIG. 2 to the outside is integrated inside the mobile display processor 114 may be located outside of the mobile interface 220 of the processor 114. 另外,采用系统总线、离散的图形处理器,和/或其它架构性变型的其它计算机架构也适合于采用本发明的方面。 Further, the use of a system bus, a discrete graphics processor, and / or other computer architectures, or other architectural variations are also suitable for use aspect of the present invention.

[0054] 图3图示了根据各个实施例的可以采用来在移动计算设备110上并发地运行移动0S130和桌面0S160的OS架构300。 [0054] Figure 3 illustrates a mobile computing according to various embodiments may be employed and run concurrently moving 0S130 0S160 on the desktop device 110 OS architecture 300. 如图3图示的,移动0S130和桌面0S160是独立的操作系统。 As illustrated in Figure 3, the desktop mobile 0S130 and 0S160 are independent operating system. 具体地,移动0S130和桌面0S160可以具有独立并且不兼容的用户库、图形系统,和/或框架层。 Specifically, the mobile 0S130 and 0S160 desktops can have independent and incompatible user database, graphic system, and / or the frame layer. 可以将OS架构300的功能和指令作为计算机程序代码存储在移动计算设备110的有形的计算机可读介质上。 OS architectures and functions may be instructions 300 as computer program code stored in the mobile computing device 110 on a tangible computer readable medium. 例如,可以将OS架构300的指令存储在移动计算设备硬件112的(多个)存储设备208中。 For example, OS architecture instruction memory 300 may be a hardware computing device (s) 208 of the storage device 112 in the mobile.

[0055] 在OS架构300中,移动0S130和桌面0S160在共享的内核320上并发地运行。 [0055] In the OS architecture 300, the mobile 0S130 and 0S160 desktops running concurrently on the shared core 320. 这意味着移动0S130和桌面0S160同时在共享的内核320上运行。 This means that mobile and desktop 0S130 0S160 run concurrently on shared core 320. 具体地,移动0S130和桌面0S160 二者例如通过对共享的内核320进行系统调用而通过同一内核接口322连接到共享的内核320。 In particular, both the mobile and desktop 0S160 0S130 e.g. shared by kernel 320 by the same kernel system call interface 322 is connected to the shared core 320. 共享的内核320管理用于移动0S130和桌面0S160 二者的处理的任务调度。 Shared management kernel 320 for moving 0S130 and task scheduling process both desktop 0S160. 在这一点上,移动0S130和桌面0S160在共享的内核320上独立地并且并发地运行。 At this point, the mobile and desktop 0S160 and 0S130 independently run concurrently on the shared core 320. 另外,如硬件接口312所图示的,共享的内核320直接在移动计算设备硬件112的移动处理器114上运行。 Further, as illustrated in the hardware interface 312, shared kernel 320 runs directly on the hardware of mobile computing device 112. The processor 114 moves. 具体地,共享的内核320直接管理移动计算设备硬件112的计算资源,诸如CPU调度、存储器访问,和I/O。 In particular, the core 320 directly manage the shared resources of the mobile computing hardware, computing device 112, such as a CPU scheduling, memory access and I / O. 在这一点上,硬件资源没有被虚拟化,意味着移动0S130和桌面0S160通过内核接口322而不是通过虚拟化的存储器或I/O访问来进行系统调用。 At this point, the hardware resources are not virtualized, meaning mobile and desktop 0S160 0S130 kernel interface 322 instead of O access through virtualization of memory or I / by system calls.

[0056] 如图3图示,移动0S130具有库层330、应用框架层340,以及应用层350。 [0056] FIG 3 illustrates, a mobile 0S130 330, application framework layer 340, and an application layer having layer 350 libraries. 在移动0S130中,应用352和354在移动0S130的应用框架层340支持的应用层350中运行。 In the mobile 0S130, 352 and 354 in the application layer of the mobile application framework 340 0S130 support application layer 350 run. 应用框架层340包括在移动0S130上运行的应用程序所使用的(多个)管理器342和(多个)服务344。 Application framework layer 340 includes an application program running on the mobile 0S130 use (s) 342 and manager (s) 344 service. 例如,应用框架层340可以包括窗口管理器、活动管理器、分组管理器、资源管理器、电话管理器、手势控制器,和/或用于移动环境的其它管理器和服务。 For example, the application framework layer 340 may include a window manager, an activity manager, group management, a resource manager, telephony manager, controller gestures, and / or other management services and for mobile environment. 应用框架层340可以包括执行为移动0S130开发的应用程序的移动应用运行时环境。 Application framework layer 340 may include performing run applications for mobile application development environment 0S130 movement. 可以针对移动计算资源,诸如低处理功率和/或有限的存储空间,来优化移动应用运行时环境。 Resource may be calculated for a mobile, low processing power and / or the limited storage space, such as a mobile application to optimize the run-time environment. 移动应用运行时环境可能依赖于用于进程隔离、存储器管理以及线程支持的内核。 Mobile application runtime environment can depend on for process isolation, memory management and threading support the core. 库层330包括实施诸如I/O和字符串操作、图形功能、数据库能力、通信能力,和/或其它功能和能力之类的普通功能的用户库332。 Layer 330 comprises a user database embodiment library function such as a common I / O operations and strings, graphics, database capabilities, communication capabilities, and / or other functions and capabilities of the class 332.

[0057] 如图3图示的,桌面0S160具有库层360、框架层370,以及应用层380。 [0057] illustrated in FIG. 3, the desktop 0S160 layer 360 having a library, frame layer 370, and an application layer 380. 在桌面0S160中,应用382和384在桌面0S160的应用框架层370支持的应用层380中运行。 0S160 the desktop, the application 382 and application 384 run on the desktop 0S160 frame layer 370 supported by application layer 380. 应用框架层370包括在桌面0S160上运行的应用程序所使用的(多个)管理器372和(多个)服务374。 Application framework layer 370 includes an application program running on the desktop used 0S160 (s) 372, and manager (s) 374 service. 例如,应用框架层370可以包括窗口管理器、活动管理器、分组管理器、资源管理器,和/或桌面环境所共有的其它管理器和服务。 For example, the application framework layer 370 may include other window manager and service manager, event manager, the packet manager, a resource manager, and / or a common desktop environment. 库层360可以包括实施诸如I/O和字符串操作、图形功能、数据库能力、通信能力,和/或其它功能和能力之类的普通功能的用户库362。 Library layer 360 may include functions such embodiments Common I / O and string operations, graphics, database capabilities, communication capabilities, and / or other functions and capabilities such user library 362.

[0058] 在本公开的各种实施例中,桌面0S160与移动0S130运行在单独的执行环境中。 [0058] embodiment, the desktop mobile 0S130 and 0S160 run a separate execution environment in various embodiments of the present disclosure. 例如,移动0S130可以运行在根执行环境中,桌面0S160可以运行在根执行环境下建立的次级执行环境中。 For example, you can run in the root 0S130 mobile execution environment, the desktop can run 0S160 secondary execution environment established in the root execution environment. 在移动0S130上运行的处理和应用程序访问根执行环境中的用户库332、(多个)管理器342和(多个)服务344。 Processing and applications running on the mobile 0S130 execution environment to access the root user library 332, (multiple) manager 342 and (multiple) services 344. 在桌面0S160上运行的处理和应用程序访问次级执行环境中的用户库362、(多个)管理器372和(多个)服务374。 0S160 processing on the desktop and applications running on the user's access to the secondary database execution environment 362, (multiple) manager 372 and (multiple) services 374.

[0059] 在实施例中,移动0S130和桌面160是具有不兼容的用户库、图形系统,和/或应用框架的独立的操作系统。 [0059] In an embodiment, the table 160 is moved 0S130 and independent operating systems are not compatible with a user database, graphic system, and / or the application framework. 因此,为移动0S130开发的应用可能不能直接在桌面0S160上运行,为桌面0S160开发的应用可能不能直接在移动0S130上运行。 Therefore, it may not run for the mobile application development 0S130 0S160 directly on the desktop, the desktop application development 0S160 may not run directly on mobile 0S130. 例如,在移动0S130的应用层350中运行的应用程序352可能与桌面0S160不兼容,这意味着应用程序352不能在桌面0S160上运行。 For example, an application 352 running in the application layer 350 in the mobile 0S130 may not be compatible with the desktop 0S160, which means that an application can not run on the desktop 352 0S160. 具体地,应用352可能依赖对于桌面0S160的(多个)管理器372、(多个)服务374、和/或库362不可用或者不兼容的移动0S130的(多个)管理器342、(多个)服务344、和/或库332。 In particular, for the desktop application 352 may rely 0S160 (s) Manager 372 (s) services 374, and / or mobile database 362 is not available or not compatible 0S130 (s) manager 342, (poly a) services 344, and / or library 332.

[0060] 结果,移动0S130和桌面0S160可能具有不同组的可用应用程序。 [0060] As a result, the mobile 0S130 and 0S160 table may have a different set of available applications. 在这一点上,OS架构300的移动0S130和桌面0S160通过经由单独的用户交互空间可访问的单独的多组应用程序提供了单独的用户体验。 At this point, OS architecture for mobile and desktop 0S130 0S160 300 provides a single user experience through separate sets of applications via a single user interaction space accessible. 用户可以通过与移动0S130相关联的第一用户交互空间访问移动0S130上可用的(即,被编译用于移动0S130并且被加载到移动0S130的执行环境中的)应用程序,并且通过与桌面0S160相关联的第二用户交互空间访问在桌面0S160上可用的应用程序。 The mobile user may access the available space 0S130 by the first user interaction with the mobile 0S130 associated (i.e., for moving the 0S130 is compiled and loaded into the execution environment moved in 0S130) applications and desktop 0S160 related by the second user interaction space with access to applications available on the desktop 0S160.

[0061] 如上所述,移动操作系统典型地不使用与桌面操作系统相同的图形环境。 [0061] As described above, mobile operating systems typically do not use the same operating system desktop graphical environment. 桌面OS的图形环境被设计为针对灵活性和高性能。 Desktop OS graphical environment is designed for flexibility and high performance. 例如,由某些桌面OS使用的χ-window系统以更高的处理和系统资源为代价提供了平台和网络的独立性。 For example, χ-window system used by some of the desktop OS provides platform independence and network with higher processing and system resources for the price. 相反,移动OS的图形环境被设计为更多地针对效率和移动计算环境的特定用户输入设备而较少地针对灵活性。 Rather, the specific user of the mobile OS graphical environment are designed to more efficiently computed for the mobile environment and input devices for less flexibility. 因为移动OS和桌面OS的图形环境经常不同,所以不能通过将来自移动OS的图形服务器的图形信息重定向到桌面OS的图形服务器而将在移动OS上运行的应用程序重定向为在桌面OS的用户空间中进行显示。 Because mobile OS and desktop OS graphical environment are often different, the graphic information of mobile graphics server OS's can not be redirected to the desktop from the OS and the graphics server application running on the mobile OS redirected to the desktop OS user space display.

[0062] 最广泛米用的移动OS是Google (谷歌)的Android (安卓)。 [0062] The most widely used mobile OS meter is Google (Google) of Android (Andrews). 尽管Android是基于Linux,但它包括针对移动环境和移动处理器而对内核和其它OS层进行的修改。 Although Android is based on Linux, but includes modifications to the mobile environment and a mobile processor OS kernel and other layers of. 具体地,尽管Linux内核是针对PC( S卩,x86) CPU架构设计的,但Android内核是针对基于ARM的移动处理器而修改的。 Specifically, although the Linux kernel is for PC (S Jie, x86) CPU architecture, but for the Android kernel is based on the ARM mobile processors and modify. 针对在移动硬件架构中典型存在的设备也特别调整了Android设备驱动器,所述移动硬件架构包括触摸屏、移动连接(GSM/EDGE,CDMA, W1-Fi等等)、电池管理、GPS、加速计,以及相机模块,连同其它设备。 For the presence of a typical mobile hardware architectures apparatus is particularly adjusted Android device driver, the moving architectures includes a touch screen, a mobile connection (GSM / EDGE, CDMA, W1-Fi, etc.), battery management, GPS, accelerometer, and a camera module, along with other equipment. 另外,Android既不具有原生的XWindowSystem也不支持完整组的标准GNU库,这使得难以将现有的GNU/Linux应用程序或者库移植到Android上。 Further, Android XWindowSystem having neither native library does not support standard GNU complete set, which makes it difficult to migrate existing GNU / Linux to application or library on Android.

[0063] 苹果的(在iPhone上运行的)iOS操作系统和微软的Windows Phone7是针对移动环境和移动硬件架构被类似修改的。 [0063] Apple's (running on the iPhone) iOS operating system and Microsoft's Windows Phone7 is for the mobile environment and mobile hardware architecture is similarly modified. 例如,尽管从Mac OS X桌面OS中导出iOS,但普通的Mac OS X应用程序不能在iOS上原生地运行。 For example, while iOS is derived from Mac OS X desktop OS, but an ordinary Mac OS X application can not run natively on iOS Uehara. 具体地,通过标准的开发者套件(“SDK”)开发iOS应用程序以便在iOS的“Cocoa Touch”运行时环境内运行,其对于诸如基于触摸的输入、推送通知和系统服务之类的关键iOS特征提供了基本的应用程序基础结构和支持。 In particular, the development of iOS applications to run through the standard developer kit ( "SDK") in "Cocoa Touch" iOS operating within the environment, which for such touch-based input, push notification, and system services such critical iOS feature provides the basic application infrastructure and support. 因此,为Mac OS X编写的应用程序不能在没有移植的情况下在iOS上运行。 Therefore, in order to write Mac OS X applications can not run on iOS without a transplant situation. 另外,将Mac OSX应用程序移植到iOS上可能是困难的,这是因为两个OS的用户库和/或应用框架层之间的差异、和/或移动硬件和桌面硬件的系统资源之间的差异。 Further, the applications to Mac OSX on iOS may be difficult, because the difference between the system resources between two user library OS and / or application layer framework, and / or hardware of the desktop and mobile hardware difference.

[0064] 在与OS架构300 —致的一个实施例中,Android移动OS和全Linux OS独立地并且并发地在修改的Android内核上运行。 [0064] In the architecture 300 OS - one embodiment consistent, Android OS and the whole movement the Linux OS independent and run on a modified Android kernel concurrently. 在该实施例中,Android OS可以是修改的Android分布,而Linux 0S(“Hydroid”)可以是修改的Debian Linux桌面OS。 In this embodiment, the OS may be modified Android Android distribution while Linux 0S ( "Hydroid") may be a modified table Debian Linux OS. 图4-6更详细地图示了根据各个实施例的可以在OS架构300中采用的Android移动0S430、Android内核520,以及Hydroid 0S660。 4-6 illustrate in more detail in accordance with the moving 0S430 Android OS can be employed in various embodiments of the architecture 300 of the embodiment, core 520 Android, and Hydroid 0S660.

[0065] 如图4图示的,Android 0S430包括通过应用框架层440访问的库层432中的一组C/C++库。 [0065] illustrated in FIG. 4, Android 0S430 layer comprising a library accessible to the application framework layer 440 in a group 432 C / C ++ library. 库层432包括特别针对Android开发的、要比“glibc”LinuxC库更小并更快的“bionic”系统C库439。 Library layer 432 includes specifically for Android development, than the "glibc" LinuxC library smaller and faster "bionic" 439 C library system. 库层432还包括进程间通信(“ IPC”)库436,其包括Android OS的“Binder”IPC机制的基本类。 Library layer 432 further includes inter-process communication ( "IPC") database 436, which includes a base class "Binder" IPC mechanisms of Android OS. Binder是特别针对Android开发的以便允许进程和服务之间进行通信。 Binder is especially developed for Android communicate between processes and services to allow. 图4中的库层432中示出的其它库包括:支持媒体格式的记录和回放的媒体库435、管理对显示子系统的访问以及合成来自多个应用程序的图形层的表面(surface)管理器434、2D和3D图形引擎438,以及轻量关系数据库引擎437。 FIG library layer 4 shown in other libraries 432 include: support for recording and playback of media format the media library 435, access to the display management subsystem and a surface layer of a synthetic pattern from the plurality of applications (Surface) manage is 434,2D and 3D graphics engine 438, and lightweight relational database engine 437. 可以被包括在库层432中但是未在图4中画出的其它库包括位图和矢量字体呈现库、公用库、浏览器工具(即,WebKit等等),和/或安全通信库(即,SSL等等)。 432 may be included in the library in the library but other layers not shown in FIG. 4 includes a bitmap and vector font rendering library, a public library, browser tool (i.e., the WebKit etc.), and / or secure communication library (i.e. , SSL, etc.).

[0066] Android 0S430的应用框架层440提供了开发平台,该开发平台允许开发者使用设备硬件的组件、访问位置信息、运行后台服务、设置警报,向状态栏添加通知,等等。 Application framework layer [0066] Android 0S430 440 provides a development platform, the development platform allows developers to use the device hardware components, access location information, run background services, set alarms, add notifications to the status bar, and so on. 框架层440还允许应用程序公开它们的能力并且使用其它应用程序的所公开的能力。 Frame layer 440 allows applications to use their capabilities and capacities discloses other applications disclosed. Android移动0S430的应用框架层440的组件包括活动管理器441、资源管理器442、窗口管理器443、对接管理器444、硬件和系统服务445、桌面监视器服务446、多显示器管理器447,以及远程通信服务448。 Android application layer of the mobile frame assembly 440 comprises 0S430 activity manager 441, resource manager 442, the window manager 443, a docking manager 444, the hardware and system services 445, the desktop monitor service 446, the multi-display manager 447, and telecommunications services 448. Android移动0S430的框架层440中可以包括的其它组件包括:视图系统、电话管理器、分组管理器、位置管理器,和/或通知管理器,连同其它管理器和服务。 Other components of the Android mobile framework layer 440 may include 0S430 comprises:-view system, telephony manager, group management, a location manager, and / or a notification manager, along with other managers and service.

[0067] 在Android 0S430上运行的应用程序在Android面向对象应用框架之上的Android运行时环境433中的Dalvik虚拟机431内运行。 [0067] Android application running on top of the Android Android 0S430 object-oriented application framework runtime environment 433 in the virtual machine is running Dalvik 431. Dalvik虚拟机431是基于注册的虚拟机,并且运行被设计用于减少存储器使用和处理需求的紧凑的可执行的格式。 Dalvik virtual machine 431 is registered on the virtual machine, and the operation is designed to reduce memory usage and processing requirements compact executable format. 在Android 0S430上运行的应用程序包括主屏幕451、电子邮件应用程序452、电话应用程序453、浏览器应用程序454,和/或(多个)其它应用程序(“APP (s) ”)455。 Applications running on a home screen Android 0S430 451, email application 452, phone application 453, browser application 454, and / or (s) of other applications ( "APP (s)") 455.

[0068] Android OS图形系统使用客户机/服务器模型。 [0068] Android OS graphics system uses a client / server model. 表面管理器(“SurfaceFlinger”)是图形服务器,应用程序是客户机。 Surface manager ( "SurfaceFlinger") is a graphics server, the application is a client. SurfaceFlinger保持显示器ID的列表并且跟踪向显示器ID分配应用程序。 SurfaceFlinger maintains a list of the display ID and track ID is assigned to the display application. 在一个实施例中,移动计算设备110具有多个触摸屏显示器116。 In one embodiment, the mobile computing device 110 having a plurality of touch screen display 116. 在该实施例中,显示器IDO与一个触摸屏显示器116相关联,显示器IDl与另一个触摸屏显示器116相关联。 In this embodiment, the display with a touch screen display IDO 116 is associated with another display IDl touchscreen display 116 is associated. 显示器ID2与这两个触摸屏显示器116相关联(即,同时在这两个显示器上显示应用程序)。 Displays ID2 and the two associated touchscreen display 116 (i.e., applications simultaneously displayed on both displays). ID大于2的显示器是虚拟显示器,意味着它们不与在移动计算设备硬件112上物理存在的显示器相关联。 2 is larger than the display ID of a virtual display, it means that they do not move with the computing device hardware physically present on the display 112 is associated.

[0069] Android应用程序的图形信息包括窗口、视图和画布(canvas)。 Graphics information [0069] Android application comprises windows, views, and canvas (canvas). 利用底层表面对象来实现每个窗口、视图,和/或画布。 To achieve each window, view, and / or the underlying surface of the object using the canvas. 表面对象是双缓冲的(前和后缓冲)并且在绘制的过程中被同步。 Surface of the object is double-buffered (front and rear cushion) and is synchronized during the drawing. SurfaceFlinger在共享的存储器池中保持所有的表面,共享的存储器池允许Android内的所有处理访问并且绘制到它们中而不用花费高的拷贝操作并且也不用使用服务器侧的绘制协议,诸如X-Windows。 SurfaceFlinger held in the shared memory pools of all surfaces, the shared pool of memory access in the process to allow all Android and draws them into the copy operation without costly and do not use the server side rendering protocol, such as X-Windows. 应用程序总是绘制到后缓冲区中,而SurfaceFlinger从前缓冲区进行读取。 After the application is always drawn to the buffer, the front buffer SurfaceFlinger read. SurfaceFlinger创建每个表面对象、保持所有的表面对象,并且还为每个应用程序保持表面对象的列表。 SurfaceFlinger create each surface of the object, keeping all the surface of the object, and also maintains a list of the surface of the object for each application. 当应用程序完成在后缓冲区中的绘制时,其向SurfaceFlinger通知事件,这使得后缓冲区互换到前缓冲区,并且将呈现表面信息的任务排队给帧缓冲区。 When the application is finished after the drawing buffer in which the notification event SurfaceFlinger, which makes the back buffer to the front buffer exchange, and the surface information of rendering tasks queued to the frame buffer.

[0070] SurfaceFlinger监视所有的窗口改变事件。 [0070] SurfaceFlinger monitor all the windows change event. 当一个或多个窗口改变事件出现时,SurfaceFl inger将表面信息呈现给帧缓冲区用于一个或多个显示。 When one or more windows change event occurs, SurfaceFl inger surface for presenting information to a frame buffer or more display. 呈现包括合成表面,即,基于表面的维度、透明度、z顺序以及可见性合成最终的图像帧。 Presentation including synthetic surface, i.e., based on the dimension of the surface, transparency, z synthesis of the final order, and the visibility of the image frame. 呈现还可以包括硬件加速(例如,用于图形处理硬件的0penGL2D和/或3D接口)。 It may further include rendering hardware acceleration (e.g., 0penGL2D processing hardware for graphics and / or 3D interface). SurfaceFlinger在所有的表面对象上循环并且将它们的前缓冲区以其Z顺序呈现给帧缓冲区。 SurfaceFlinger loop over all the surface of the object and their presentation to the frame buffer before the buffer is in its Z-order.

[0071] 图5更详细地图示了根据各个实施例的修改后的Android内核520。 [0071] FIG 5 illustrates in more detail the Android core 520 modified in accordance with various embodiments. 修改后的Android内核520包括触摸屏显示器驱动器521、(多个)相机驱动器522、(多个)蓝牙驱动器523、共享的存储分配器524、(多个)IPC驱动器525、(多个)USB驱动器526、(Sf)WiFi驱动器527、(多个)I/O设备驱动器528,和/或功率管理模块530。 Android core 520 modified includes a touch screen display driver 521, (s) camera driver 522, (s) a Bluetooth driver 523, shared memory allocator 524, (s) IPC driver 525, (s) USB drives 526 , (Sf) WiFi driver 527, (s) I / O device drivers 528, and / or power management module 530. (多个)I/O驱动器528包括用于外部I/O设备的设备驱动器,所述外部I/O设备包括可以通过端口120连接到移动计算设备110的设备。 (S) I / O driver 528 includes a device driver for the external I / O devices, the external I / O devices may be connected to the device comprises a mobile computing device 110 through the port 120. 修改后的Android内核520可以包括其它驱动器和功能块(包括低存储器抑制器(low memory killer)、内核调试器、日志记录能力,和/或其它硬件设备驱动器)。 Android modified core 520 may include other drivers and function blocks (suppressor comprises a low memory (low memory killer), the kernel debugger, logging capabilities, and / or other hardware device driver).

[0072] 图6更详细地图示了根据各个实施例的Hydroid 0S660。 [0072] FIG. 6 illustrates in more detail in accordance with various embodiments Hydroid 0S660. Hydroid是能够运行为标准Linux分布开发的几乎任何应用程序的全Linux OS。 Hydroid is a full Linux OS to run virtually any application as standard Linux distribution developed. 具体地,Hydroid 0S660的库层662包括支持联网、图形处理、数据库管理、和其它普通程序功能的Linux库。 Specifically, Hydroid layer 662 0S660 library includes support for Linux library networking, graphics processing, database management, and other common program functions. 例如,任何库662 可以包括“glibc” Linux C 库664、Linux 图形库662 (例如,GTK> OpenGL 等等)、Linux公用库661、Linux数据库、和/或其它Linux用户库。 For example, database 662 may include any "glibc" Linux C library 664, Linux graphics library 662 (e.g., GTK> OpenGL, etc.), a common library 661 Linux, Linux database, and / or other Linux user library. 应用程序运行在使用X_Server674、窗口管理器673、和/或桌面环境672 的X-Windows Linux图形环境内的Hydroid上。 Application runs in use X_Server674, on Hydroid within the graphical environment Linux window manager 673, and / or desktop environment 672 X-Windows. 图示的应用程序包括字处理器681、电子邮件应用程序682、电子数据表应用程序683、浏览器684和其它(多个)应用程序685。 Illustrated includes a word processor application 681, email application 682, a spreadsheet application 683, browser 684, and other (s) 685 applications.

[0073] Linux 03图形系统基于乂-¥;[11(10¥8(或者“乂11”)图形系统。X-windows是独立于平台、联网的图形框架。X-windows使用客户机/服务器模型,其中X-server是图形服务器而应用程序是客户机。X-服务器控制与Linux OS相关联的输入/输出硬件,诸如显示器、触摸屏显示器、键盘、(多个)定点设备等等。在这一点上,X-windows提供服务器侧绘制图形架构,即,X-server保持包括窗口和像素映射的可绘制的内容。X_client通过交换用于描述通信信道上的绘制操作的数据分组而与X-server通信。X-client通过标准例程库(“Xlib”)访问X通信协议。例如,X-client可以向X-server发送在客户机窗口上绘制矩形的请求。X-server向X-client发送输入事件,例如键盘或者定点设备输入,和/或窗口移动或者调整大小。输入事件与客户机窗口有关。例如,如果指针在窗口内时用户进行点击,则X-server向与该窗 [0073] Linux 03 graphics-based systems qe - ¥; [11 (10 ¥ 8 (or "Yi in 11") .X-windows graphics system is platform-independent, networked graphics frame .X-windows using a client / server model wherein the X-server is a graphics server application is a server for the client .X- control associated with Linux OS / output hardware, such as a display, a touch screen displays, keyboards, (s) a pointing device, etc. at this point on, X-windows graphics architecture providing server-side rendering, i.e., X-server holding contents and includes a window may be drawn pixel mapping .X_client by exchanging data for drawing operations described packet communication channel communicate with the X-server X .X-client access to a communication protocol standard routines repository ( "Xlib"). For example, X-client may transmit to the X-server to draw a rectangular window on the client request .X-server to send an input event X-client , such as a keyboard or pointing device input and / or move or resize the window. enter the relevant event of the client window. for example, if the pointer is in the window, the user clicks, with the X-server to the window 口相关联的X-client发送包括输入事件的分组,所述输入事件包括该动作和与该窗口有关的事件的定位。 Opening the associated X-client transmits a packet including an input event, the input event comprises the positioning and operation associated with the window event.

[0074] 因为操作系统框架、图形系统、和/或库中的差异,为Android编写的应用程序通常不能在Hydroid 0S660上运行,为标准Linux分布编写的应用程序通常不能在Android0S430上运行。 [0074] Because the operating system framework, the graphics system, and differences / or library, written for Android applications typically will not run on Hydroid 0S660, applications written for the standard Linux distributions usually can not run on Android0S430. 在这一点上,Android 0S430和Hydroid0S660不是字节码兼容的,这意味着被编译用于其中一个并且对于所述其中一个可执行的程序在另一个上不能运行。 In this regard, Android 0S430 and bytecode Hydroid0S660 not compatible, which means that one is compiled to run on another and not to the one of the executable program.

[0075] 在一个实施例中,Hydroid 0S660包括通过共享的内核520便于与Android 0S430通信的交叉环境通信框架的组件。 [0075] In one embodiment, Hydroid 0S660 shared by comprising core assembly 520 to facilitate communication with the cross frame 0S430 communication environment of Android. 这些组件包括IPC库663,其包括Android OS的BinderIPC机制的基础类和远程通信服务671。 These components include IPC library 663, based on class and telecommunication services 671 include BinderIPC mechanism of the Android OS.

[0076] 在一个实施例中,Hydroid 0S660在Android根环境内创建的改变根目录的(chrooted)(利用“chroot”命令创建的)辅助执行环境中运行。 [0076] In one embodiment, Hydroid 0S660 created in the root environment changes Android root (the chrooted) (using "chroot" command creates) an auxiliary running execution environment. 在辅助执行环境内运行Hydroid 0S660内的处理和应用程序,使得通过这些处理和应用程序看见的外观根目录是辅助执行环境的根目录。 And operation processing applications within Hydroid 0S660 in the auxiliary execution environment, such that these processes and applications by seeing the appearance of the root directory is the root directory assistance execution environment. 以此方式,Hydroid 0S660可以在不进行修改的情况下运行为标准Linux发布编写的程序,这是因为Linux用户库662对于在改变根目录的(chrooted)辅助执行环境中的Hydroid0S660上运行的处理是可用的。 In this way, Hydroid 0S660 can run programs written for publication in the standard Linux without modification. This is because Linux user library 662 for a process running on a change in the root directory (chrooted) assist in the execution environment is Hydroid0S660 usable.

[0077] 参照回到图3,移动0S130和桌面160是在移动设备上共享的内核320上活动并发执行的。 [0077] Referring back to FIG. 3, the mobile 0S130 and desktop on mobile devices 160 are shared by the cores 320 concurrently executing activities. 移动0S130和桌面0S160可能关于用户库、图形系统,和/或应用框架是不兼容的。 Mobile and desktop 0S160 0S130 possible user database, graphics system, and / or application frameworks are incompatible. 因此,移动0S130和桌面0S160具有不同组的可用的应用程序,这意味着至少一些在移动0S130上可用的应用程序在桌面0S160上不可用,反之亦然。 Accordingly, the mobile 0S130 and 0S160 table having a different set of available applications, which means that at least some movement available on the desktop application 0S130 0S160 unavailable, and vice versa. 相应地,OS架构300的移动0S130和桌面0S160通过经由单独的用户交互空间可访问的不同组的应用程序来提供单独的用户体验。 Accordingly, OS architecture for mobile and desktop 0S130 0S160 300 to provide individual user experience through the application of different sets of user interaction via a separate space accessible. 用户可以通过与移动0S130相关联的用户交互空间来访问移动0S130上可用的(即,被编译用于移动0S130并被加载到其执行环境中的)应用程序,并且通过与桌面0S160相关联的用户交互空间访问在桌面0S160上可用的应用程序。 The user can access the mobile user is available on the interaction space 0S130 0S130 associated with the mobile (i.e., for moving the 0S130 is compiled and loaded into its execution environment) applications, and the user associated with desktop 0S160 interactive space access applications available on the desktop 0S160.

[0078] 本发明的实施例扩展了OS架构300的功能以便在多OS计算环境中提供更多无缝的计算体验。 Example [0078] The present invention extends the functions of OS architecture 300 in order to provide more seamless computing experience in a multi-OS computing environment. 实施例包括第一操作系统的应用程序和/或用户空间在第二操作系统的用户交互空间中的交叉环境呈现,即便第一操作系统和第二操作系统的图形环境不兼容。 Embodiments include the first operating system and an application / user space or intersecting the second operating system environment of a user interaction space presented, even if the operating system is not compatible with the first and second operating systems graphical environment. 实施例还包括交叉环境应用程序的用户交互支持,以及从第二操作系统的用户交互空间访问第一操作系统的应用程序。 Embodiment further includes a user interaction crossing support the application environment, the first operating system and access applications from the second operating system user interaction space. 该功能使得例如在移动0S130上运行的移动OS应用程序能够被与桌面0S160相关联的用户交互空间显示并且与之交互。 This feature allows the OS such as a mobile application running on the mobile 0S130 be able to interact with the user of desktop space 0S160 associated display and interact. 例如,尽管用户正在通过与桌面0S160相关联的用户交互空间与桌面0S160交互,但用户可能希望访问不可用于桌面0S160(即,不兼容并且不能在其上运行)的移动0S130的特定应用程序。 For example, while the user is 0S160 interactive desktop, but the user may wish to associate with desktop 0S160 user interaction space access is not available for the desktop 0S160 (ie, incompatible and can not run on it) the specific application of mobile 0S130. 使用以下公开的各个实施例,用户可以通过与桌面0S160相关联的用户交互空间对为移动0S130编译并在其上运行的应用程序进行访问、显示并且与之交互。 The following various embodiments disclosed embodiment, the user can run the application and on which the user interacts with the desktop space associated 0S160 0S130 compiled mobile access, display and interact. 特别地,实施例向交叉环境交互支持提供了移动OS的任何应用程序,意味着为使用以下的实施例不需要修改移动OS应用程序来包括特定的交换环境支持。 In particular, embodiments provide any of the applications to the mobile cross-OS environment interaction support means of the following examples without modifying the mobile application to include a particular OS switching environment support.

[0079] 为提供从第二OS(例如,桌面0S160)的用户交互空间对第一OS(例如,移动0S130)的应用程序和/或用户交互空间的无缝交叉环境用户交互支持,可能期望实时地呈现应用程序和/或用户交互空间的图形数据(即,图形上下文或者活动的显示)以供在第二OS的用户交互空间中显示。 [0079] To provide the second OS (e.g., a desktop 0S160) user interaction space (e.g., a mobile 0S130) applications and / or user interaction crossing support seamless user interaction environment on the first OS space, it may be desirable in real time the presentation application and / or user interactive graphical data space (i.e., display graphics context or activity) for display in a second user interaction space OS. 在该上下文中,实时(或者立即)呈现意味着将应用程序的图形数据足够快地呈现给第二OS的用户交互空间,使得用户可以与应用程序进行交互而不存在由于与图形信息的传递相关联的延迟引起的应用程序性能的明显的或者实质性的降低。 In this context, real-time (or immediately) graphical data presentation means that presents the application of fast enough space to a second user interaction with the OS, so that the user can interact with the application without the transferred pattern due to the information related to significantly or substantially reduced with the application performance due to delay. 在这一点上,如在此所描述的,用于实时(或者立即)交叉环境呈现的技术提供了图形信息的快速传递,例如具有有限的帧数延迟或者与从第一OS到第二OS拷贝或者传递图形信息相关联的其它延迟。 In this regard, as described herein, for real-time (or immediately) intersecting environment presents a rapid transfer technology provides graphics information, for example, a delay or with a limited number of frames from the first copy to the second OS OS graphical information, or other delay associated with transmission. 然而,这不意味着图形传递不花费任何时间,并且在此公开的交叉环境呈现技术可以被视为是立即的或者实时的,即便在图形信息被显示在第二OS的用户交互空间上之前经过了有限的时间段。 However, this does not mean that the graphics do not spend any time pass, and disclosed cross-environment rendering technology can be seen as immediate or real-time, even if they are displayed on the user interaction through before the second OS space in the graphical information a limited period of time. [0080] 为了实现应用程序的交叉环境呈现,可以从在第一操作系统中运行的应用程序向第二操作系统的图形系统传递潜在的大量图形数据。 [0080] In order to achieve cross-presentation application environment, can be transferred from the potentially large number of pattern data application running on the first operating system to the second operating system's graphics system. 现有的机制不能够在没有潜在影响显示更新或者帧率的情况下传递所需的图形数据。 Existing mechanisms can not transfer the graphics data required in the absence of the potential impact or the display update frame rate situation. 例如,在移动计算环境的约束条件下直接传递图形数据可能不现实。 For example, under the constraint of a mobile computing environment and graphical data may be transmitted directly impractical. 可以使用压缩技术来减少要传递的总的数据量,但是以增加的压缩和解压缩信息的处理需求为代价。 You can use compression techniques to reduce the total amount of data to be transferred, but to deal with the increased demand for compression and decompression of information for the price. 可以使用类似远程桌面的系统来传送矢量图形或者图形更新信息,然而,当传递大量的图形数据或者用于快速改变图形内容时,这些典型地也是缓慢的。 You can use a similar system to transmit the remote desktop vector graphics or graphics update information, however, when a large amount of graphics data transmission or for fast changing graphics content, which are typically slow.

[0081] 图7图示了根据各个实施例的OS架构配置300a,可以采用该OS架构配置300a来在第二OS的用户交互空间内提供第一OS的应用程序和/或用户交互空间的交叉环境呈现,其中第一OS和第二OS并发地在共享的内核上运行并且与包括单独的显示设备的单独的用户交互空间相关联。 [0081] FIG. 7 illustrates an architecture of various embodiments of the OS configuration 300a, the OS can be arranged cross-architecture OS 300a to provide a first user interaction in the space of the second OS applications and / or user interaction space using rendering the environment, wherein a first OS and a second OS kernel running on a shared concurrently and the individual user interaction space comprises a device associated with a separate display. OS架构配置300a的组件使得在桌面0S160的用户交互空间内呈现在移动0S130上运行的应用程序和/或移动0S130的图形上下文,其中0S130和桌面0S160在共享的内核320上并发地运行。 Assembly 300a is configured such that the OS architecture presentation application running on the mobile 0S130 graphics context and / or movement in the 0S130 user interaction 0S160 desktop space, wherein 0S130 and 0S160 concurrently on the desktop sharing kernel 320 runs. 在各个实施例中,通过桌面0S160的控制台应用程序782在桌面0S160的用户交互空间中的控制台窗口中显示应用程序。 In various embodiments, the console 782 displays the application window in the desktop space 0S160 user interaction via the control panel in the desktop application of 0S160. 在一种实现方式中,控制台应用程序782是通过桌面0S160的X-windows类型图形系统在桌面0S160的用户交互空间内显示的X-windows类型的应用程序。 In one implementation, the console application 782 is a type of X-windows desktop application type X-windows graphics system 0S160 displayed in the user's interaction 0S160 desktop space.

[0082] 在OS架构配置300a中,移动0S130包括为移动0S130的应用程序(例如,应用程序752和754)分配和管理表面信息(例如,表面726、727和728)的图形服务器734。 [0082] 300a disposed on OS architecture, including mobile 0S130 0S130 mobile applications (e.g., applications 752 and 754) and distribution management information surfaces (e.g., surfaces 726 and 727, and 728) of the graphics server 734. 在一个实施例中,图形服务器734使用匿名的共享存储器为图形表面分配存储器(即,在进程之间共享被命名的存储器块,这允许内核空闲)。 In one embodiment, the graphics server 734 using anonymous shared memory is a memory allocation pattern surface (i.e., the shared memory block named between processes, which allows the kernel is idle). 图形服务器734还分配和跟踪移动0S130的显示器,包括移动计算设备硬件112内集成的显示器(即本地显示器)和通过其可以远程显示(即,在另一OS的用户交互空间内的)移动0S130的应用程序的所谓的虚拟显示器。 Graphics server 734 also assign and track moving 0S130 display, including integrated within the mobile computing device 112 displays the hardware (i.e., the local display) and which can be displayed by the remote (i.e., within a user interaction space of another OS) of the mobile 0S130 the so-called virtual display applications. 移动0S130还可以包括在与移动0S130相关联的显示屏幕上同时显示多个应用程序的窗口系统。 Mobile 0S130 may further comprise simultaneously displaying a plurality of applications of a window system on a display screen associated with the mobile 0S130. 在一个实施例中,移动0S130包括提供用于从桌面0S160访问移动0S130的组件的远程通信信道的服务。 In one embodiment, the mobile 0S130 comprising providing a remote communication channel for the moving assembly 0S130 0S160 service accessible from the desktop.

[0083] OS架构配置300a包括在移动0S130上运行并且在与移动0S130相关联的第一用户交互空间内显示的第一应用程序752。 [0083] OS configuration 300a comprises a framework running on the mobile 0S130 and the first application is displayed in the first user interaction space associated with the mobile 752 0S130. 根据以下描述的实施例,OS架构配置300a包括也在移动0S130上运行但是通过交叉环境呈现而在与桌面0S160相关联的第二用户交互空间内显示的第二应用程序754。 According to the embodiment described hereinafter, OS 300a fabric configuration also comprises a mobile, but presents a second running 0S130 application program displayed in the second user interaction space associated with desktop 0S160 754 by cross-environment. 在一个实施例中,通过在桌面0S160上运行的控制台应用程序782在第二用户交互空间的控制台窗口内显示应用程序754。 In one embodiment, the console application running on the desktop 0S160 782 shows the application window 754 in the console second user interaction space.

[0084] 通常,移动0S130的应用程序将用户通过其与应用程序交互的视图实例化(instantiate)。 [0084] Generally, mobile applications 0S130 through which a user will interact with an application view of an example of (instantiate). 例如,应用程序可以具有组成应用程序窗口的单个视图。 For example, an application may have a single view of the components of the application window. 在各视图内,应用程序将应用程序界面的特定区域的绘制对象实例化。 Within each view, the application area of ​​the drawing object specific application program interface instantiation. 绘制对象可以被称为画布或者绘制层,并且是应用程序通过其绘制图形信息的对象。 Drawing object may be called a canvas or paint layer, and is the object through which the application is to draw graphics information. 当应用程序将画布或者层实例化时,图形服务器734为与画布或者层相关联的表面信息分配存储器并且将绘制对象返回给应用程序,应用程序然后使用其来绘制画布或者层的表面的图形信息。 When the application canvas or layers is instantiated, the graphics server 734 and information allocating memory surface of the canvas or a layer associated with and the drawing object returned to the application, the application and use it to draw a surface canvas or layer graphics information . 图形服务器734然后监视表面信息并且当表面信息被更新时将表面信息呈现给帧缓冲区(例如,帧缓冲区716)。 Graphics server 734 then monitors the surface information and the information is updated when the surface of the surface of the information presented to the frame buffer (e.g., frame buffer 716). 典型地,用户还通过视图对象与应用程序进行交互。 Typically, the user interacts with the application by the view objects. 视图对象包括用户在视图对象上执行动作时由移动OS输入队列736调用的事件监听程序(listener)。 View objects includes an event queue listener calls a user input 736 (listener), when executed by a mobile OS operation on a view object. [0085] 如在OS架构300a中图示的,通过图形服务器734在共享的存储器724中分配表面726、727和/或728。 [0085] As illustrated in the OS architecture 300a by the graphics server 734 in the shared memory 724 in the dispensing surface 726 and 727 and / or 728. 共享的存储器724由共享的内核320管理并且通过在移动0S130和桌面0S160上运行的所有进程可访问。 724 and shared memory accessible by the kernel shared by all 320 management processes running on mobile and desktop 0S130 0S160. 如上所述,共享的存储器724可以是被命名的共享存储器。 As described above, the shared memory 724 may be a named shared memory. 尽管被命名的共享存储器可由在共享的内核320上运行的所有进程访问,但是其它进程不能通过名称来访问被命名的共享存储器的区域。 Although all processes are named shared memory can be run on shared core 320 access, but other processes can not access the area by the name of the named shared memory. 相应地,必须通过进程间通信机制向被命名的共享存储器的区域传送文件描述符以便跨越进程边界向被命名的共享存储器传送参考。 Accordingly, in order to be transferred across process boundaries with reference to a named shared memory interprocess communication mechanism to transfer a file descriptor region named shared memory. 共享的内核320还包括IPC驱动器725,其允许移动0S130和桌面0S160中的进程跨越进程边界与另一个进行通信。 The core 320 further includes a shared IPC driver 725, which allows the process shifts 0S130 and 0S160 desktops across process boundaries is to communicate with another. IPC驱动器725可以是例如Unix域套接字驱动器、AndroidBinder驱动器,和/或网络套接字驱动器。 IPC driver 725 may be, for example, Unix domain socket drive, AndroidBinder drives, and / or network drive socket.

[0086] OS架构配置300a的桌面0S160包括控制台应用程序782和窗口系统774。 [0086] OS desktop 0S160 fabric configuration 300a comprises a console application 782, and window system 774. 编译控制台应用程序782并且在桌面0S160上运行,以及在与桌面0S160相关联的用户交互空间中的控制台窗口内显示。 Compile the console application 782 and run on the desktop 0S160, and displayed in the user interaction with the desktop space 0S160 associated console window. 窗口系统774可以包括窗口管理器、图形服务器、和/或图形设备接口,所述图形设备接口提供用于表示图形对象并且通过桌面OS帧缓冲区718将图形对象传送给显示设备的基础。 Window system 774 may include a window manager, a graphics server, and / or graphics device interface, the graphical device interface for representing graphical objects and to provide a desktop OS frame buffer 718 is transmitted to a graphic object based display device. 例如,窗口系统774可以通过桌面OS帧缓冲区718在桌面0S160的用户交互空间内显示控制台应用程序782。 For example, the system 774 may be a window frame buffer 718 OS desktop display console application 782 in the user's interaction 0S160 desktop space. 窗口系统774还向控制台应用程序782提供来自与控制台应用程序782相关联的桌面0S160的用户环境的输入事件。 782 Window System 774 also provides a console application from the user input events associated with the environment 782 0S160 desktop to the console application. 例如,窗口系统774可以将来自与桌面0S160相关联的用户交互空间的定点设备位置或者手势信息提供给控制台应用程序782。 For example, the window system 774 can be provided to the console application 782 or the gesture with the pointing device position information of the user's desktop interaction space associated 0S160.

[0087] 在图7中,出于易于图示的原因,将包括共享的存储器724、移动OS帧缓冲区716和桌面OS帧缓冲区718的存储块示为位于共享的内核320内。 [0087] In FIG. 7, for reasons of ease of illustration, the shared memory 724 including the mobile frame buffer 716 OS and OS table frame buffer memory block 718 is shown located within a shared core 320. 然而,这些存储块在物理上位于移动计算设备110的有形的存储器存储设备元素内并且由共享的内核320管理。 However, these memory blocks physically located within the mobile computing device tangible memory storage device 110 and an element shared by the cores 320 management. 例如,这些存储块可以位于图2中图示的移动计算设备硬件112的处理器114上的RAM中、和/或存储设备206的RAM中。 For example, these may reside in RAM memory block illustrated in FIG. 2 on the mobile computing device 112 hardware processor 114, and / or as the RAM 206 in the storage device.

[0088] OS架构配置300a为在与第二操作系统相关联的用户交互空间中交叉环境呈现在共享的内核上运行的第一操作系统的应用程序提供了支持,其中第一和第二操作系统在共享的内核上并发地运行。 [0088] OS architecture configured as a cross-300a environment presents an application of the first operating systems to run on a shared kernel provides support in the operating system associated with the second user interaction space, wherein the first and second operating system to run concurrently on shared core. 可以采用OS架构配置300a来提供计算环境中的交叉环境呈现支持,所述计算环境通过多个用户交互空间提供了多种用户计算体验。 OS 300a configured to provide cross-architecture environment of the computing environment rendering support, the computing environment providing a variety of user interaction space by a plurality of user computing experience may be employed. 例如,可以在如图1所图示的计算环境100中使用OS架构配置300a。 For example, OS 300a disposed in the architecture 100 illustrated in FIG. 1, a computing environment.

[0089] 图8图示了根据各个实施例的计算环境800。 [0089] FIG 8 illustrates an embodiment of a computing environment 800 in various embodiments. 计算环境800具有第一用户环境,该第一用户环境包括移动计算设备硬件112的(多个)触摸屏显示器116和其它I/O设备118。 Computing environment 800 having a first user environment, the environment comprises a first user of the mobile computing device hardware 112 (s) 116 and touch screen displays other I / O device 118. 该用户环境表示用户通过其与移动0S130进行交互的第一用户交互空间。 The user environment represents a first user interaction by which the user interacts with the mobile space 0S130. 计算环境800的第二用户环境包括显示监视器844、键盘846,和/或定点设备848。 A second computing environment 800 includes a user environment display monitor 844, a keyboard 846, and / or a pointing device 848. 用户环境840可以通过对接连接器841和对接电缆843连接到移动计算设备110。 User environment 840 may be connected to the mobile computing device 110 through the docking connector 841 and the docking cable 843. 对接连接器841和对接电缆843可以包括通过对接接口122与移动计算设备110的端口120连接的端口,如图1图示的。 Mating connector 841 and the docking port cable 843 may include a port 120 of device 110 is connected with the mobile computing docking interface 122 through, illustrated in FIG 1. 在这一点上,用户环境840向移动计算设备110提供了对接的辅助终端环境。 At this point, user environment 840 provides a docking device auxiliary terminal 110 to the mobile computing environment. 在计算环境800中,桌面0S160可以与对接的辅助终端环境840相关联,使得用户可以通过由辅助终端环境840提供的用户交互空间与桌面0S160进行交互。 In the computing environment 800, the desktop environment 0S160 auxiliary terminal 840 can interface with associated, so that the user can interact with the desktop 0S160 user interaction space provided by the auxiliary terminal 840 environment. 尽管辅助终端环境840被图示为典型的桌面类型的计算环境,但桌面0S160可以通过其它类型的计算环境(包括膝上型、平板,和/或其它类型的计算环境)呈现第二用户交互空间。 Although the auxiliary terminal environment 840 is illustrated as a typical desktop type of computing environment, the desktop 0S160 user may be presented with a second interaction space through other types of computing environments (including laptops, tablets, and / or other types of computing environments) . [0090] 可以在计算环境800内使用OS架构配置300a来提供在第一0S(即,移动OS)上运行并在第二OS的用户环境(即,与桌面0S160相关联的用户环境840)中显示的应用程序的交叉环境呈现。 [0090] 300a may be used to provide a fabric configuration OS within the computing environment 800 running on a first 0S (i.e., mobile OS) and the second OS user environment (i.e., associated with desktop 0S160 user environment 840) of cross-environment applications show presentation. 例如,可以在桌面0S160的用户交互空间880上的控制台窗口882内显示在移动0S130上运行的应用程序754。 For example, in the console window 882 on the user interaction space of 880 desktops 0S160 display applications running on the mobile 0S130 754. 用户交互空间880内的其它窗口(包括窗口884和886)可以是在桌面0S160上运行的其它应用程序的窗口。 Other windows in the user interaction space 880 (including windows 884 and 886) may be a window of other applications running on the desktop 0S160. 对于用户,计算环境800提供了对应用程序754的无缝的计算体验,这是因为可以在桌面0S160的用户交互空间内使用应用程序754,仿佛它正在桌面0S160上运行,尽管事实上应用程序754正在移动0S130上运行。 For the user, the computing environment 800 provides a seamless computing experience for application 754, because 754, if it is running on the desktop 0S160 can use the application in the desktop space 0S160 user interaction, and despite the fact that the application 754 moving on 0S130 run.

[0091] 图8图示了类似于桌面的辅助终端环境840。 [0091] FIG. 8 illustrates a desktop-like auxiliary terminal 840 environment. 在这种情况下,用户可以使用辅助终端环境840的键盘846和鼠标848 (即,主要的基于定点设备的⑶I)通过控制台窗口882与移动OS的应用程序和/或用户交互空间进行交互。 In this case, the user terminal environment 840 may use the auxiliary keyboard 846 and mouse 848 (i.e., primarily based ⑶I pointing device) interact through the console window 882 of the mobile OS applications and / or user interaction space. 然而,移动OS用户交互空间的应用程序和/或镜像的交叉环境呈现可以用于其它辅助终端环境。 However, the application program of the mobile user interaction space OS and / or cross-mirroring environment presents other auxiliary terminal environment may be used. 例如,桌面0S160可以与包括触摸屏显示器的类似于平板计算机的辅助终端环境相关联。 For example, the desktop may be associated with the auxiliary 0S160 terminal environment comprises a touch screen display similar to the tablet computer. 在这种情况下,用户可以以用户典型地与移动0S130的用户交互空间进行交互的非常相同的方式(即,主要基于手势的⑶I)与移动0S130的交叉环境应用程序或者镜像的用户交互空间进行交互。 In this case, the user can interact with much the same way (i.e., based primarily on ⑶I gesture) to a user typically interacts with a user space is moved with the mobile cross 0S130 application or environment image of a user interaction space 0S130 interaction.

[0092] 如上所讨论的,本发明的实施例针对在多个OS计算环境中提供对跨越交叉环境应用程序和/或镜像的用户交互空间的并发的用户界面支持。 [0092] As discussed above, embodiments of the present invention to provide for a cross environment across applications and / or user interface support for concurrent user interaction space in the plurality of mirrored OS computing environment. 在一个示例中,为交叉环境应用程序提供用户界面支持以便使得通过第二OS的用户交互空间对在第一OS上运行的应用程序进行显示并进行交互,其仿佛实质上原生地在第二操作系统上运行。 In one example, an application environment for the cross support providing a user interface to enable user interaction space by the application of the second OS running on the first OS to display and interact with, if it is substantially in the second operating system natively on the run.

[0093] 非扩展的渲染上下文实施例 [0093] The rendering context unextended Example

[0094] 一些实施例处理跨越多个OS的并发的用户界面支持,而不扩展第一操作系统的图形渲染上下文。 [0094] Some embodiments graphical user interface across multiple OS support embodiment of concurrent treatment, the first operating system without expanding the rendering context. 典型地将第一OS (例如,移动OS,Android)配置为定义单个的、活动的用户交互空间。 Typically, the first OS (e.g., a mobile OS, Android) arranged to define a single user interaction space, active. 用户交互空间包括活动的显示器(例如,具有相关联的特征,诸如分辨率)以及允许用户与在活动的显示器上显示的元素进行交互的一个或多个活动的输入设备。 User interaction space comprising a display activity (e.g., with associated features, such as resolution) and the input device allows a user to interact with the one or more active elements displayed on a display event. 相应地,第一OS建立渲染上下文,通过该渲染上下文可以呈现正在运行的应用程序的表面信息以供活动显示器进行显示。 Accordingly, the first OS established rendering context, the surface may present information about an application running through the active display rendering context for display.

[0095] 然而,如上所描述的,在此描述了用于有效地欺骗第一OS来并发地处理多个用户交互空间的新颖技术。 [0095] However, as described above, the novel techniques described herein for the first OS to effectively spoofing handle multiple users concurrently in the interaction space. 此外,这些技术使得多个用户交互空间与多个计算环境上的不同的(例如不兼容的)操作系统相关联。 Furthermore, these techniques such that a plurality of different users interaction space (e.g., incompatible) associated operating system environment and on a plurality of computing. 一些实施例涉及通过交叉环境远程呈现来处理显示器输出的技术。 Some embodiments relate to techniques for processing of the display output by cross presentation remote environment. 其它实施例涉及用于处理那些上下文中的用户交互的技术。 Other embodiments relate to techniques for processing that user interaction context.

[0096] 在交叉环境远程呈现时,在第二OS内呈现在第一OS上运行的并且在与第二OS相关联的计算环境内显示的应用程序的应用程序图形。 [0096] When the cross telepresence environments, presenting the first OS running on the application and the application OS and the second computing environment associated with a second display pattern in the OS. 在一个实施例中,在第二OS上运行的控制台应用程序从共享的存储器中访问应用程序的表面信息并且在与第二OS相关联的计算环境的控制台窗口内呈现该应用程序。 In one embodiment, the console application running on the OS to access the second application surface information from the shared memory and the application presented in the second computing environment associated OS console window.

[0097] 假设日历应用程序和字处理应用程序二者被编译用于移动设备上的第一OS(例如,移动0S130)并且并发地运行在移动设备上的第一OS上。 [0097] both a calendar application and a word processing application on a first hypothesis is compiled for the first OS OS (e.g., a mobile 0S130) on the mobile device and concurrently running on the mobile device. 第二OS (例如非移动OS,如桌面0S160)使用共享的内核正在移动设备上并发地运行。 A second OS (e.g. non-mobile OS, such as a desktop 0S160) using a shared kernel running concurrently on a mobile device. 用户已经将移动设备与第二计算环境(桌面计算环境)进行对接,并且想要通过桌面计算环境与字处理应用程序进行交互。 The user has a mobile device and the second computing environment (desktop computing environment) for docking and want to interact with the computing environment through a desktop word processing application. 期望以对于用户而言透明的方式使用移动计算环境(例如,移动设备)的第二OS来处理桌面计算环境的用户交互空间。 Desirable for the user to transparently handle user interaction to desktop computing environment space using a mobile computing environment (e.g., mobile device) a second OS.

[0098] 图9图示了根据各个实施例的交叉环境远程呈现的方面。 [0098] FIG 9 illustrates a cross aspect of various embodiments of a remote environment presented. 在图9图示了应用程序呈现图示900中,第一应用程序910 (例如,日历应用程序)计算第一OS内的第一表面912的更新。 9 illustrates the application presents 900 illustrated, the first application program 910 (e.g., a calendar application) calculates an updated first inner surface of the first OS 912. 第一操作系统将第一表面912存储在共享的存储空间中的第一存储位置。 The first operating system a first surface 912 of the first storage location is stored in the shared memory space. 例如,第一存储位置可以是被命名的共享存储器的一区域。 For example, a first storage location may be a region named shared memory. 第一应用程序910更新第一表面912的后缓冲区914。 The first application 910 updates the buffer 912 after the first surface 914. 类似地,第二应用程序930 (例如,字处理应用程序)使用第一OS计算第二表面932的更新。 Similarly, the second application program 930 (e.g., word processing application) using the first surface 932 of the second OS update calculation. 通过第一OS将第二表面932存储在共享存储空间的第二存储位置中(例如,被命名的共享存储器的第二区域)。 The first surface of the second OS 932 stored in the shared memory of the second storage location (e.g., the second region are named shared memory).

[0099] 第一OS确定何时要发起呈现序列。 [0099] The first OS to determine when to initiate the presentation sequence. 例如,第一OS可以在表面912和/或932的表面信息已经改变时发起呈现序列。 For example, the first OS may initiate presentation sequence information surface on the surface 912 and / or 932 has changed. 第一OS可以对包括第一表面912和第二表面932的所有表面执行单循环,确定与特定应用程序相关联的表面信息是否已经改变。 The first OS may perform a single cycle of all surface comprises a first surface 912 and second surface 932, the surface is determined whether information associated with a particular application has been changed. 在呈现序列中,如果表面912的表面信息已改变,第一OS互换前缓冲区916和后缓冲区914,使得在后缓冲区914中的表面信息现在在前缓冲区916中。 In the presentation sequence, the surface of the surface 912 if the information has changed, the first OS 916 and the front buffer exchange the buffer 914, so that the surface information in the buffer 914 the buffer 916 is now in the front. 第一操作系统将第一表面912呈现到第三存储位置920,以便创建要在与第一OS相关联的第一用户交互空间内显示的最终图像918。 The first operating system 912 exhibits a first surface 920 to the third storage location, in order to create the final image to be displayed to the first user in the first interaction space OS associated 918.

[0100] 如果第二表面932的表面信息已经改变,则第一OS向第二OS通知第二表面932的表面信息已经改变。 [0100] If the surface information of the second surface 932 has been changed, the OS notifies the first surface toward a second surface of the second OS 932 of the information has changed. 具体地,第一OS通过进程间通信信道向第二OS的控制台应用程序发送绘制通知以指示表面932已经被更新。 Specifically, the first OS transmits a notification indicating drawing surface 932 has been updated through the interprocess communication channel to the console application of the second OS. 该绘制通知可以包括前图像936的文件描述符,和/或前图像936的共享的存储器空间的其它特征(包括缓冲区大小、层顺序等等)。 The notification may include a front image drawing file descriptor 936, and / or other characteristics of the image before the shared memory space 936 (including the buffer size, sequence of layers, etc.). 控制台应用程序将文件描述符映射到其处理空间以获得对第二存储位置的参考。 Console application that processes the file descriptor is mapped to the space to obtain a reference to a second storage location. 通过对第二存储位置的参考,第二OS的控制台应用程序从前图像缓冲区936中直接读取表面信息并且在与第二OS相关联的第二用户交互空间内的控制台窗口940中呈现第二表面932的前图像936的表面信息。 By reference to the second storage location, the second OS from the front of the console application 936 buffers the image information reading surface directly and are presented in the inner space of the second OS second user interaction associated console window 940 image of the second surface 932 of the front surface 936 of the information. 以此方式,控制台应用程序可以实时地在控制台窗口940中呈现第二应用程序930而无须跨越进程拷贝图形帧或者表面信息。 In this way, real-time console application can present a second application in a console window 940 930 copies across processes without graphics frame or surface information. 取而代之,使用通过进程间通信传送的文件描述符,控制台应用程序通过将第二表面932的共享存储器映射到其自身的处理空间而直接读取表面信息。 Instead, using the information reading surface directly through the file descriptor, the console application interprocess communication transmitted by mapping a second surface 932 of the shared memory to its own process space.

[0101] 图10示出了根据各个实施例的、在非扩展渲染上下文中进行交叉环境远程呈现的例示性方法的流程图1000。 [0101] FIG. 10 shows a flowchart illustrating an exemplary method embodiment in a non-scalable rendering context cross telepresence environments of various embodiments 1000. 实施例保持第一应用程序(例如,日历应用程序)和第二应用程序(例如,字处理应用程序)的应用程序图形的显示,二者被编译用于第一操作系统并处于第一操作系统的活动的并发执行中。 Example application pattern holding a first application (e.g., a calendar application) and a second application (e.g., word processing application) to display, for both the first operating system is compiled in a first operating system and concurrent execution of activities.

[0102] 方法1000在块1004开始,使用第一操作系统计算对第一应用程序的表面的更新。 [0102] Method 1000 begins at block 1004, the operating system is calculated using the first surface of the first update of the application. 计算对表面的更新可能涉及使用应用程序数据来确定哪些表面已经改变并且以何种方式改变。 Computing an update may involve the use of surface data to determine which application surface has changed and in what way change. 例如,用户交互可能已经使得一些表面改变位置、顺序(例如,一个层可能部分地在另一个层的前面,被另一个层完全隐藏,等等)、大小、颜色、纹理,等等。 For example, the user interaction may have changed positions so that some of the surface, sequence (e.g., a layer which may partially in front of another layer, the other layer is completely hidden, and the like), size, color, texture, and the like.

[0103] 在块1008,使用第一操作系统呈现第一应用程序的这些更新的表面以在第一存储位置生成第一图形帧。 [0103] At block 1008, using the first OS update these surfaces present a first application to generate a first graphics frames in the first storage location. 例如,第一OS的呈现引擎预先建立与显示器相关联的渲染上下文。 For example, a first pre-established OS rendering engine rendering a display associated with the context. 然后可以通过更新的表面信息进行迭代来呈现图形帧以便根据与渲染上下文相关联的显示器的特征(例如,分辨率)来有效地绘制来自第一应用程序的表面的可见部分的全部或者部分图像。 To render graphics frames may then iterate through the surface in accordance with the updated information to all of the rendering context associated display characteristics (e.g., resolution) to effectively drawn from the surface of the first application or a portion of the visible portion of the image. 将该图形帧呈现给第一存储位置。 The presentation graphics frame memory to the first position. 存储位置可以是帧缓冲存储器、共享存储器,或者任何其它有用的存储器位置。 Storage location may be a frame buffer memory, shared memory, or any other useful memory location. [0104] 在一些实施例中,在块1012,向与第一操作系统相关联的第一计算环境的显示器显示来自第一存储位置的呈现的第一图形帧。 [0104] In some embodiments, at block 1012, the display frame from the first pattern exhibits a first memory location to a first display and a first operating system of a computing environment associated. 例如,将第一图形帧呈现给移动设备的帧缓冲区的后缓冲区部分。 For example, the first presentation graphics frame buffer to the rear portion of the frame buffer of the mobile device. 结果,帧缓冲区翻转(即,后缓冲区部分变成前缓冲区部分)并且将帧缓冲区的现在的前缓冲区部分显示给移动设备的显示器。 As a result, the frame buffer flip (i.e., after the buffer becomes part of the front portion of the buffer) is now displayed and the front portion of the frame buffer to the display buffer of the mobile device.

[0105] 在块1016,使用第一操作系统计算对第二应用程序的表面的更新。 [0105] At block 1016, the operating system is calculated using the first update to the surface of the second application. 这可能与用于第一应用程序的表面的块1004的计算基本上相同地进行。 This may be substantially the same manner as for the calculation of the surface of the first application block 1004. 然而,与第一应用程序的更新的表面数据不同,不通过第一OS来呈现第二应用程序的更新的表面信息。 However, the data of the first surface of the updated application different, not to render the surface of the second application information updated by the first OS. 相反,在块1020,在第二存储位置存储第二应用程序的更新的表面。 Instead, at block 1020, the updated storage position of the second surface of the second application program. 该第二存储位置是可由在移动设备的共享内核上并发地运行的第一和第二OS 二者访问的共享的存储位置。 The second storage location is a first OS and a second shared memory location can be accessed both concurrently on the mobile device share a core operation.

[0106] 在块1024,使用第二操作系统的控制台应用程序来呈现第二应用程序的更新的表面以便在第三存储位置生成第二图形帧。 The surface renewal [0106] At block 1024, a console application that uses a second operating system to present the second application pattern to generate a second frame in the third storage location. 例如,图7的控制台应用程序782可以将应用程序754的更新的表面呈现到(例如与第二计算环境的显示器相关联的)第二OS的帧缓冲存储器中。 For example, FIG. 7 is a console application surface 782 may be updated application 754 is rendered to the frame buffer memory of the second OS (e.g., a second computing environment associated with a display) of. 在一些实施例中,在块1028,向与第二操作系统相关联的第二计算环境的显示器显示来自第三存储位置的第二图形帧。 In some embodiments, at block 1028, a second display pattern from the third frame memory to the display position of the second operating system and a second computing environment associated. 例如,桌面计算环境显示器的显示驱动器访问帧缓冲存储器以便访问和显示第二图形帧。 For example, desktop computing environment display drive access display in order to access the frame buffer memory and a second display graphics frames. 在某些实现方式中,控制台应用程序还保持控制台交互空间,并且将第二图形帧呈现到控制台交互空间。 In some implementations, the console application also maintains console interaction space, and the second will be presented to the console interactive graphics frame space. 例如,控制台应用程序在桌面显示器上呈现一个或多个窗口,并且在这些窗口之一上显示第二应用程序的图形。 For example, the console application presents one or more windows on a desktop monitor, and displaying a graphic on the second application in one of these windows.

[0107] 在一些实施例中,方法1000在各块上迭代以便为两个应用程序并发地保持图形环境。 [0107] In some embodiments, the method 1000 iterates each block so as to maintain the graphical environment for two applications concurrently. 例如,移动OS计算对第一应用程序的图形的更新并且向移动帧缓冲存储器呈现这些更新;然后移动OS计算对第二应用程序的图形的更新并且将这些更新存储到共享的存储器中,桌面OS的控制台应用程序从共享的存储器中将这些更新呈现到桌面帧缓冲存储器;然后方法1000对于下一组更新进行重复。 For example, a mobile computing OS graphics update the first application and presenting them to the mobile updates the frame buffer memory; OS mobile computing and graphics update the second application and these updates stored in the shared memory, the desktop OS console application from the shared memory will be rendered to the desktop updates the frame buffer memory; method 1000 then repeated for the next set of updates. 特别地,一些实现方式不按顺序和/或并行地执行某些步骤。 In particular, some implementations of the order and / or parallel to perform certain steps. 例如,可能基本上同时计算对第一和第二应用程序的表面的更新(即,基本上并行地执行块1004和1016),尽管仅仅将本地呈现这些更新的表面的一部分(例如在块1008)并且将为远程呈现存储这些更新的表面的其它部分(例如在块1020和1024)。 For example, calculation may be updated substantially simultaneously to the first surface and the second application program (i.e., substantially parallel execution block 1004 and 1016), although only the local portion of these updates presented surfaces (e.g. at block 1008) and will present the updated remote surface of the storage of these other moieties (e.g. at block 1020 and 1024).

[0108] 在一个实施例中,Android移动OS和全Linux OS (例如,Hydroid)正在移动设备的共享内核上并发地运行。 [0108] In one embodiment, Android OS and the whole movement the Linux OS (e.g., Hydroid) is running concurrently on a mobile device share cores. 当从Hydroid 0S660启动Android应用程序时,在Hydroid0S660上启动控制台应用程序并且请求Android 0S430启动Android应用程序并向控制台应用程序发送An droid应用程序的绘制通知。 When starting the application from Android Hydroid 0S660, start the console application on request and Android 0S430 Hydroid0S660 Android application to start console application sends notification An droid rendering application. Android 0S430启动Android应用程序,将应用程序与虚拟显示器ID相关联并且注册控制台应用程序以便接收对该应用程序的绘制通知。 Android 0S430 Android application starts, the application ID associated with the virtual display console applications and registered to receive notification of the application of the drawing. 例如,Android图形服务器(即,SurfaceFlinger)可以分配未使用的虚拟显示器ID并且通过应用程序对象列表将应用程序与虚拟显示器ID相关联。 For example, Android graphics server (i.e., SurfaceFlinger) may be assigned a virtual display ID is not used by the application and the application list of objects associated with the virtual display ID. SurfaceFlinger在共享存储器中分配用于Android应用程序的表面信息的存储器,并且注册控制台应用程序以便接收对该Android应用程序的绘制通知。 SurfaceFlinger in the shared memory allocated for storage of information Android application surface, and a console application registered to receive notification of the drawing Android application.

[0109] 当SurfaceFlinger确定表面信息被更新时,SurfaceFlinger通过进程间通信信道向控制台应用程序发送绘制通知。 [0109] When determining the surface SurfaceFlinger information is updated, SurfaceFlinger send notification to the console application drawn through interprocess communications channel. 例如,SurfaceFlinger可以通过unix域套接字、Binder接口、和/或网络套接字向控制台应用程序发送绘制通知。 For example, unix-domain sockets by SurfaceFlinger, Binder interfaces, and / or network sockets to send notifications drawing console application. 绘制通知包括表面信息的文件描述符。 Surface rendering information notification includes file descriptor. 该文件描述符可以通过SurfaceFlinger基于表面的被命名的共享存储器区域的名称空间(namespace)生成。 The file descriptor can be generated based on the surface area is named shared memory space name (namespace) by SurfaceFlinger. 绘制通知还可以包括数据格式、缓冲区大小、和表面位置信息。 The notification may further include rendering data format, buffer size, and surface position information. 控制台应用程序将文件描述符映射到其处理空间并且通过被映射的文件描述符从共享的存储位置进行读取。 Console application will process its file descriptor is mapped to the space and read from the shared storage location is mapped by the file descriptor. 控制台应用程序然后直接根据表面信息呈现应用程序的图形中贞。 Console application and then directly render graphics in applications according to Chen surface information. 然后通过桌面OS图形系统(即,通过Hydroid 0S600的X-windows图形系统)显示所呈现的图形帧。 Then the desktop system OS graphics (i.e., by Hydroid X-windows graphics system of 0S600) displaying a graphical presentation frame.

[0110] 图11更详细地图示了根据各个实施例的交叉环境远程呈现的注册和绘制处理流程1100。 [0110] FIG. 11 illustrates a flow of a registration process and rendering environment remote cross various embodiments presented 1100 in more detail. 初始地,在Hydroid 0S600上运行的控制台应用程序1102在步骤1106通过共享内核520的IPC信道525请求在Hydroid 0S600的用户环境中开始并且显示Android应用程序,或者从Android 0S430的用户环境转移到Hydroid 0S600的用户环境。 Initially, the console application running on Hydroid 0S600 1102 1106 525 requests an IPC channel shared core 520 by starting and an Android application Hydroid user environment 0S600 in step, or is transferred from the user's environment Android 0S430 to Hydroid 0S600 user environment. Android在步骤1108、1110和1112从SurfaceFlinger434请求应用程序的虚拟显示器ID,开始应用程序,并且为虚拟显示器设置参数。 Android virtual display at step 1108, ID 1112 and a request from the application SurfaceFlinger434, start the application, and set the parameters for a virtual display. 在步骤1114,Android通过IPC信道525向控制台应用程序返回显示器ID。 In step 1114, Android 525 returns the display ID to the console application through an IPC channel. 在步骤1116,应用程序请求新表面,SurfaceFlinger在步骤1118通过创建表面类1104的实例而创建该新表面。 In step 1116, the application requests a new surface, the SurfaceFlinger create a new surface created by surface class instance in step 1118 1104.

[0111] 控制台应用程序1102在步骤1120对渲染器(renderer)对象进行实例化,这通过Hydroid 0S600的X_window系统呈现Android表面信息。 [0111] console application 1102 instantiated in step 1120 pairs renderer (the renderer) object, which presents information Hydroid X_window Android surface of 0S600 system. 在步骤1122,控制台应用程序1102向SurfaceFlinger434注册渲染器对象1124的可远程访问的(remotable)接口以便接收Android应用程序的表面信息的绘制通知。 An interface to receive notification of an Android application surface rendering information in a step 1122, the console application 1102 to register SurfaceFlinger434 renderer object 1124 may be remotely accessible (remotable). 在一个实施例中,渲染器对象的可远程访问的接口包括可以通过IPC信道525调用的draw O和clear()方法。 In one embodiment, the renderer object remote access interface includes a channel 525 through IPC calls draw O and clear () method. 在步骤1126和1128,SurfaceFlinger将IPC对象附接到表面,使得在表面信息已经被更新时将通过可远程访问的接口向控制台应用程序1102进行通知。 In step 1126 and 1128, SurfaceFlinger the IPC objects attached to a surface, so that the interface will be notified by the console application 1102 remotely accessible when the surface information has been updated.

[0112] 步骤1130和1132是处理流程1100的呈现循环的一部分。 [0112] Step 1130 and 1132 are part of a process flow presentation 1100 cycles. 在呈现循环中,SurfaceFlinger向控制台应用程序1102通知表面信息被更新并且通过IPC信道525将文件描述符传送给表面信息。 In the present cycle, SurfaceFlinger console application 1102 notifies the surface of the information is updated and transmitted to the surface through an IPC channel information 525 file descriptors. 例如,可以调用控制台应用程序渲染器的绘制方法并且将文件描述符传送给表面。 For example, a method can be called to draw the console application renderers and transmits the file descriptor to the surface. 控制台应用程序1102将文件描述符映射到其处理空间,并且访问所参考的共享存储位置以便读取表面信息并呈现要在与Hydroid 0S600相关联的第二计算环境的显示器上显示的图形帧。 Console application 1102 to its treatment space mapped to the file descriptor, and access to a shared memory location referenced surface to read information and presentation graphics frames to be displayed on the second computing environment associated with a display Hydroid 0S600.

[0113] 图12示出了根据各个实施例的、在非扩展渲染上下文中进行交叉环境呈现的另一例示性方法的流程图1200。 [0113] FIG. 12 shows an embodiment of the various embodiments, the non-scalable rendering in the context of a flowchart 1200 of another exemplary method of cross-presentation environment. 如同图10的方法1000,实施例保持第一应用程序和第二应用程序的应用程序图形的显示,第一应用程序和第二应用程序二者被编译用于第一操作系统并处于第一操作系统的活动的并发执行中。 As the method 1000 of FIG. 10, the application pattern of the first embodiment to maintain application and the second application example of display, both the first application and the second application is compiled for the first operating system and a first operating concurrent execution of activities in the system.

[0114] 方法1200在块1204开始,建立第一操作系统的第一渲染上下文。 [0114] Method 1200 begins at block 1204, a first rendering context to establish a first operating system. 渲染上下文可以对于与之相关联的显示器是唯一的。 Rendering context may be unique to the display associated therewith. 例如,移动OS的实现方式可以与具有某个分辨率的移动设备显示器相关联。 For example, the mobile implementation of the OS can be associated with a mobile device having a display resolution. 可以建立渲染上下文来与相关联的显示器的分辨率匹配,使得将针对该分辨率而合适地呈现图形。 Rendering context may be established to match the resolution of the display associated with that pattern will suitably be presented for that resolution. 在块1208,方法1200使用第一操作系统计算对第一应用程序的表面的更新。 At block 1208, the method 1200 updates calculated using the first application to the surface of the first operating system. 如上讨论的,计算对表面的更新可能涉及使用应用程序数据来确定哪些表面已经改变并且以何种方式改变。 Computing an update may involve the use of surface data to determine which application surface has changed and varied in ways as discussed above.

[0115] 然后,在块1212使用第一操作系统呈现第一应用程序的更新后的表面,以在第一存储位置生成第一图形帧。 [0115] Then, at block 1212 using the first OS update presentation surface after a first application to generate a first graphics frames in the first storage location. 呈现典型地涉及将图形原语(primitive)转换为形成用于显示的图形帧的比特(例如,位图)。 Typically it involves rendering graphics primitives (primitive) is converted to form a bit pattern for frame display (e.g., bitmaps). 例如,表面信息在数学上定义每个表面的属性,包括形状、大小、颜色、分层顺序(其在哪些其它表面的前面或后面)、透明度等等。 For example, the surface attribute information defining each surface mathematically, including shape, size, color, hierarchical order (which in which the front or rear surface of the other), transparency and the like. OS的呈现引擎可以解释表面数据以便按照呈现所有表面信息的函数而确定在渲染上下文中的每个位置(例如“X,Y”位置)处显示什么比特(例如使用迭代合成、射线追踪,和/或其它技术)。 OS rendering engine can interpret surface data in order to determine the context for each location in the rendered as a function of presenting all information at the surface (e.g., "X, Y" position) showing what bits (e.g., using an iterative synthesis, ray tracing, and / or other techniques). 使用第一渲染上下文可以将第一应用程序的更新的表面呈现为位图以存储到第一存储器位置(例如,帧缓冲存储器、共享存储器,或者其它任何有用的存储位置)中。 Surface using a first rendering context updated first application may be presented as a bitmap stored in the first memory location (e.g., frame buffer memory, shared memory, or any other useful storage location).

[0116] 在一些实施例中,在块1216,向与第一操作系统相关联的第一计算环境的显示器显示来自第一存储位置的第一图形帧。 [0116] In some embodiments, at block 1216, a first graphical display frame from a first memory location to a first display and a first operating system of a computing environment associated. 例如,移动设备显示器的显示驱动器访问相关联的帧缓冲存储器以便显示在第一渲染上下文中生成的位图。 For example, the mobile device display associated with the display driver to access frame buffer memory for display generated in the first bitmap rendering context. 在块1220,拆解(disestablish)(例如,“拆卸”)第一渲染上下文。 At block 1220, dismantling (disestablish) (e.g., "Removal") first rendering context.

[0117] 在块1224,建立第一操作系统的第二渲染上下文。 [0117] At block 1224, the first operating system to establish a second rendering context. 在一些实现方式中,第二渲染上下文与第一渲染上下文相同。 In some implementations, the first and second rendering context same rendering context. 然而,还可以根据第二计算环境的显示器(例如桌面显示器)的特征建立第二渲染上下文。 However, it can also create a second rendering context according to a second computing environment display characteristic (e.g., a desktop display). 在块1228使用第一操作系统计算对第二应用程序的表面的更新。 At block 1228 is calculated using the first OS update to the surface of the second application program. 然后,在块1232,在第一操作系统的第二渲染上下文中呈现这些更新以便在第二存储器位置生成第二图形帧。 Then, at block 1232, the updated rendering to generate a second pattern in the second frame memory rendering context in the second position of the first operating system. 特别地,该第二存储位置是可由正在移动设备的共享内核上并发地运行的第一和第二操作系统二者访问的共享的存储位置。 In particular, the second storage location is a storage location shared by both the first and second operating systems to share access to the core by the mobile device is running concurrently.

[0118] 在一些实施例中,在块1236,向与第二操作系统相关联的第二计算环境的显示器显示来自第二存储位置的第二图形帧。 [0118] In some embodiments, at block 1236, a second display pattern from the second frame memory to the display position and the second operating system of the second computing environment associated. 值得注意的,与图10中不同,使用第一OS的呈现引擎来呈现两个应用程序的更新后的图形帧。 Notably, different from those in FIG. 10, using the first OS graphics rendering engine to render the two frames to update the application. 例如,第二OS的控制台应用程序可以访问第二共享存储位置以便直接取得所呈现的位图以供第二计算环境的显示器显示。 For example, the second OS console application can access the shared memory location to a second bitmap obtained directly presented for display to display a second computing environment. 在块1240,拆解第二渲染上下文。 At block 1240, a second rendering context dismantling.

[0119] 在一些实施例中,方法1200在块上迭代以并发地保持两个应用程序的图形环境。 [0119] In some embodiments, an iterative method 1200 to hold the two graphical environment applications concurrently on the block. 例如,移动OS迭代性地建立、使用并且拆卸第一应用程序的渲染上下文;然后,建立、使用并且拆卸第二应用程序的渲染上下文。 For example, the OS established iteratively moved, and using a first rendering context demolition applications; then established, and using a second rendering context demolition applications. 使用这种技术,可以由一个os(即,通过第一OS的呈现引擎)执行所有呈现,并且不需要提供或者使用另一OS的呈现功能。 Using this technique, an OS may be made (i.e., by presenting the first OS engine) perform all presentation, and no need to provide or use another rendering function of the OS. 然而,该技术涉及与重复地建立并且拆卸渲染上下文相关联的附加开销。 However, this technique involves disassembling and repeatedly established and rendering context associated overhead.

[0120] 交叉环境呈现的以上实施例描述了使用非扩展的渲染上下文可以在多OS计算环境中的第二OS的用户交互空间的控制台窗口内怎样显示在第一OS上运行的应用程序的图形帧。 [0120] Cross environment presented above embodiment describes how to display the application running on the first OS in the console window interaction space user computing environment may be the second OS in a non-expanded multi-OS rendering context graphics frame. 为了支持与这种交叉环境应用程序的用户交互,实施例以交叉环境应用程序接收输入事件的方式将来自第二OS的用户交互空间的输入事件重定向到第一OS,使得仿佛其来自第一OS的用户交互空间(即,应用程序通过相同的事件句柄(handler)和/或视图接收输入事件,通过事件句柄(handler)和/或视图其将接收如被显示在第一OS的用户交互空间内的用户输入)。 In order to support user interaction with such cross-application environment, input events received manner to Example Cross embodiment will be application environments user input events from the interaction space is redirected to the second OS first OS, so if it is from a first OS user interaction space (i.e., the application receives an input event by the same event handler (handler) and / or a view, through the event handler (handler) and / or that the received view is displayed as a user interaction space of the first OS, the user input).

[0121 ] 参照返回图7和图8,配置桌面0S160以便通过适合于桌面计算体验的辅助终端环境840来提供第二用户交互空间。 [0121] Referring back to FIG. 7 and FIG. 8, 0S160 to configure the desktop computing environment auxiliary terminal 840 by the desktop experience adapted to provide a second user interaction space. 如上所述,使用上述的交叉环境呈现的实施例,可以在移动0S130的用户交互空间内显示应用程序752,同时通过在桌面0S160上运行的控制台应用程序782在第二用户交互空间的控制台窗口882中显示在移动0S130上运行的应用程序754。 As described above, using the above-described embodiment presented intersecting environment, application 752 may be displayed in the user's interaction space 0S130 movement, while the console application running on a desktop console 0S160 782 in the second user interaction space window 882 displays the application running on the mobile 0S130 754. 特别地,应用程序752和754可以是为移动0S130编译的、在移动OS运行时环境内运行并通过移动OS框架接收输入事件的任何应用程序,而没有针对显示或者远程交互(不在移动0S130的用户交互空间上)的修改。 In particular, the applications 752 and 754 may be a mobile 0S130 compiled, run within the environment in the mobile OS running and receive any application input events via mobile OS framework, and not (not moving 0S130 user for display or remote interaction ) changes the interaction space.

[0122] 图13图示了根据各个实施例的向交叉环境应用程序提供用户交互支持的OS架构配置300b。 [0122] FIG. 13 illustrates a user interaction to provide support to the cross-environment in accordance with various embodiments of the application OS fabric configuration 300b. 在OS架构配置300b中,共享内核320中的设备驱动器实现组成辅助终端环境840的I/O设备844、846和/或848的硬件接口。 In OS fabric configuration 300b, the shared drive device 320 to achieve the kernel composition auxiliary terminal environment 840 I / O devices 844, 846 and / or 848 of the hardware interface. 通过设备驱动器,这些设备的输入事件出现在共享内核320的I/O设备1360的设备1364、1366、和/或1368中。 Via the device driver, these devices appear in the input events 1364,1366 and / or 1368 of the device 320 shared core I / O device 1360. 因为共享内核320的系统资源对移动0S130和桌面0S160 二者可用,移动OS确定输入设备1364、1366、和/或1368上的输入事件是否旨在用于移动0S130。 Because the shared system resources for both the core 320 mobile and desktop 0S160 0S130 is available, the mobile OS to determine the input device 1364,1366, and / or input events on the 1368 whether intended for mobile 0S130. 当桌面0S160被配置为提供第二用户交互空间(B卩,移动计算设备110被对接到辅助终端环境840)时,移动0S130忽略来自与第二用户交互空间相关联的输入设备的输入事件。 When the desktop 0S160 is configured to provide a second user interaction space (B Jie, the auxiliary device 110 is connected to a terminal of a mobile computing environment 840), the mobile 0S130 ignores the input event from the second user interaction with an input device associated with the space. 在OS架构配置300b中,移动0S130忽略来自设备1364、1366、和/或1368的输入事件。 In OS architecture configuration 300b, the mobile 0S130 ignore 1364,1366, and / or input device event from 1368. 在这种情况下,桌面0S160接受来自设备1364、1366、和/或1368的输入事件。 In this case, the desktop 0S160 accept input events from devices 1364,1366 and / or 1368.

[0123] 桌面0S160处理来自设备1364、1366、和/或1368的输入事件并且确定在桌面0S160内怎样将事件分发到各种窗口或者⑶I元素。 [0123] Desktop from 0S160 processing apparatus 1364,1366, input events and / or 1368 and determine how to distribute the events to the various elements in a window within the desktop or ⑶I 0S160. 例如,桌面0S160的窗口系统774可以接受来自设备1364、1366、和/或1368的输入事件。 For example, the system 0S160 desktop window 774 can accept, and / or events from input devices 1364,1366 1368. 在一个实施例中,桌面0S160的图形系统是X-windows图形系统。 In one embodiment, the desktop graphics system 0S160 X-windows graphics system.

[0124] 在一个实例中,用户在控制台应用程序782的控制台窗口882内的屏幕位置处点击定点设备的按钮。 [0124] In one example, the location of the user within the screen console application 882 782 a console window click the button of the pointing device. 对应的输入事件出现在设备1368中并且桌面0S160接收并且处理输入事件。 Corresponding to the input event occurs in the device and the desktop 0S160 1368 receives and processes the input event. 窗口系统774将输入事件指向到控制台应用程序782,通过控制台应用程序782,使用交叉环境呈现的实施例来显示在移动0S130上运行的应用程序754。 Window system 774 directed to the input event console application 782 to display the application running on the mobile 0S130 754 by console application 782, embodiments of the use of cross-presentation environment. 如上所述,应用程序754是移动应用程序并且使用移动0S130的库来将视图和其它事件句柄实例化,所述移动0S130的库接收来自移动0S130的输入队列736的输入以便接受用户输入。 As described above, the application 754 is a mobile application and mobile 0S130 libraries to the view of other examples of event handlers, the receiving mobile library 0S130 0S130 the input queue 736 moves so as to accept from a user input. 为了以应用程序754将合适地解释输入事件的方式而将输入事件呈现给应用程序754,控制台应用程序782将输入事件映射到移动0S130的图形上下文并且通过虚拟输入设备1370将事件传送给移动OS 130的输入队列736。 In order to apply the program 754 will properly interpreted input events and input events will be presented to the application program 754, a console application 782 maps the input events to the graphics moving 0S130 context and events to mobile OS through the virtual input device 1370 130 input queue 736. 虚拟输入设备1370对于移动OS 130表现为具有用于移动0S130的合适的输入事件协议的输入设备。 1370 virtual input device for the mobile OS 130 appears to have an appropriate input device for input events of the agreement mobile 0S130. 另外,控制台应用程序782将输入事件相对于移动0S130的图形上下文进行格式化。 Further, the console application 782 to move relative to the input event 0S130 graphics context format. 移动0S130将虚拟输入设备1370与应用程序754相关联使得应用程序754从移动OS事件队列中接收输入事件。 0S130 mobile virtual input device 1370 associated with the application 754 such that application 754 receives input events from the mobile OS event queue. 例如,移动0S130可以将虚拟输入设备1370与应用程序754的虚拟显示器ID相关联。 For example, the virtual device may be a mobile 0S130 1370 virtual display and application ID 754 is associated input. 以此方式,应用程序754接收并且处理输入事件,就仿佛通过移动0S130的用户交互空间来显示应用程序754并且与之交互。 In this way, the application 754 receives and processes the input event, as if to display and interact with application 754 by moving 0S130 user interaction space.

[0125] 图14图示了根据各个实施例的、使用非扩展的图形上下文呈现的交叉环境应用程序的用户交互支持的方面。 [0125] FIG. 14 illustrates an aspect of various embodiments, user interaction crossing support application environments non-extended graphics context presented. 当从连接到移动计算设备Iio的输入设备(例如,键盘846、定点设备848)接收输入事件时,方法1400在块1402开始。 When (e.g., a keyboard 846, pointing device 848) calculates the input device receives an input event from a device connected to the mobile Iio, method 1400 begins at block 1402. 如上所述,输入事件可以出现在共享内核的输入设备中。 As mentioned above, the input event may appear in the input devices sharing the kernel. 在块1404,移动OS确定移动计算设备110是否对接并且桌面OS是否与输入设备相关联。 At block 1404, the mobile OS determines whether the mobile computing device 110 and whether docked OS table associated with the input device. 例如,如果移动计算设备110没有与辅助终端环境对接并且桌面OS被挂起(suspend),则移动OS可以确定桌面OS没有与输入设备相关联。 For example, if the mobile computing device 110 is not docked with the auxiliary terminal environment and the desktop OS are suspended (Suspend), the mobile OS OS may determine that the desktop is not associated with the input device. 如果桌面OS被挂起或者输入设备不是与桌面OS相关联的辅助终端环境的一部分,则在块1406移动OS接受来自输入设备的输入命令。 If the desktop is suspended or OS environment terminal portion of the auxiliary device is not associated with desktop OS input, at block 1406 the mobile OS accepts input commands from the input device.

[0126] 如果桌面OS没有被挂起并且输入设备是与桌面OS相关联的辅助终端环境的一部分,则移动OS忽略输入设备上的输入事件并且桌面OS在块1408接受输入事件。 [0126] If the desktop is not suspended and the OS input device is a part of the auxiliary terminal OS desktop environment associated with the input event on the OS of the mobile device ignores the input and the desktop OS accepts input event at block 1408. 在块1410,桌面OS将输入事件分发到桌面OS内的合适的窗口或者GUI元素。 At block 1410, the desktop OS will distribute input events to the appropriate window in the desktop OS or GUI elements. 如果输入事件没有被指向到控制台窗口,则在块1412该输入事件被指向到另一窗口或者GUI元素。 If the input event is not directed to the console window then the input event at block 1412 is directed to a window or other GUI elements. 如果输入事件被指向到控制台窗口(例如,用户点击控制台窗口区域内的定点设备),则在块1414该输入事件被传送给控制台应用程序作为一输入事件。 If the input event is directed to the console window (e.g., the user clicks the pointing device in the console window region), the input event at block 1414 is transmitted to the console application as an input event.

[0127] 在块1416,为来自控制台应用程序的输入事件生成虚拟的输入设备。 [0127] At block 1416, the virtual input device is generating an input event from a console application. 可以在共享内核中生成虚拟的输入设备或者可以将输入事件直接写入到移动OS输入设备。 Generating a virtual input device may be shared or may be the kernel directly writes the input event input apparatus to the mobile OS. 在块1418,控制台应用程序将输入事件映射到移动OS的图形上下文。 At block 1418, the console application input events are mapped to the graphics context of the mobile OS. 例如,控制台应用程序可以将输入事件在控制台应用程序的控制台窗口中的位置映射到移动OS的图形上下文内的位置。 For example, a console application may be entered at the location of the event console window console application mapped to the position in the graphics context of the mobile OS. 控制台应用程序可以针对移动OS的输入格式或者输入模式状态对输入事件进行转译。 Console application can be translated to an input event for the input format or input mode status of the mobile OS. 例如,输入格式可以在桌面OS和移动OS之间不同。 For example, the input format may be different between the desktop and mobile OS OS. 即使具有公共的输入格式,桌面OS和移动OS可以具有不同的输入模式状态。 Even with a common input format, mobile OS and OS table may have different input mode state. 例如,桌面OS可以使用非触摸模式输入状态处理输入事件,而移动OS是触摸模式输入状态。 For example, the OS may use a desktop mode input state non-touch input event processing, is moved OS touch mode input state. 在这种情况下,可以对桌面OS用户交互空间中由定点设备生成的输入事件进行转译以便表现为虚拟输入设备中的基于手势的事件。 In this case, it can be translated to the desktop OS user interaction space input events generated by the pointing device to behave as a virtual event-based gesture input device.

[0128] 在块1420,在移动OS中将虚拟输入设备与用于在控制台窗口内显示的应用程序的虚拟显示设备相关联。 Associated with the device [0128] At block 1420, the mobile application in the OS virtual input device for displaying in the virtual display console window. 例如,多个应用程序可能正在移动OS上运行并且在桌面OS的用户交互空间上的不同控制台窗口内显示。 For example, multiple applications may be moving OS running on the console and displayed in different windows on the desktop user interaction space of the OS. 在桌面OS的用户交互空间中的单独的控制台窗口内显示的每个应用程序在移动OS内被分配了虚拟显示器ID。 Each application is displayed in a separate window on the user console interaction space in the OS table in the mobile OS virtual display is assigned ID. 因此,当移动OS通过虚拟设备接收到来自桌面OS的控制台应用程序的输入事件时,移动OS可以通过虚拟显示器ID将虚拟设备映射到正确的应用程序。 Thus, when the mobile OS console input event is received from the desktop application by the virtual device OS, OS movement may be mapped to the proper application by virtual display virtual device ID. 在块1422,输入事件被传送给与虚拟显示器相关联的应用程序并且应用程序可以处理输入事件,仿佛其通过移动OS的用户交互空间出现。 At block 1422, the input event is passed to the application associated with the display and the virtual application can process the input event, it appears as if the interaction space by the user of the mobile OS. 特别地,上述方法对移动0S130的任何应用程序起作用,应用程序不需要被具体指定为通过桌面OS的控制台应用程序接受输入事件。 In particular, the method described above for any application of mobile 0S130 function, the application does not need to be specifically assigned to receive an input event by a console application desktop OS.

[0129] 扩展的渲染上下文实施例 [0129] Example extension rendering context

[0130] 一些实施例通过在第一操作系统内建立扩展的渲染上下文来处理跨越多个OS的并发的用户界面支持。 [0130] Some embodiments establish an extended through the rendering context in the first operating system OS to process across multiple concurrent user interface support. 如上所讨论的,第一OS(例如,移动0S,Android)典型地被配置为利用单个活动的渲染上下文来定义单个的、活动的用户交互空间。 User interaction space as discussed above, the first OS (e.g., a mobile 0S, Android) is typically configured to utilize a single active rendering context to define a single, active. 在此描述了新颖的技术,用于通过将多个所谓的“上下文空间”平铺(tile)到单个的、扩展的呈现空间并且将每个上下文空间与不同的显示器相关联来有效地欺骗第一OS并发地处理多个用户交互空间。 In the novel technique described herein, by a plurality of so-called "context space" tile (the tile) to a single, extended presentation space and each with a different spatial context associated with the display section is effectively deceive concurrently processing a plurality of OS user interaction space. 实施例包括用于处理对多个用户交互空间的显示输出的技术和用于处理这些上下文中的用户交互的技术。 Example display output processing includes a plurality of user interaction space and techniques for processing user interaction of these contexts.

[0131] 返回到以上参照非扩展的渲染上下文实施例讨论的示例,再次假设日历应用程序和字处理应用程序二者被编译用于第一OS (例如,移动OS,Android OS)并且二者并发地在移动设备上的第一OS内运行。 [0131] Returning to the example embodiment discussed in the context of non-expanded rendering above with reference to embodiments, again assuming both a calendar application and a word processing application is compiled for the first OS (e.g., a mobile OS, Android OS) both concurrent and in the first OS run on the mobile device. 第二OS (例如,非移动OS,如Hydroid)使用共享内核正在移动设备上并发地运行。 A second OS (e.g., non-mobile the OS, such as Hydroid) using a shared kernel to run concurrently on the device is moving. 用户已经将移动设备与第二计算环境(桌面计算环境)对接,并且桌面计算环境与第二OS的用户交互空间相关联并且正在显示第二OS的用户交互空间。 The user has a mobile device with a second computing environment (desktop computing environment) docked, and a user interaction space OS desktop computing environment and a second display associated with the user and is a second interaction space OS. 用户期望通过第二OS的桌面计算环境与在第一OS上运行的字处理应用程序进行交互。 Desired by the user computing environment and word processing applications running on the first OS interact through the second OS desktop. 期望以对用户透明的方式使用移动计算环境(即,移动设备)的第二OS来处理桌面计算环境的用户交互空间。 In a second desired user interaction space OS using a mobile computing environment (i.e., mobile devices) in a manner transparent to the user to handle the desktop computing environment.

[0132] 图15图示了根据各个实施例的、使用扩展的渲染上下文跨越多个OS的并发用户界面支持的方面。 [0132] FIG. 15 illustrates an embodiment in accordance with various aspects of the embodiment, the extended use of the rendering context across multiple concurrent user interface of the OS support. 在图15图示的应用程序呈现图示1500中,第一应用程序1510(例如,日历应用程序)计算对第一OS内第一表面1512的更新。 In 1500, the first application 1510 (e.g., a calendar application) calculates an updated first surface 1512 of the first OS shown in FIG. 15 presents an application icon. 通过第一OS将第一表面1512存储在共享的存储空间中的第一存储位置。 The first OS by the first surface of the first storage location 1512 is stored in the shared memory space. 具体地,第一应用程序1510更新第一表面1512的后缓冲区1514。 Specifically, the first application program 1510 update the first surface 1512 of buffer 1514. 类似地,第二应用程序1530 (例如,字处理应用程序)使用第一操作系统计算对第二表面1532的更新。 Similarly, the second application program 1530 (e.g., word processing application) is calculated using the first operating system to the second surface 1532 of the update. 再次,使得第二应用程序1530对第二表面1532的更新到后缓冲区1534。 Again, such that the second application updates 1530 pairs of the second surface of the buffer 1534 to 1532. 通过第一OS将第二表面1532存储在共享的存储空间中的第二存储位置。 The first OS by the second surface of the second storage location 1532 is stored in the shared memory space.

[0133] 第一OS确定表面信息何时被改变并且发起呈现序列。 [0133] determining when a first surface of the OS is changed and information presentation sequence initiated. 第一OS可以在包括第一表面1512和第二表面1532的所有表面上执行单循环,确定与特定应用程序相关联的表面信息何时已经改变。 The first OS may include a first surface 1512 and second surface 1532 of all single-cycle execution, the determining when the surface of the information associated with a particular application has been changed. 在呈现序列中,第一OS确定表面信息何时被改变并且互换第一表面1512的前缓冲区1516和后缓冲区1514,以及第二表面1532的前缓冲区1536和后缓冲区1534。 In the presentation sequence, when the OS determines a first surface of the interchanged information is changed and the front and back buffers 1516 buffer the first surface 1512 of the 1514, 1532 and the front surface of the second buffer 1536 and the buffer 1534. 第一OS在共享的存储空间中的第三存储位置建立扩展的渲染上下文1520并且将第一表面1512呈现到扩展的渲染上下文1520的第一上下文空间1522。 A first storage location in the third OS shared memory space rendering context to establish an extended first surface 1520 and 1512 to render a first expanded rendering context context space 1520 1522. 第一OS将第二表面1532呈现到扩展的渲染上下文1520的第二上下文空间1524。 The second surface 1532 of the first OS rendering rendering context to a second context expanded space 1520 1524.

[0134] 在实施例中,扩展的渲染上下文1520可以在存储空间中与第一OS的帧缓冲区重叠。 [0134] In an embodiment, the rendering context extended frame buffer 1520 may be overlapped with the first OS in the storage space. 例如,扩展的渲染上下文1520的第一上下文空间1522的存储位置可以与第一OS的帧缓冲区共同扩张(coextensive)。 For example, the rendering context 1520 extended spatial context of a first memory location 1522 may be coextensive with the first frame buffer of the OS (coextensive). 第一OS向第二OS传送通知在第三存储位置呈现最终图像。 Rendering the final image of the first OS in the third storage position to the second OS transfer notification. 例如,第一OS可以通过进程间通信信道向第二OS的控制台应用程序传送对扩展的上下文1520的第二上下文空间1524的共享存储位置的文件描述符。 For example, the first OS file descriptors can be extended to shared storage locations of the second spatial context 1520 context 1524 is transmitted to the console through the application of the second OS interprocess communication channel. 第二OS访问第三存储位置处的扩展的图形上下文的第二部分以便取得呈现的图形帧1538以供在第二OS的控制台窗口1540中显示。 Extended Graphics at the third position of the second OS accesses the second storage section in order to obtain context rendered graphics frame 1538 for display in the console window 1540 of the second OS. 例如,第二OS的控制台应用程序可以将文件描述符映射到其处理空间并且从第三存储位置读取呈现的图形帧以供在第二OS的用户交互空间内显示。 For example, the second OS console application file descriptor may be mapped to their spatial processing and presentation graphics frames read from the third memory location for display in the user interaction space of the second OS. 以此方式,第二OS实时地在其用户交互空间内显示第二应用程序的呈现的图形帧。 In this way, the second OS real-time graphical display of the second frame rendering application within its user interaction space.

[0135] 图16示出了根据各个实施例的使用扩展的渲染上下文进行交叉环境呈现的例示性的方法的流程图1600。 [0135] FIG. 16 shows a flowchart illustrating a method of cross-presentation environment using an extended according to the rendering context 1600 of various embodiments. 实施例保持了第一应用程序(例如,日历应用程序)和第二应用程序(例如,字处理应用程序)的应用程序图形的显示。 Graphical display applications holding the first embodiment of the application (e.g., a calendar application) and a second application (e.g., word processing application). 假定这两个应用程序被编译用于第一操作系统(例如,Android OS)并且处于第一操作系统内的活动的并发执行中,但是用户期望通过与第二OS相关联的第二计算环境与第二应用程序进行交互。 Assume that both the application is compiled for the first operating system (e.g., the Android OS) and is executed concurrently active in the first operating system, but the user desires the second OS by the second computing environment associated with The second application to interact. 特别地,这些技术可以应用于其中两个OS不兼容(例如,为第一OS编译的应用程序可能不能直接在第二OS上执行)的环境。 In particular, these techniques may be applied wherein the two are not compatible OS (e.g., application of a first OS compilation may not be performed directly on the second OS) environment. 在一些实现方式中,如上所述,两个OS在移动设备的共享内核上独立地并且并发地运行。 In some implementations, as described above, two OS run independently and concurrently on the shared core mobile device.

[0136] 方法1600在块1604开始,建立第一OS的扩展的渲染上下文。 [0136] The method 1600 begins at block 1604, the first rendering context establish an extended OS. 如上讨论的,根据单个的活动显示器的特征典型地建立渲染上下文。 The features of a single active display rendering context is typically established as discussed above. 然而,建立扩展的渲染上下文以便使得第一上下文空间与第一应用程序相关联并且第二上下文空间与第二应用程序相关联。 However, in order to establish an extended rendering context that the first space of the first context associated with the application program and the second space and a second context associated with the application. 第一和第二上下文空间是非重叠的。 The first and second non-overlapping spatial context.

[0137] 在一些实施例中,通过平铺本地设备的活动显示器(例如,具有共享内核的移动设备的显示器)和任何虚拟显示器(即,与在第二OS的用户交互空间内显示的控制台窗口相关联的第一OS的显示器)来生成扩展的渲染上下文,以形成对于第一OS看上去为一个大的显示器。 [0137] In some embodiments, the active display tile local device (e.g., a display having a shared core mobile device) and any virtual display (i.e., the user console displays in the interaction space of the second OS a first display window on the OS associated) generating a rendering context extended to form the first OS appears as a large display. 扩展的渲染上下文的区域被指定为非重叠的上下文空间以便保持它们与其各自的物理或者虚拟显示器的关联性。 Rendering context extended area is designated as non-overlapping spatial context so as to maintain their association with their respective physical or virtual display. 特别地,在一些实现方式中,不同的上下文空间可能具有不同的分辨率或者其它特征。 In particular, in some implementations, different contexts may have different spatial resolution or other features. 此外,在某些实施例中,上下文空间不是连续的。 Further, in some embodiments, the context of the space is not continuous. 例如,以如下方式来建立扩展的上下文,即:在每个未被指定给任何上下文空间的上下文空间之间留出空间。 For example, in the following manner to establish an extended context, namely: between each of the space is not assigned to any context in a context space to make room.

[0138] 在块1608,使用第一操作系统来计算对第一应用程序和第二应用程序的表面的更新。 [0138] At block 1608, the operating system is calculated using a first surface of the first update application and the second application program. 然后在块1612使用第一操作系统来呈现更新的表面以在可由(例如可以在共享的内核上并发地运行的)第一操作系统和第二操作系统访问的共享存储位置中生成扩展的图形帧。 Then at block 1612 using the first operating system to render the surface to be updated (e.g., can run concurrently on a shared kernel) shared storage system and the second operating positions of the first operating system from accessing the extended graphics frames generated . 扩展的图形帧的第一部分与(与第一应用程序相关联的)第一上下文空间相关联以及扩展的图形帧的第二部分与(与第二应用程序相关联的)第二上下文空间相关联。 Spreading the first portion of the picture frame (a first application is associated) space associated with a first context and a second portion extended graphics frames with the second spatial context (and associated with a second application program) associated . 当在块1608进行呈现时,将第一应用程序的更新的表面呈现给扩展的图形帧的第一部分,并且将第二应用程序的更新的表面呈现给扩展的图形帧的第二部分。 When presented at block 1608, the updated first application surface is presented to a first portion of an extended graphics frames, and the second surface of the updated application program presentation graphics frames to the second portion of the extension. 值得注意的,以此方式,扩展的图形帧有效地包括被平铺到其合适的上下文空间中的两个应用程序的呈现的表面。 Notably, in this way, the extended pattern comprises a frame is plated to effectively render its surface suitable in the context of two space applications.

[0139] 在一些实施例中,在块1616,向与第一OS相关联的第一计算环境的(多个)显示器显示来自共享存储位置的与第一上下文空间相关联的扩展的图形帧的第一部分。 [0139] In some embodiments, at block 1616, the first OS to display associated with the first computing environment (s) associated with a graphical display of the first extended space context from a shared memory location associated frame first part. 例如,如上讨论的,共享的存储位置是移动设备的帧缓冲存储器(或者被拷贝到帧缓冲存储器),移动设备的显示设备驱动器访问帧缓冲存储器以便向其(多个)显示器显示扩展的图形帧的第一部分。 For example, as discussed above, the shared storage location is a frame buffer memory of the mobile device (or the frame buffer is copied to memory), a display device driver of the mobile device accesses the frame buffer memory for display its extended graphics frame (s) displays the first part. 此外,在一些实施例中,在块1620,向与第二操作系统相关联的第二计算环境的显示器显示来自共享存储位置的与第二运动空间相关联的扩展的图形帧的第二部分。 Further, in some embodiments, at block 1620, a second portion of the display pattern of the second frame of the motion from the extended shared storage space location associated with the second operating system to the display a second computing environment associated. 例如,如上讨论的,将共享存储位置拷贝到与第二(例如桌面)计算环境相关联的第二OS的帧缓冲存储器,并且显示设备驱动器将扩展的图形帧的第二部分显示给第二计算环境的显示器。 For example, the shared memory location as discussed above to a second copy (e.g., desktop) frame buffer memory of the second OS computing environment associated with the second portion and the display graphics frame of the device driver to the second computing extended display monitor the environment.

[0140] 在参照图12讨论的实施例中,通过第二OS远程地执行对第二应用程序的更新的图形的呈现。 [0140] In the embodiment discussed with reference to FIG. 12, a rendering update performed remotely by the second application of a second pattern OS. 在参照图15讨论的实施例中,通过移动设备的呈现引擎本地地执行对两个应用程序的呈现,但是连续地建立并且拆解渲染上下文。 In the embodiment discussed with reference to FIG. 15, the two engines perform locally presentation application program presented by the mobile device, but is continuously established and disassembled rendering context. 关于图16讨论的实施例允许通过移动设备的呈现引擎本地地执行两个应用程序的呈现,同时保留单个的、尽管被扩展的、呈现上下文(即,没有拆解渲染上下文)。 Example discussion of FIG. 16 allows the mobile device to perform two local rendering engine application is present, while retaining the individual, despite being extended, rendering context (i.e., without dismantling the rendering context).

[0141] 图17示出了根据各个实施例的、使用扩展的渲染上下文进行交叉环境呈现的另一例不性方法的流程图1700。 [0141] FIG. 17 shows a flowchart for another rendering context extended method examples do not intersect environment with various embodiments presented 1700. 如在图16的方法1600中,实施例保持第一应用程序和第二应用程序的应用程序图形的显示,第一应用程序和第二应用程序二者被编译用于第一操作系统并处于第一操作系统的活动的并发执行中。 The method 1600 in FIG. 16, to keep the application display example embodiment a first application and a second graphics application program, both the first application and the second application is compiled for the first operating system and is in the first a concurrent execution of operating system activity. 方法1700通过在块1704建立第一操作系统的扩展的渲染上下文并且在块1708使用第一操作系统计算对第一应用程序和第二应用程序的表面的更新而开始。 Method 1700 by establishing a first operating system extension rendering context at block 1704 and the first operating system to renew the surface of the first computing application and the second application program starts in block 1708. 如上讨论的,建立扩展的渲染上下文以使得第一上下文空间与第一应用程序相关联并且第二上下文空间与第二应用程序相关联。 As discussed above, to establish an extended rendering context that space a first context associated with a first application and a second space with a second context associated with the application. 第一和第二上下文空间是非重叠的。 The first and second non-overlapping spatial context. 在一些实现方式中,以分别与块1604和1608基本上相同的方式来执行块1704 和1708。 In some implementations, block 1604 respectively substantially the same manner and perform block 1608 to 1704 and 1708.

[0142] 在块1712,使用第一操作系统根据第一上下文空间呈现第一应用程序的更新的表面,以便在第一操作系统的帧缓冲区中生成第一图形帧。 [0142] At block 1712, the operating system using a first presentation surface updated first application program in accordance with a first spatial context, in order to generate a first pattern of the first frame in the frame buffer of the operating system. 例如,第一上下文空间可以与特定的分辨率、特定的平铺偏移(例如,开始“X”位置)等等相关联。 For example, space may first context, a particular tile offset with a particular resolution (e.g., Start "X" position) and the like are associated. 在一些实现方式中,以与图16的方法1600中扩展的图形帧的各个部分的生成基本上相同的方式来生成第一图形帧。 In some implementations, to method 1600 of FIG. 16 generated in various portions of the extended pattern in substantially the same manner as the frame to generate a first graphics frames. 在一些实施例中,在块1716,从帧缓冲区向与第一操作系统相关联的第一计算环境的显示器显示与第一上下文空间相关联的第一图形帧。 In some embodiments, at block 1716, a first graphical display of the first frame and the associated spatial context to display the first operating system associated with a first computing environment from the frame buffer.

[0143] 在块1720,使用第一操作系统呈现第二应用程序的更新的表面,以便在共享的存储位置生成第二图形帧。 [0143] At block 1720, a first operating system to use a second presentation surface renewal application, to generate a second graphics frames in a shared storage location. 如上讨论的,共享的存储位置可由(例如,可以在共享的内核上并发地运行的)第一操作系统和第二操作系统访问。 Shared storage location by operating the first operating system and a second system access (e.g., can run concurrently on a shared kernel), as discussed above. 在一些实施例中,在块1724,从共享的存储位置向与第二操作系统相关联的第二计算环境的显示器显示与第二运动空间相关联的第二图形帧。 In some embodiments, at block 1724, a second display pattern associated with the second frame of the motion to the display space and a second operating system associated with the second computing environment from the shared storage location.

[0144] 特别地,图16和图17 二者的实施例为每个应用程序建立具有上下文空间的扩展的渲染上下文。 [0144] In particular, FIG. 16 and FIG. 17 embodiment both extension context establishment rendering context having a space for each application. 然而,图16的方法1600将所有的图形更新呈现到单个的扩展位图中,图17的方法1700将图形更新呈现到单独的若干位图中。 However, the method 1600 of FIG. 16 will update all graphics rendering extension to a single bitmap, the method 1700 of FIG. 17 will be rendered into the graphics update several separate bitmap. 例如,依赖于如何管理和/或访问存储器,可能期望一种或者其它技术。 For example, depending on how the management and / or access to the memory, one or other techniques may be desirable.

[0145] 如同图12的实施例,在图16和17的实施例中,使用第一OS的呈现引擎呈现两个应用程序的更新的图形帧。 [0145] As in the embodiment of FIG. 12, in the embodiment of FIGS. 16 and 17, using the first OS graphics rendering engine rendering two frames of the updated application. 使用第一OS的呈现引擎允许两个应用程序使用在第一OS中可用的移动设备的硬件加速能力。 OS using the first rendering engine allows two applications using the hardware available in the first OS in the mobile device acceleration. 例如,在图12、16和/或17的实施例中,可以通过使用2D或者3D硬件辅助呈现来呈现第一和第二应用程序中任一个或者二者。 For example, in the embodiment of FIGS. 12, 16 and / or 17, may be presented by any one of the first and second applications using one or both of 2D or 3D rendering hardware assist.

[0146] 使用扩展的渲染上下文对第一OS (即,移动OS, Android)上运行的应用程序的图形帧进行远程显示对于第一OS提供了一种用于对使用单个渲染上下文对在多个用户交互空间内显示的多个应用程序提供呈现的方式。 [0146] Extended use of the first OS rendering context (i.e., mobile OS, the Android) picture frame application running on a remote display for the first OS provides a method for using a single pair of the plurality of rendering contexts multiple applications displayed in user interactions presented in the space provided. 然而,扩展的渲染上下文产生了要处理通过扩展的渲染上下文显示的应用程序的输入事件的问题。 However, the expansion of the rendering context creates problems for handling the incoming events by extending the application of the rendering context displayed. 具体地,必须配置第一OS的输入队列来处理来自通过扩展的渲染上下文的单独的虚拟显示器显示的多个应用程序的多个输入事件。 Specifically, the first OS must be configured to handle a plurality of input queue from the plurality of input events displayed by the application program extension rendering context of separate virtual display.

[0147] 交叉环境用户交互支持的实施例针对处理在第一OS上运行的并且通过第一OS的扩展的渲染上下文而在多个单独的用户交互空间(即,移动设备用户交互空间和桌面OS用户交互空间)上显示的多个应用程序的用户输入事件。 [0147] User interaction crossing support environment for an embodiment of a process running on the first OS and by extension of the first OS rendering context in the plurality of separate user interaction space (i.e., space and user interaction with the mobile device OS table user interaction space) user multiple applications displayed on the input event. 实施例包括扩展的输入队列,其中将来自用于远程显示的应用程序的虚拟输入设备的输入事件映射到输入队列内的单独的运动空间。 Examples include extended input queue, wherein a virtual input event from the input devices for remote display application mapped to a separate input queue in the movement space. 例如,第一应用程序(例如,日历应用程序)正在第一OS上运行并且正在被显示给与第一设备相关联的第一显不器(例如,第一OS正在其上运行的移动设备的显不器)。 For example, a first application program (e.g., a calendar application) is being displayed to give the first mobile device associated with the first device is not significant (e.g., the first OS is running on the OS is run on the first and It is not significant). 第二应用程序(例如,字处理应用程序)也正在与第一应用程序并发地运行,但是被呈现在扩展的渲染上下文的上下文空间(即,虚拟显示器)中并且被显示在第二OS的第二用户交互空间上,第二OS与第一OS在移动设备的共享内核上并发地运行。 A second application (e.g., word processing application) are being run concurrently with the first application, but are presented in the context of extended spatial rendering context (i.e., virtual display) and displayed on the second OS, the second user interaction space, the second OS run concurrently with the first OS kernel on a shared mobile device. 第一OS通过包括第一上下文空间(即,移动设备显示器)中的第一应用程序和第二上下文空间中的第二应用程序二者的应用程序图形的扩展的渲染上下文来呈现图形帧。 The first OS graphics frames presented by rendering context extended graphics application comprises both a first spatial context (i.e., the mobile device display) in the context of a first application and a second application in the second space. 通过在第二OS上运行的控制台应用程序在第二OS的用户交互空间上显示第二上下文空间。 Console application running on the second OS space on the display a second user interaction context space of the second OS.

[0148] 通过第二0S(即,桌面0S,HydrOid)接收通过扩展的渲染上下文远程显示的应用程序的输入事件,并且以与以上关于非扩展图形上下文描述的相同的方式通过第二OS的控制台应用程序将其传送给虚拟输入设备。 [0148] 0S by a second (i.e., the desktop 0S, HydrOid) receive input events displayed by the application of an extended remote rendering context, and with the above control on non-extended pattern in the same manner described in the context of the second OS Taiwan applications will transfer it to the virtual input device. 然而,如上所述,在移动OS中从虚拟输入设备接收的输入事件与在第二OS的用户交互空间内显示的控制台窗口有关。 However, as described above, the device receives an input event and the console window within a user interaction space about the second OS from the virtual input at the mobile OS. 虚拟输入设备被映射到与对应于远程显示的应用程序的虚拟显示器相关联的扩展的输入队列内的运动空间。 Virtual input device is mapped to the motion within the expansion space and the remote display corresponding to the application associated with the display of the virtual input queues. 扩展的输入队列允许第一OS使用单个输入队列正确地处理来自旨在用于多个并发执行的应用程序的多个本地和虚拟输入设备的输入。 Extended input queue allows the first OS single input queue properly process the input and the local virtual input device from a plurality of applications designed for concurrently executing a plurality.

[0149] 图18a和图18b图示了根据各个实施例的使用扩展的渲染上下文的交叉环境应用程序的用户交互支持的方面。 [0149] FIGS. 18a and 18b illustrate a cross support user interaction aspect of the environment of each application using the extended embodiment the rendering context. 图18a图示了正在远程地显示在第一OS上运行的应用程序的用户交互空间1810 (例如,显示在第一OS上运行的应用程序的第二OS的⑶I)。 FIG. 18a illustrates a display is user interaction space remote application running on the first OS 1810 (e.g., display applications running on the first OS, the second OS ⑶I). 例如,第一、第二和第三应用程序可以正在第一OS上运行(即,在第一OS的活动的并发执行中)。 For example, the first, second, and third application may be running on a first OS (i.e., the activity of the concurrent execution of the first OS). 根据上述的实施例,第一OS可以在第一OS的扩展的渲染上下文的第一、第二和第三上下文空间中显示第一、第二和第三应用程序。 According to the above embodiment, the first OS may be displayed first, second and third application of the first, second, and third spatial expansion of the first OS context of the rendering context. 用户交互空间1810中的控制台窗口1812和1814可以分别显示在第一OS上运行的第二应用程序和第三应用程序。 User interaction space 1810 and 1814 in the console window 1812 may display the second application running on the first OS and the third application, respectively.

[0150] 图18b图示了用于提供对在第一OS上运行的每个应用程序的用户交互支持的第 [0150] Figure 18b illustrates a user for providing interactive support for each application running on the OS of the first

一 OS的扩展的输入队列1840。 A OS extended input queue 1840. 扩展的输入队列1840包括第一运动空间1842、第二运动空间1844,和第三运动空间1846。 Extended input queue 1840 comprises a first movement space 1842, a second movement space 1844, and the third motion space 1846. 第一运动空间与第一OS的扩展的渲染上下文的第一上下文空间相关联,其典型地用于呈现第一OS的非虚拟显示器1852(即与移动计算设备110的(多个)显示器116相关联的上下文空间)。 Movement of the expansion space and a first OS, the first rendering context associated with a first spatial context, which is typically used for presenting a first non-OS virtual display 1852 (i.e., the mobile computing device 110 (s) related to display 116 associated context space). 第二和第三运动空间分别与虚拟显示器1854和1856相关联,虚拟显示器1854和1856通过第二和第三上下文空间呈现。 The second and third moving space 1854 and 1856, respectively, virtual display associated with the virtual display 1854 and 1856 through the second and third context presentation space.

[0151] 当出现要被指向到远程显示的应用程序的控制台窗口的输入事件时,该输入事件被指向到与虚拟显示器相关联的运动空间,通过所述虚拟显示器显示应用程序。 [0151] When an event occurs is input to the console window display application is directed to the remote, the event is input to the moving point and the virtual display space associated, by the virtual display to display the application. 例如,如果用户在用户交互空间1810的控制台窗口1812内利用定点设备点击,如输入事件1820所指示的,第二OS的窗口系统将输入事件指向到与控制台窗口1812相关联的控制台应用程序。 For example, if the user clicks the pointing device in the console window 1812 user interaction space 1810, as indicated by the input event 1820, the window system of the second OS is applied to the input event point console 1812 and the console window associated program. 如上所述,控制台应用程序将输入事件映射到虚拟输入设备。 As mentioned above, the input event console application mapped to the virtual input device. 然而,该输入事件与控制台窗口1812有关。 However, the input event and 1812 related to the console window. 如果将输入事件直接馈入到第一OS的输入队列,则该输入事件将不被指向到正确的应用程序事件句柄。 If the input event is directly fed to the first input queue of the OS, the input event is not directed to the correct application event handler. 因此,来自虚拟输入设备的输入事件1820被重新映射到第二运动空间1844。 Thus, the input events from the virtual input device 1820 are remapped to the second movement space 1844. 以此方式,扩展的输入队列将输入事件指向到接收并处理输入事件1820的第二应用程序的事件句柄。 In this way, the extended input queue to point to the input event receiving and processing input events of the second application event handler 1820.

[0152] 在实施例中,虚拟显示器在移动OS输入队列中被偏移。 [0152] In an embodiment, the mobile OS virtual display input queue are shifted. 例如,在图18b中,虚拟显示器1854和1856在移动OS输入队列1840中被偏移了虚拟显示器偏移1858。 For example, in Figure 18b, the virtual display in a mobile OS 1854 and 1856 in the input queue 1840 it is shifted by the offset of the virtual display 1858. 虚拟显示器偏移1858防止虚拟显示器在输入队列中相邻地出现,虚拟显示器在输入队列中相邻地出现可能导致旨在用于一个虚拟显示器的输入事件被在与不同应用程序相关联的运动空间内解释。 Offset preventing virtual display 1858 appears adjacent to the virtual display in the input queue, the virtual display appears in the input queue adjacent to the intended may lead to an input event is a virtual display space and motion associated with different applications in the explanation. 虚拟显示器偏移应该足以大到根本不能用作实际的虚拟显示器分辨率参数。 Virtual display should be large enough to offset can not be used as the actual display resolution of the virtual parameters. 在一个实施例中,虚拟显示器偏移1858被选择为10000个像素。 In one embodiment, virtual display 1858 is selected to offset 10,000 pixels.

[0153] 图19图示了根据各个实施例的用于接收通过扩展的渲染上下文显示的交叉环境应用程序的输入事件的方法1900。 [0153] FIG. 19 illustrates an embodiment of a method for each input event received cross application environment by extending the 1900 display rendering context. 例如,方法1900可以用于处理在第一OS内运行的第一应用程序和第二应用程序的输入事件,第一应用程序被本地显示在第一OS的用户交互空间上,第二应用程序通过第一OS的扩展的渲染上下文被远程显示在第二OS的用户交互空间中。 For example, method 1900 may be used to process the input event of the first application and the second application program running on the first OS, the first application is displayed on the local user interaction space of the first OS, the second application program by extended first OS remote rendering context is displayed in the second user interaction space OS.

[0154] 方法1900开始于块1902,当在第一OS中接收到第一用户输入时,第一应用程序和第二应用程序处于第一OS内的活动的并发执行中,在与第一OS相关联的第一用户环境内显示第一应用程序,在与第二OS相关联的第二用户环境内显示第二应用程序,第一和第二操作系统在共享的内核上并发地运行,第一OS通过扩展的渲染上下文的第一虚拟显示器呈现第二应用程序的图形帧来保持第二应用程序的应用程序图形。 [0154] The method 1900 begins at block 1902, upon receiving a first user input to the first OS, the first application and the second application program is executed concurrently active in the first OS, the first OS displaying a first application program associated with the environment within a first user, the second application and the second OS user environment associated with a second display, the first and second operating systems concurrently on a shared kernel runs in the first OS application to a holding pattern of the second application program through the extended first rendering context virtual display presentation graphics frames of the second application. 在块1904,第一OS建立包括第一运动空间和第二运动空间的扩展的输入队列,第二运动空间对应于第一虚拟显示器。 At block 1904, establishing the first OS comprises a first motion input queue extended space and the second space motion, the second motion corresponds to a first virtual display space. 例如,第一操作系统为第二应用程序分配第一虚拟显示器,建立具有第一上下文空间和第二上下文空间的扩展的渲染上下文,将第一虚拟显示器与第二上下文空间相关联,并且使用上述技术通过扩展的渲染上下文的第二上下文空间来呈现第二应用程序的图形帧。 For example, the first operating system assigned a first virtual display a second application to establish the context of the rendering context having a first extended space and the second space of the context, the first context and the second virtual display space is associated, and using the above techniques to render graphics frame of the second application program through the second rendering context context spatial spreading.

[0155] 在块1906,第一OS在第一虚拟输入设备处接收来自第二OS上运行的第一控制台应用程序的第一用户输入事件,通过第二OS正在显示第二应用程序的呈现的图形帧。 [0155] At block 1906, the first OS receives a first user input event from a first application running on the console, the second OS in a first virtual input device, rendering the second application is being displayed by the second OS the graphics frame. 在块1908,将第一虚拟输入设备映射到第一操作系统的扩展的输入队列的第二运动空间。 At block 1908, the virtual input device is mapped to a first input queue second motion space of the first operating system extensions. 将第一虚拟输入设备映射到第二运动空间使得第一OS的扩展的输入队列正确地将来自第一虚拟输入设备的输入事件关联到第二应用程序的视图内的事件句柄上。 Mapping the first virtual input event input device to a second space such that movement of the first OS extended input queues correctly from the first virtual input device is associated with the event handler in the view of the second application program. 具体地,当输入事件被映射到第二运动空间时,第一OS将输入事件视为出现在扩展的输入队列中与第二应用程序相关联的位置。 Specifically, when the input event is mapped to a second movement space, the first OS input event as in the extended position of the input queue associated with the second application program linked appears. 在块1910,第一OS将第一用户输入事件传送给来自被映射的第一虚拟输入设备的第二应用程序。 At block 1910, the first OS transmits a first user input event to the second application program from a first virtual input device is mapped. 扩展的输入队列使用被扩展的渲染上下文的平铺的属性以使得输入队列处理来自多个用户交互空间的多个输入事件并且将输入事件指向到想要的应用程序的合适的事件句柄。 Extended attributes tiled using the extended input queue context so that the rendering processing a plurality of input queue from the plurality of user input events and the interaction space of the input point to the appropriate event handler event to the desired application.

[0156] 镜像的上下文实施例 [0156] Example context mirroring

[0157] 以上在保持对跨越多个操作系统上的多个应用程序的并发用户交互空间支持的背景下描述了扩展的和非扩展的渲染上下文的实施例。 [0157] described above and the non-extended expansion rendering context in Example concurrent user interaction space holding a plurality of applications across multiple operating systems on a supporting background. 在许多情况下,期望镜像单个用户交互空间的上下文。 In many cases, it is desirable context of a single user interaction space mirror. 期望在与第二OS相关联的第二计算环境(例如,与Hydroid OS相关联的桌面环境)中对第一OS进行并发地观看和交互(即,“镜像”交互空间)。 It is desired concurrently viewing and interaction of the first OS and the second OS associated with the second computing environment (e.g., associated with Hydroid OS desktop environment) (i.e., "mirror" interaction space). 通过镜像的用户交互空间,用户可以与第一OS交互,仿佛通过本地设备进行交互(即,用户可以浏览第一OS可用的应用程序、开始和停止应用程序,使用搜索能力,等等)。 The user can, if interact (ie, the first OS users can browse available applications, start and stop applications, use the search capability, etc.) by user interaction space is mirrored by the first OS to interact with the local device.

[0158] 第一OS (例如,移动OS,Android)典型地被配置为定义单个的、活动的用户交互空间。 [0158] The first OS (e.g., a mobile OS, Android) is typically configured to define a single, user interaction space activities. 用户交互空间包括一活动的显示器(例如,具有相关联的特征,如分辨率)以及一个或多个允许与在活动显示器上显示的元素进行用户交互的活动的输入设备。 User interaction space comprising an active display (e.g., having features associated therewith, such as resolution), and one or more input devices allow user interaction with the elements displayed on a display event activities. 提出了新颖的技术来使用交叉环境呈现以提供跨越多个OS的一个或多个镜像的用户交互空间。 A novel technique to use cross-environment presents user interactions across multiple OS space to provide one or more mirrors. 如上讨论的,即使在多个OS不兼容和/或在共享的内核上独立并且并发地运行的情况下,实施例也可操作。 As discussed above, if not compatible with and / or independently and in the case of running concurrently on a plurality of shared kernel in the OS, embodiments are also operable.

[0159] 可以使用以上关于保持对交叉环境应用程序的并发用户交互支持所参照的许多相同的系统元素来完成保持具有镜像上下文的并发用户交互支持。 [0159] or more can be used on many of the same elements of the system to maintain concurrent user interaction crossing support environment for the application is done with reference to the interaction of concurrent users having a holding support mirrored context. 例如,参照图7,移动OS 130的图形上下文可以是主动地显示应用程序(例如,应用程序752和/或754)和/或移动0S130的主屏幕(例如,Android 0S130的主屏幕应用程序451 )。 For example, referring to FIG. 7, the mobile OS graphics context 130 may be an active display applications (e.g., applications 752 and / or 754) and / or mobile home screen 0S130 (e.g., home screen application Android 0S130 451) . 用于主动显示的应用程序和/或移动OS的主屏幕的表面信息可以被存储在共享的存储器724内。 For application of the active display and / or surface information of the main screen of a mobile OS may be stored in the shared memory 724. 可以通过控制台应用程序782在桌面0S160的用户交互空间内显示移动0S130的镜像的上下文。 Mirror 782 can display context 0S130 moved within the user desktops 0S160 interaction space by console application.

[0160] 图20示出了根据各个实施例的、用于提供镜像的用户交互空间的图形上下文的交叉环境呈现的例示性方法的流程图2000。 [0160] FIG. 20 shows an embodiment of the various embodiments, a flowchart illustrating exemplary method of providing cross pattern mirroring environment user interaction context of presentation space 2000. 方法2000开始于块2004,使用第一操作系统计算对被编译用于第一操作系统并且处于第一操作系统内的活动的执行中的第一应用程序的一组表面的更新。 Method 2000 begins at block 2004, using the first operating system to calculate an updated set of surface of the first application program is compiled for execution of a first operating system and is active in the first operating system's. 例如,进行计算以确定表面形状、大小、纹理、分层等等的改变。 For example, the surface is calculated to determine the shape, size, texture, etc. layered change. 然后使用第一操作系统在块2008呈现表面更新,以便生成图形帧。 Using the first operating system is then presented at block 2008 updates the surface, to generate graphics frames. 图形帧可以是反映应用的更新的图形信息的位图。 Graphics frames may be updated bitmap graphics information reflects the application.

[0161] 在块2012,将图形帧存储在第一操作系统和第二操作系统二者可访问的共享的存储位置。 [0161] At block 2012, the storage location in the shared storage and graphics frames both the first operating system to the second operating system is accessible. 在一些实施例中,第一和第二OS正在共享的内核上并发地运行。 In some embodiments, run concurrently on the first and the second OS kernel is being shared. 在块2016,可以使用第一操作系统将图形帧显示给第一计算环境的第一显示器上的第一应用程序的第一应用程序显示。 At block 2016, the operating system may use a first frame display pattern to the first application of the first application program on the first display of the first display of the computing environment. 例如,共享的存储位置可以是帧缓冲存储器,或者可以被拷贝到第一操作系统的帧缓冲区。 For example, the storage location may be shared frame buffer memory, or may be copied to the frame buffer of the first operating system. 本地设备(例如,正在运行共享内核)的显示设备驱动器访问帧缓冲存储器以便显示位图。 Local devices (e.g., running shared kernel) display device driver accesses the frame buffer memory for display bitmap.

[0162] 在块2012在共享的存储位置中存储图形帧之后,期望向第二OS通知更新的图形信息可用。 [0162] At block 2012 in a shared storage location after storing graphics frame, a desired notification to the second OS update information is available graphics. 在块2020,传送文件描述符,向被编译用于第二OS并且处于第二OS内的活动执行中的控制台应用程序指示共享的存储位置。 At block 2020, the file descriptor transferred to the second OS is compiled and used in the console application executed in the second OS activity indicates the shared storage location. 在一些实现方式中,文件描述符包括共享的存储位置的指示。 In some implementations, the indication includes file descriptor shared storage location. 在其它实现方式中,文件描述符包括附加信息,如指示更新的图形信息对于正被镜像的应用程序的可用性的标志。 In other implementations, the additional information includes a file descriptor, as information indicating the availability of updated graphical flag for the application is being mirrored.

[0163] 如上所述,控制台应用程序可以是X-Windows或者是在第二计算环境中的显示器的窗口内显示的类似类型的应用程序。 [0163] As described above, the console application may be similar to the type of application of the X-Windows display or a display in a window in the second computing environment. 在块2024,控制台应用程序根据文件描述符访问共享的存储位置处的更新的图形信息(例如,位图),并且将来自共享的存储位置的图形帧显示给第二计算环境的第二显示器上的第一应用程序的第二应用程序显示。 At block 2024, the console application pattern according to the updated information at the storage location to access a shared file descriptor (e.g., a bitmap), and the graphics frame memory from a location sharing display to the second display of the second computing environment second application of the first application program on the display. 在一些实施例中,在第一和第二计算环境二者的显示器上基本上并发地显示应用程序的更新的图形信肩、O In some embodiments, substantially concurrently displaying a graphical channel shoulder update application, O on both first and second computing environment display

[0164] 图21示出了根据各个实施例的、提供镜像的用户交互空间的图形上下文的交叉环境呈现的另一例示性方法的流程图2100。 [0164] FIG. 21 shows a flowchart of another exemplary method of the graphics context of various embodiments, user interaction space provides mirroring environment presents CROSS 2100. 如在图20中,方法2100开始于块2104,使用第一操作系统计算对被编译用于第一操作系统并且处于第一操作系统内的活动的执行中的第一应用程序的一组表面的更新。 As in FIG. 20, method 2100 begins at block 2104, calculated using the first operating system is a set of surfaces of the first application program for performing a first compiler and the operating system is active in the first operating system is update. 在块2108,将更新的该组表面存储在(例如,在共享的内核上并发地运行的)第一操作系统和第二操作系统二者可访问的共享的存储位置。 At block 2108, the (e.g., run concurrently on a shared kernel) both the first operating system and the second operating system can access the updated shared storage surface of the set storage location.

[0165] 在块2112,利用第一操作系统呈现更新的该组表面以生成第一图形帧。 [0165] At block 2112, using the set of presence updates surface of the first operating system to generate a first graphics frames. 然后,在块2116,可以使用第一操作系统将第一图形帧显示给第一计算环境的第一显示器上的第一应用程序的第一应用程序显示。 Then, at block 2116, the operating system may use a first frame of the first graphic display to the first application of the first application program on the first display of the first display of the computing environment. 例如,移动0S130呈现更新的应用程序图形并且将更新的图形显示给移动设备Iio的(多个)显示器116。 For example, mobile applications 0S130 presentation graphics update and the updated graphical display (s) to the display of the mobile device 116 Iio.

[0166] 在块2108在共享的存储器中存储更新的该组表面之后的任何时间,期望向第二OS通知更新的图形信息可用。 [0166] at any time after the set surface of the block in the shared memory 2108 stores the updated desired second OS update notification to the graphic information is available. 在块2120,传送文件描述符,向被编译用于第二操作系统并且处于第二操作系统内的活动执行中的控制台应用程序指示共享的存储位置。 At block 2120, transmission file descriptors, to a second operating system is compiled and executed in the console application active in the second operating system indicate that the shared storage location. 特别地,如在图20的方法2000中在共享的存储器中存储的信息是未被呈现的表面信息(例如,几何原语)而不是呈现后的比特。 In particular, as in the method of surface information 2000 in FIG. 20, the shared memory is not stored in the presentation information (e.g., geometric primitive) bits instead of the presentation.

[0167] 相应地,在块2124,通过第二操作系统(例如,根据文件描述符经由控制台应用程序)呈现来自共享的存储位置的更新的该组表面以生成基本上与第一图形帧相同的第二图形帧。 [0167] Accordingly, at block 2124, the second operating system (e.g., according to the file descriptor via the console application) presenting the updated set of surfaces from the storage location sharing substantially the same as to generate a first graphics frames a second graphics frame. 在块2128,经由第二操作系统的控制台应用程序将第二图形帧显示给第二计算环境的第二显示器上第一应用程序的第二应用程序显示,使得第二应用程序显示基本上与第一应用程序显示相同。 At block 2128, the console application via the second operating system to a second graphics frames displayed on the second display of the second computing environment, a second application of the first display of the application, such that the second application displayed substantially The first application to display the same.

[0168] 值得注意的,在第一和第二操作系统二者上复制呈现时,可能涉及附加开销。 [0168] It is noteworthy that, when the copy presented on both the first and second operating system, may involve additional cost. 然而,在许多情况下,这种附加开销是值得的。 However, in many cases, this additional cost is worth it. 例如,当不同计算环境的显示器具有略微不同的特征时,可能期望在适合于各个显示器的各个单独的渲染上下文中呈现更新的图形信 For example, when a display of different computing environments have slightly different characteristics, it may be desirable to update the graphic letter presented in individual rendering context suitable for each of the display

肩、O Shoulder, O

[0169] 图20和图21的方法描述了在镜像的图形上下文中利用在第一OS中运行的应用程序的活动显示进行图形上下文的交叉环境镜像。 [0169] FIG. 20 and FIG. 21 describes the method of using the application running on the first OS in the active graphics context mirrored image display environment cross graphics context. 然而,这些方法可以用于其中在图形上下文中没有主动地显示应用程序的情况下。 However, these methods may be used where there is no case where the active application is displayed in the graphics context. 例如,图形上下文可以是显示第一OS的主屏幕或者其它特征(例如,搜索屏幕等等)。 For example, the first graphics context may be displayed in the main screen OS or other features (e.g., a search screen, etc.). 在这些情况下,通过第一OS的组件更新图形上下文的表面信息,并且可以执行图20和图21的方法的其它步骤以便在第二应用程序显示中提供镜像的图形上下文。 In these cases, the context by updating the graphical components of a surface of the first OS information, and may perform other steps of the method of FIGS. 20 and 21 so as to provide graphics context in the second image display applications.

[0170] 特别地,可以与应用程序的交叉环境呈现并发地采用图形上下文的交叉环境镜像。 [0170] In particular, the application environment may be cross-presentation concurrently cross graphical environment mirror context. 例如,可以使用根据图20或图21的方法,使用上述的应用程序的交叉环境呈现的技术,在第二用户环境中显示在第一OS上运行的应用程序的同时,将移动设备的用户交互空间的活动的图形上下文镜像到第二用户环境。 For example, a user interaction may be used in accordance with the method of FIG. 20 or FIG. 21, using the application technique of cross-presentation environment, show the applications running on the first OS while the second user environment, the mobile device the active graphic image to the spatial context of the second user environment. 为了进行例示,参照图8,可以在第一控制台窗口882内显示移动OS的用户交互空间,而在显示器844上在桌面OS的用户交互空间内的第二控制台窗口884内显示移动OS应用程序。 For illustrative purposes, with reference to FIG. 8, may display a user interaction space OS moves within the first window 882 console, the console window 884 and the second user interaction in the desktop space OS OS applications of mobile display 844 on the display program.

[0171] 可以以与在图13、14、18和/或19中图示的对交叉环境应用程序提供用户界面支持基本上相同的方式执行对镜像的图形上下文提供用户交互支持。 [0171] as in FIGS. 13, 14, may be and / or 19 illustrated in providing a user interface to support substantially the same manner as performed on the image graphic user interaction context provides application support for cross environments. 具体地,可以从第二OS的控制台应用程序向虚拟输入设备提供输入事件。 Specifically, the event can provide input to the virtual input device from the console application of the second OS. 第一OS可以通过扩展的或者非扩展的输入队列接收来自虚拟输入设备的输入事件。 The first OS may receive input events from a virtual input device by extension or non-extension of the input queue.

[0172] 交叉环境重定向实施例 [0172] Example CROSS environment redirection

[0173] 上述技术提供了通过第二操作系统的用户交互空间对第一操作系统的应用程序和图形上下文的交叉环境用户交互支持。 [0173] The techniques provide a cross-user interaction environment via the second operating system supports user interaction space for graphics applications and the first operating system context. 为了便于透明交叉环境使用模型,实施例针对从第二操作系统的用户交互空间对第一操作系统的应用程序和/或镜像的上下文提供访问。 To facilitate the use of a transparent cross-environment model, embodiments are directed to provide access to the context of the first operating system and an application / or mirror from the second operating system user interaction space.

[0174] 参照回到图8,用户可以通过包括移动设备上的交互组件(B卩,(多个)触摸屏显示器116,(多个)其它I/O设备118)的第一用户交互空间与第一0S(即,移动OS,Android)进行交互。 [0174] Referring back to FIG. 8, the user may include interactive components (B Jie, (s) touchscreen display 116, (s) other I / O device 118) on the first mobile device and the second user interaction space a 0S (i.e., mobile OS, Android) interact. 用户还可以通过包括辅助终端环境840的显示器844的第二用户交互空间与第 The user may also be assisted by including a first terminal 840 of the display of the second user environment interaction space 844

二 OS(即,桌面0S,Hydroid)进行交互。 Two OS (ie, Desktop 0S, Hydroid) interact. 如上所述,可用于桌面0S160(即,被编译用于桌面0S160并且加载到桌面0S160的执行环境中)的一组应用程序可以与可用于移动0S130的一组应用程序不同。 A different set of applications as described above, can be used for the desktop 0S160 (i.e., compiled for the desktop 0S160 and 0S160 loaded into the execution environment of the desktop) can move 0S130 with a set of applications it may be used. 实施例针对于通过在桌面0S160的用户交互空间的菜单内提供用于移动0S130上可用的应用程序的菜单图标或者菜单列表条目而使得在桌面0S160的用户交互空间内可访问移动0S130的应用程序。 Example embodiments provide for the user's desktop 0S160 interaction space through a menu in an application available on the mobile 0S130 menu icon or menu entry list such that the user interaction in the desktop space accessible 0S160 0S130 the mobile application.

[0175] 图22图示了根据各个实施例的交叉环境重定向的方面。 [0175] FIG. 22 illustrates a cross environmental aspect of various embodiments of the redirect. 在图22图示的计算环境2200中,用户通过桌面OS用户交互空间2202与桌面0S160进行交互。 In a computing environment illustrated in FIG. 220,022, 2202 the user interaction with the desktop user interaction 0S160 OS desktop space. 在桌面OS用户交互空间2202内,菜单栏2220包括可用的应用程序的图标或者列表。 User interaction within the desktop OS space 2202, 2220 including the application menu bar icon or list available. 为了启动应用程序,用户从菜单栏、或者菜单栏2220的下拉或弹出列表中选择应用程序名称或者图标。 To start the application, the user from the menu bar, menu bar or pull-down or pop-up list of 2220 Select the application name or icon. 传统地,菜单栏2220仅仅包括在桌面OS 160上可用的应用程序的菜单条目或者图标。 Traditionally, the menu bar or menu item 2220 includes only the application's icon available on the desktop OS 160. 例如,菜单条目2222、2224、2226,和/或2228可以是桌面0S160上可用的应用程序(例如,被编译用于桌面0S160并且被加载到桌面0S160的执行环境中)。 For example, menu item 2222,2224,2226, and / or 2228 may be available on the desktop 0S160 applications (e.g., for the desktop 0S160 compiled and loaded into the execution environment of the desktop 0S160). 本发明的实施例针对提供从桌面OS用户交互空间2202对移动0S130的应用程序和/或图形上下文的交叉环境访问。 Embodiments of the present invention is directed to provide access to 2202 applications for mobile environment cross 0S130 and / or graphics contexts from OS user interaction the desktop space. 例如,菜单条目2232、2234、2236、22367和/或2238可以指示在移动0S130上可用的应用程序和/或移动0S130的图形上下文。 For example, menu item 2232,2234,2236,22367 and / or 2238 may indicate the available applications on the mobile 0S130 graphics contexts and / or movement of 0S130.

[0176] 将桌面OS用户交互空间2202显示在与桌面0S160相关联的用户交互空间(例如,辅助终端环境840 )内的显示器上。 [0176] OS desktop user interaction space 2202 shown on the display in the 0S160 associated with desktop user interaction space (e.g., the auxiliary terminal environment 840). 桌面0S160的菜单栏2220包括与被编译用于桌面0S160并且在桌面0S160上加载(例如被编译用于Hydroid/Linux并且被加载到Hydroid OS的执行环境内)的应用程序相关联的菜单条目2222、2224,2226,和/或2228。 The menu bar 2220 comprises a table 0S160 and 0S160 compiled and loaded to the desktop on the desktop 0S160 (e.g. compiled for Hydroid / Linux and loaded into the execution environment Hydroid OS) application associated with the menu item 2222, 2224,2226 and / or 2228. 菜单栏2220还包括与被编译用于移动OS130并且在移动0S130上加载(例如被编译用于Android并且在Android执行环境内加载)的应用程序相关联的菜单条目2234、2236,2237,和/或2238。 The menu bar 2220 further includes a compiled for moving the OS130 and moving the menu items on the loading 0S130 (e.g. Android compiled and loaded for execution in the Android environment) 2234,2236,2237 associated application, and / or 2238. 当用户选择菜单条目2234、2236,和/或2238之一时,在移动0S130上启动相关联的应用程序并且在桌面0S160的控制台窗口内进行显示,例如,在桌面OS用户交互空间2202的窗口2216内显示。 When the user selects a menu item 2234,2236, when / 2238 and one or launch the application associated with the mobile 0S130 and displayed in the console window within the desktop 0S160, e.g., user interaction space OS desktop window 2216 2202 the display. 菜单条目2232可以与移动OS图形上下文相关联,使得如果选择了菜单条目2232,则在桌面0S160的控制台窗口内显示移动OS的图形上下文。 Menu item 2232 can move OS context associated with the graphics, so if the menu entry 2232, displays graphics in the context of the mobile OS console window in the desktop 0S160.

[0177] 图23图示了为构建桌面0S160的菜单栏2220可以采用的处理流程2300。 [0177] FIG. 23 illustrates a process flow for constructing desktop menu bar 2220 0S160 2300 may be employed. 在处理流程2300的步骤2302,桌面0S160在移动0S130中查询可用应用程序的列表。 In step process flow 2300 2302, mobile desktops 0S160 0S130 query list of available applications. 在一个实施例中,桌面0S160的系统服务或者启动器(launcher)应用程序在移动0S130的服务中查询所有可启动的移动OS应用程序快捷方式。 In one embodiment, the desktop service or the 0S160 initiator (Launcher) applications on the mobile service query 0S130 all mobile OS application shortcuts bootable. 移动0S130利用可用的应用程序的列表(即,用于可用的移动OS应用程序的可启动的快捷方式)进行响应。 0S130 respond with a list of mobile applications (i.e., for moving the shortcut OS applications available bootable) available. 可用应用程序的列表可以包括在移动0S130上所有可用的应用程序(所有在移动0S130上加载的并且可执行的应用程序)或者可用的移动OS应用程序的子集。 List of available applications may include all the available applications (all mobile 0S130 and loaded on an executable application program) or a subset of available mobile OS applications on the mobile 0S130. 例如,列表可以包括在移动OS GUI的(多个)应用程序菜单屏幕上出现的所有应用程序。 For example, the list may include all applications appear on the mobile OS GUI of (multiple) application menu screen. 在步骤2304,桌面0S160接收来自移动0S130的应用程序的列表。 In step 2304, receives the list from the desktop application 0S160 0S130 of movement. 由移动0S130返回的应用程序的列表包括列出的每个应用程序的应用程序分组名称,并且还可以包括列出的每个应用程序的应用程序名称和图标。 Application list returned by the mobile application comprises 0S130 each application listed group name, and may further include the application name and icon for each application listed.

[0178] 桌面0S160通过在块2306、2308和2310上进行迭代对应用程序列表的每个应用程序在菜单栏2220中创建菜单条目。 [0178] Desktop 0S160 by each iteration of the application in the application list of blocks 2306, 2308 and 2310 to create a menu item in the menu bar in 2220. 对于每个应用程序,桌面0S160在块2306对菜单栏2220中的应用程序的图标进行实例化,在块2308将图标与桌面0S160的控制台应用程序相关联,并且在块2310将指示应用程序的分组名称的参数与图标相关联。 For each application, the desktop application at block 0S160 2306 pairs of the application icon in the menu bar 2220 is instantiated at block 2308 the console application icon associated with the desktop 0S160, and indicated at block 2310 the name of the grouping parameters associated with the icon. 使用上述的交叉环境呈现的实施例,控制台应用程序在桌面0S160上运行并且在桌面0S160内显示应用程序的图形信息。 CROSS environment using the present embodiment, console application running on a desktop 0S160 and displaying graphical information in the desktop application 0S160. 以此方式,当用户选择菜单条目时,在桌面0S160上启动控制台应用程序,并且将应用程序的分组名称传送给控制台应用程序。 In this way, when a user selects a menu item, start the console application on the desktop 0S160, and transmits a packet name of the application to console application.

[0179] 桌面0S160可以以各种方式显示与移动0S130的应用程序相关联的菜单条目。 [0179] Desktop 0S160 menu items may be displayed with the application in the mobile 0S130 associated in various manners. 菜单条目可以被显示在菜单栏2220中,或者被显示在当选择指示移动OS应用程序是可用的菜单条目时出现的下拉菜单中。 Menu item may be displayed on the menu bar 2220 is displayed indicating that the mobile OS or application is selected when the pull-down menu that appears when the menu item is available. 在菜单栏2220或者下拉菜单中,可以使用图标或者仅仅应用程序名称来显示菜单条目。 In 2220 the menu bar or pull-down menu, you can use the icon or application name to display only menu item. 在一个实施例中,桌面0S160为移动OS应用程序显示单独的菜单栏。 In one embodiment, the desktop 0S160 menu bar displays a separate OS for mobile applications. 在另一个实施例中,与移动OS应用程序相关联的菜单条目与桌面OS应用程序的菜单条目并排或者混合出现在桌面OS菜单栏2220内。 In another embodiment, the menu item menu items OS desktop applications associated with the mobile OS application or in parallel with the mixing occurs within the desktop OS menu bar 2220. 可选地,移动OS菜单条目可以处于定界符2240隔开的菜单栏2220的区域2230中或者以其它方式可被识别为包括移动OS菜单条目。 Alternatively, the mobile OS menu entry delimiter 2240 is spaced apart from the menu bar area 2230 or 2220 may otherwise be identified as menu items including a mobile OS. 菜单栏2220可以包括移动设备自身的活动显示的菜单条目,即,根据图20和/或图21的方法用户可以在桌面OS的用户环境内选择显示移动OS的用户交互空间的菜单条目。 The menu bar 2220 may include menu items displayed activities mobile device itself, i.e., the method of user 20 and / or 21 may display the selected menu item of a user interaction space within the user moves the OS environment table in accordance with the OS. 在一个实施例中,在可用应用程序的列表中返回移动OS的主屏幕应用程序并且向其提供相关联的菜单条目。 In one embodiment, the mobile returns to the main screen of the application in the OS's list of available applications and their associated menu items provided.

[0180] 当用户选择与移动OS应用程序相关联的菜单条目时,桌面0S160启动与菜单条目相关联的控制台应用程序并且将应用程序的分组名称传送给控制台应用程序。 [0180] When the user selects a menu item and the mobile OS application associated with the menu item table 0S160 boot console application associated with the packet and transmits the name of the application to the console application. 控制台应用程序在桌面OS用户交互空间2202内显示窗口(即,控制台应用程序在桌面OS的图形系统内进行显示)。 Console application display window within the desktop OS space 2202 user interaction (ie, the console application to display within the desktop OS graphics system). 控制台应用程序向移动0S130发送请求以启动应用程序(即,请求移动0S130启动其分组名称作为执行参数被提供给控制台应用程序的应用程序)并且通过控制台应用程序显示应用程序的图形帧。 Console application request to launch the application (i.e., the packet which requests the mobile 0S130 start names are provided to the application as a console application execution parameter) and the display graphics frame console application by sending an application to the mobile 0S130. 应用程序可以是或者可以不是当前正在移动0S130上运行的。 Applications can be moved or may not be currently running on the 0S130. 如果应用程序当前正在移动0S130上运行,则可以将应用程序的显示从移动0S130移动到桌面OS用户交互空间2202,或者同时将其显示在移动设备的显示器和用户交互空间2202 二者上。 If the application is currently running on the mobile 0S130, the display can be moved from the mobile application 0S130 the OS 2202 to the desktop user interaction space, or while it is displayed on both the display space and user interaction with the mobile device 2202. 使用上述的交叉环境呈现和交叉环境用户界面支持技术的任一种可以为应用程序完成应用程序图形的显示和用户交互支持。 Using the above cross-environment presents a user interface environment and any cross support technology and display a complete application support user interaction pattern for the application.

[0181] 图24图示了响应于用户在桌面OS⑶1880的菜单栏2220上选择与移动OS相关联的菜单条目,移动0S130启动应用程序所遵循的处理流程2400。 [0181] FIG. 24 illustrates a response to user selection associated with the mobile OS on the desktop menu bar 2220 OS⑶1880 menu items, the mobile 0S130 followed to start the application process flow 2400. 处理流程2400开始于块2402,移动0S130从桌面0S160接收请求以启动被编译用于移动OS并且在移动OS的执行环境内加载的应用程序,以供在桌面OS上进行显示。 Process flow 2400 begins at block 2402, the mobile 0S130 0S160 receiving a request to start from the desktop is compiled for moving the loaded OS and the application execution environment in the movement of the OS, OS for display on the desktop. 在块2404,移动OS分配未使用的虚拟显示器ID。 At block 2404, the mobile OS assigned virtual display unused ID. 例如,移动OS的图形系统可以保存虚拟显示器ID的列表并且将未使用的虚拟显示器ID分配给第一应用程序的处理。 For example, mobile OS graphics system can display a list of virtual storage ID and unused processing to the first application ID assigned to the virtual display. 在块2406,移动OS在移动OS内启动第一应用程序(即,在移动OS上运行)。 At block 2406, a first mobile OS boot application (i.e., running on the mobile OS) within the mobile OS. 在块2408,移动0S130将第一应用程序的刷新通知与虚拟显示器相关联。 At block 2408, the mobile 0S130 refresh notifying the first application program associated with the virtual display. 例如,移动OS的图形服务器可以保存应用程序的列表和它们相关联的虚拟显示器。 For example, mobile OS server can save the virtual graphics display lists and their associated applications. 在块2410和2412,移动OS通过监视第一应用程序的应用程序图形并且在第一应用程序的应用程序图形信息被更新时向桌面OS的控制台应用程序进行通知,来保持第一应用程序的图形信息。 At block 2410 and 2412, and notifies the mobile OS, application program by monitoring a first graphics application when the application information of the first graphics application program is updated to a console application desktop OS to maintain the first application graphical information. 块2410和2412可以对应于根据图10、12、16和/或17的方法的保持交叉环境应用程序的应用程序图形。 Blocks 2410 and 2412 may correspond to a graphics application in accordance with application environment maintained cross the method of Figure 10,12,16 and / or 17.

[0182] 出于例示和描述的目的,已经提出了前面的描述。 [0182] For purposes of illustration and description, the foregoing description has been made. 此外,该描述不是旨在将本发明的实施例限制为在此公开的形式。 Furthermore, the description is not intended to limit the embodiments of the present invention to the form disclosed herein. 尽管以上已经讨论了多个示例性方面和实施例,但本领域技术人员将认识到其某些变型、修改、置换、增加、和子组合。 While the foregoing has discussed a number of exemplary aspects and embodiments, those skilled in the art will recognize that some of its variations, modifications, permutations, additions and sub-combinations.

[0183] 可以通过能够执行对应功能的任何合适的手段来执行上述的方法的各个操作。 [0183] the above-described respective operations may be performed by any method suitable means capable of performing the corresponding functions. 这些手段可以包括(多个)各种硬件和/或软件组件和/或(多个)模块,包括但不限于电路、专用集成电路(ASIC),或者处理器。 These methods may include (s) various hardware and / or software components and / or module (s), including but not limited to a circuit, application specific integrated circuit (ASIC), or processor.

[0184] 可以由被设计用于执行在此描述的功能的通用处理器、数字信号处理器(DSP)、ASIC、现场可编程门阵列信号(FPGA),或者其它可编程逻辑器件(PLD)、离散的门电路,或者晶体管逻辑电路、离散的硬件组件,或者其任何组合来实现或者执行所述的各种例示性的逻辑块、模块,以及电路。 [0184] by a general-purpose processor may be designed to perform the functions described herein, a digital signal processor (DSP), ASIC, a field programmable gate array signal (the FPGA), or other programmable logic device (PLD), discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the various illustrative logical blocks, modules, and circuits described. 通用的处理器可以是微处理器,但是作为替换,该处理器可以是任何市场上可得到的处理器、控制器、微控制器,或者状态机。 The general purpose processor may be a microprocessor, but alternatively, the processor may be any commercially available processor, controller, microcontroller, or state machine. 处理器还可以被实现为计算器件的组合,例如,DSP和处理器的组合,多个微处理器,一个或多个连同DSP核的处理器,或者任何其它这样的配置。 A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a processor, a plurality of microprocessors, one or more processors in conjunction with a DSP core, or any other such configuration.

[0185] 可以在硬件、由处理器执行的软件模块,或者二者的组合中直接体现连同本公开描述的方法或者算法的步骤。 [0185] The method may be embodied directly in conjunction with the steps described in this disclosure or algorithm in hardware, in a software module executed by a processor, or a combination of the two. 软件模块可以驻留在任何形式的有形的存储介质中。 A software module may reside in any form of tangible storage medium. 可以使用的一些存储介质的示例包括随机存取存储器(RAM)、只读存储器(ROM)、闪存存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移除盘、⑶-ROM等等。 Some examples of storage media that may be used include random access memory (RAM), a read only memory (ROM), flash memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, ⑶-ROM and the like. 存储介质可以耦接到处理器使得处理器可以从存储介质中读取信息并且将信息写入到存储介质。 Storage medium may be coupled to the processor such that the processor can read information from the storage medium and write information to, the storage medium. 作为替换,存储介质可以被集成到处理器中。 It may be integral to the processor Alternatively, the storage medium. 软件模块可以是单指令,或者许多指令,并且可以分布到若干不同的代码段上、不同的程序中,以及多个存储介质上。 A software module may be a single instruction, or many instructions, and may be distributed over several different code segments, among different programs, and across multiple storage media.

[0186] 在此公开的方法包括用于实现所描述的方法的一个或多个动作。 [0186] In the method disclosed herein includes a method for achieving the described one or more actions. 方法和/或动作可以与另一互换,而不脱离权利要求的范围。 Methods and / or actions may be interchanged with another, without departing from the scope of the claims. 换言之,除非指定了动作的特定顺序,可以修改特定动作的顺序和/或用途,而不脱离权利要求的范围。 In other words, unless a specific order of operation, you can modify the order and / or use of specific actions, without departing from the scope of the claims.

[0187] 可以以硬件、软件、固件或者其任何组合来实现所描述的功能。 [0187] may be implemented in hardware, software, firmware, or any combination thereof to implement the functions described herein. 如以软件实现,所述功能可以被存储为在有形的计算机可读介质上的一个或多个指令。 As implemented in software, the functions may be stored on a readable medium as one or more instructions on a tangible computer. 存储介质可以是能够由计算机访问的任何可用的有形介质。 A storage media may be any available tangible media that can be accessed by a computer. 通过示例而不是限制,这种计算机可读的介质可以包括RAM、ROM、EEPROM、CD-ROM、或者其它光盘存储装置、磁盘存储装置,或者其它磁盘存储设备,或者任何其它的可以用于以指令或者数据结构的形式承载或存储期望的程序代码并且可以通过计算机访问的有形介质。 By way of example and not limitation, such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM, or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other command may be used to or tangible medium carrying program code in the form of data structures or store desired and can be accessed by a computer. 如在此使用的,磁盘和光盘包括致密盘(CD)、激光盘、光盘、数字多用途盘(DVD)、软盘,和蓝光〇R盘,其中磁盘(disk)通常以磁方式重现数据,而光盘(disc)以激光光学地重现数据。 As used herein, Disk and disc, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and Blu-ray 〇R disc, where disks (Disk) reproducing data magnetically generally, while discs (disc) to reproduce data optically with lasers.

[0188] 由此,计算机程序产品可以执行在此提出的操作。 [0188] Accordingly, a computer program product can perform the operations presented herein. 例如,这种计算机程序产品可以是其上有形存储(和/或编码)了指令的计算机可读的有形介质,指令可通过一个或多个处理器执行以执行在此描述的操作。 For example, such a computer program product may be tangibly stored (and / or encoded) computer readable tangible medium of instructions, executable instructions to perform the operations described herein by one or more processors. 计算机程序产品可以包括包装材料。 The computer program product may include packaging material.

[0189] 软件或者指令还可以通过传输介质进行传输。 [0189] Software or instructions may also be transmitted over a transmission medium. 例如,可以使用传输介质,诸如同轴电缆、光缆、双绞线、数字用户(DSL),或者诸如红外、无线电或者微波之类的无线技术,从网站、服务器,或者其它远程源传输软件。 For example, transmission media, such as coaxial cables, fiber optic cable, twisted pair, digital subscriber (DSL), or such as infrared, radio or microwave wireless technology, from a website, server, or other remote source.

[0190] 此外,可以下载和/或以其它方式由用户终端和/或基站(在可应用时)获得用于执行在此描述的方法和技术的模块和/或其它合适的部件。 [0190] In addition, download and / or (where applicable) otherwise obtained by a user terminal and / or base station modules and / or other suitable components for performing the methods and techniques described herein. 例如,这种设备可以耦接到服务器以便于传递用于执行在此描述的方法的部件。 For example, such a device may be coupled to a server to facilitate the transfer means for performing the methods described herein. 可替换地,可以经由存储部件(例如,RAM、ROM、物理存储介质,诸如CD或者软盘等等)来提供在此描述的各种方法,使得在将存储部件耦接到或者提供给设备时,用户终端和/或基站可以获得各种方法。 Alternatively, it is possible to provide various methods described herein via storage means (e.g., RAM, ROM, a physical storage medium such as a CD or floppy disk, etc.), such that when the storage means is coupled to or provided to the device, user terminal and / or base station can obtain the various methods. 此外,可以利用向设备提供在此描述的方法和技术的任何其它合适的技术。 Further, by using any other suitable technique to provide the methods and techniques described herein to a device.

[0191] 其它示例和实现方式在本公开和所附的权利要求的范围和精神内。 [0191] Other examples and implementations are within the scope and spirit of the disclosure and the appended claims. 例如,由于软件的特性,可以使用处理器、硬件、固件、硬连线,或者这些中任何组合执行的软件来实现上述的功能。 For example, due to the nature of software, the processor may be used, hardware, firmware, hardwiring, or combinations of any of these software executed to implement the foregoing functions. 实现功能的特征还可`以位于各种位置,包括被分布使得在不同的物理位置处实现一部分功能。 Wherein `to realize the function can also be located at various positions, including being distributed such that a portion of the functionality implemented at different physical locations. 此外,如在此使用的,包括在权利要求中,如在以“至少一个”开始的一列条目中使用的“或”指示分离性的列表使得例如“A,B或者C中的至少一个”的列表意味着A或B或C或AB或AC或BC或ABC (即,A和B和C)。 Further, as used herein, including the claims, as a "or" list indicates separability "at least one" an entry beginning with used so that for example "A, B or C is at least one" list means A or B or C or AB or AC or BC or ABC (i.e., A and B and C). 此外,用语“示例性”不是意味着所描述的示例是优选的或者比其它示例更好。 In addition, the exemplary term "exemplary" is not meant described are preferred or better than other examples.

[0192] 可以做出对在此描述的技术的各种改变、替换和更改,而不脱离由所附权利要求定义的教导的技术。 [0192] Various changes may be made to the techniques described herein, substitutions and alterations without departing from the teachings of the art as defined by the appended claims. 此外,本公开和权利要求的范围不限于上述的处理、机器、制造、物质的合成、手段、方法,和动作的特定方面。 Further, the present disclosure and claims are not limited to the above-described particular aspect of the process, machine, manufacture, compositions of matter, means, methods, and actions. 可以利用与在此描述的对应方面执行基本相同功能或者实现基本相同结果的目前存在的或者随后开发的处理、机器、制造、物质的合成、手段、方法或者动作。 May utilize existing processes, machines, manufacture, compositions of matter, means, methods, or acts performing substantially the same function corresponding to aspect described herein or achieve substantially the same result or later developed. 相应地,所附的权利要求在它们的范围内包括这种处理、机器、制造、物质的合成、手段、方法或者动作。 Accordingly, the appended claims including such processes, machines, manufacture, compositions of matter, means, methods, or acts within their scope.

Claims (19)

1.一种方法,包括: 通过具有第二执行环境的第二操作系统在第一操作系统中查询被编译用于第一操作系统并且被加载到第一操作系统的第一执行环境中的应用程序的列表,第一和第二操作系统在共享的内核上并发地运行; 在第二操作系统中接收应用程序对象的列表,每个应用程序对象包括应用程序分组;在第二操作系统的菜单中对与应用程序对象的列表中的应用程序对象对应的第一菜单条目进行实例化; 将第一菜单条目与第二操作系统的控制台应用程序相关联,使得在选择第一菜单条目时执行第二操作系统的控制台应用程序;以及将指示与应用程序对象对应的第一操作系统中的应用程序分组的参数与第一菜单条目相关联。 1. A method, comprising: a first operating system is compiled for a second execution environment by having the second operating system queries the first operating system and the application is first loaded into the execution environment in a first operating system the list of programs, the first and second operating systems to run concurrently on a shared core; receiving application object list in the second operating system, each application object includes an application packet; menu in the second operating system menu item in the first list and application objects in an application object corresponding to instantiated; the first menu item and the second operating system application associated with the console, so that the implementation of the first menu item when selecting the second operating system console application; applications and parameters indicative of a first operating system and application objects corresponding to the first packet in the associated menu item.
2.根据权利要求1的方法,其中第一操作系统的第一图形服务器与第二操作系统的第二图形服务器不兼容。 2. The method according to claim 1, wherein the first operating system is not compatible with a first pattern and the second server a second operating system graphics server.
3.根据权利要求1的方法,其中第一图形服务器包括Android图形服务器,第二图形服务器包括X-windows类型的图形服务器。 3. The method of claim 1, wherein the first graphic pattern Android server comprises a server, the server comprising a second pattern type X-windows graphics server.
4.根据权利要求1的方法,其中第二操作系统的图形服务器是X-windows类型的图形服务器并且其中对应于应用程序对象的第一操作系统的应用程序使用与第二操作系统的X-windows类型的图形服务器不兼容的图形库。 4. A method according to claim 1, wherein the second operating system, X-windows graphics server is a server and wherein the pattern type corresponding to the application object in the first operating system and the application program using the operating system of the second X-windows type of graphics server is not compatible with the graphics library.
5.根据权利要求1的方法,其中应用程序对象包括应用程序名称、应用程序分组名称,以及应用程序图标。 5. The method of claim 1, wherein the application object includes the application name, the name of the application packet, and the application icon. · ·
6.根据权利要求1的方法,其中第一菜单条目在被选择时将应用程序分组名称作为执行参数传送给控制台应用程序。 6. The method of claim 1, wherein the first menu item, when selected, the name of the application as a console application packet transfer execution to the parameters.
7.根据权利要求1的方法,其中第二操作系统的菜单包括对应于第二应用程序的第二菜单条目,第二应用程序被编译用于第二执行环境并且被加载到第二执行环境中。 7. The method of claim 1, wherein the second operating system, a second menu comprises a menu entry corresponding to the second application, the second application for a second execution environment is compiled and loaded into the second execution environment .
8.根据权利要求1的方法,其中第一操作系统包括移动操作系统,第二操作系统包括桌面操作系统。 8. The method of claim 1, wherein the first operating system comprises a mobile operating system, the second operating system comprises a desktop operating system.
9.一种方法,包括: 通过第一操作系统从第二操作系统接收请求以在第一操作系统中启动被编译用于第一操作系统并且被加载到第一操作系统的第一执行环境内的第一应用程序,第一和第二操作系统在共享的内核上并发地运行; 通过第一操作系统分配虚拟显示器; 在第一操作系统内的进程中启动第一应用程序; 将第一应用程序的刷新通知与虚拟显示器相关联;以及通过迭代地执行以下步骤来保持第一应用程序的应用程序图形: 通过第一操作系统监视第一应用程序的应用程序图形信息;以及在应用程序图形信息被更新时向第二操作系统的控制台应用程序进行通知。 9. A method, comprising: receiving a request from a first operating system to boot the second operating system in a first operating system to the first operating system is compiled and loaded into the first execution of a first operating system environment a first application, the first and second operating systems to run concurrently on a shared core; virtual display allocated by the first operating system; start a first application in a first process within the operating system; the first application refresh notification program associated with the virtual display; graphics applications and to maintain the first application by iteratively performing the following steps: a first graphic information by the application operating system monitors the first application program; and graphics information in the application notification to the console application of the second operating system is updated.
10.根据权利要求9的方法,其中向第二操作系统的控制台应用程序进行通知包括:向控制台应用程序传送文件描述符,所述文件描述符指示在共享的存储位置处应用程序图形信息是可用的,所述共享的存储位置可由第一操作系统和第二操作系统访问。 10. The method of claim 9, wherein the notification comprises a second console application operating system: transmitting to a console application file descriptor, a file descriptor indicating that the application is stored at a location in the graphics information is shared is available, the shared memory location by the first operating system and a second operating system access.
11.根据权利要求10的方法,其中通过进程间通信信道传送文件描述符。 11. The method according to claim 10, wherein the file descriptor transfer interprocess communication channel.
12.根据权利要求11的方法,其中进程间通信信道包括本地套接字。 12. The method of claim 11, wherein the inter-process communication channel comprises a local socket.
13.根据权利要求11的方法,其中进程间通信信道包括Unix域套接字。 13. The method according to claim 11, wherein the inter-process communication channel comprises a Unix domain socket.
14.根据权利要求11的方法,其中进程间通信信道包括Binder接口。 14. The method according to claim 11, wherein the inter-process communication channel comprises Binder interface.
15.根据权利要求14的方法,其中应用程序图形信息包括第一应用程序的表面信息。 15. A method according to claim 14, wherein the application information comprises a surface pattern information of the first application.
16.根据权利要求14的方法,其中应用程序图形信息包括第一应用程序的呈现的图形信息。 16. The method according to claim 14, wherein the application information comprises graphical presentation of graphic information of the first application.
17.根据权利要求14的方法,其中,响应于用户对第二操作系统的菜单的菜单条目的选择,第二操作系统发起请求以便启动第一应用程序。 17. The method according to claim 14, wherein, in response to user selection of a menu of the second operating system menu items, the second operating system initiates a request to initiate a first application.
18.一种方法,包括: 通过第一操作系统从第二操作系统的控制台应用程序接收请求以启动被编译用于第一操作系统并且被加载到第一操作系统的第一执行环境内的第一应用程序,第一和第二操作系统在共享的内核上并发地运行; 在第一操作系统上的第一进程内运行第一应用程序,第一应用程序包括由第一操作系统的表面管理器保持的图形信息; 通过第一操作系统将控制台应用程序与第一操作系统的虚拟显示器标识符相关联;以及注册控制台应用程序以便接收第一应用程序的图形信息的刷新通知。 18. A method, comprising: receiving a request from a first operating system console application to start the second operating system to the first operating system is compiled and loaded into the first execution environment is the first operating system a first application, the first and second operating systems to run concurrently on the shared core; a first application running in a first process on a first operating system, application program comprises a first surface formed by a first operating system, graphics information manager held; the first operating system console application first operating system identifier associated with a virtual display; console application and registration to receive graphics information of the first application refresh notification.
19.根据权利要求18的方法,还包括: 通过表面管理器呈现第一操作系统的帧缓冲存储器中的图形帧;以及如果第一应用程序的图形信息被更新,则向控制台应用程序进行通知。 And if the graphic information of the first application program is updated, notifies the console application; presenting a first operating system of the graphics frame buffer memory through the surface of the frame manager: 19. The method according to claim 18, further comprising .
CN201180058005.4A 2010-10-01 2011-09-29 Redirect Cross-Environment CN103329094B (en)

Priority Applications (15)

Application Number Priority Date Filing Date Title
US38911710P true 2010-10-01 2010-10-01
US61/389,117 2010-10-01
US201161507206P true 2011-07-13 2011-07-13
US201161507209P true 2011-07-13 2011-07-13
US201161507203P true 2011-07-13 2011-07-13
US201161507199P true 2011-07-13 2011-07-13
US201161507201P true 2011-07-13 2011-07-13
US61/507,203 2011-07-13
US61/507,209 2011-07-13
US61/507,201 2011-07-13
US61/507,206 2011-07-13
US61/507,199 2011-07-13
US13/247,166 US8683496B2 (en) 2010-10-01 2011-09-28 Cross-environment redirection
US13/247,166 2011-09-28
PCT/US2011/053909 WO2012044784A2 (en) 2010-10-01 2011-09-29 Cross-environment redirection

Publications (2)

Publication Number Publication Date
CN103329094A true CN103329094A (en) 2013-09-25
CN103329094B CN103329094B (en) 2017-02-15

Family

ID=45889363

Family Applications (7)

Application Number Title Priority Date Filing Date
CN201180057951.7A CN103262057B (en) 2010-10-01 2011-09-23 Cross-environment communications framework
CN201710164946.5A CN107122168A (en) 2010-10-01 2011-09-23 Multi-operating system
CN201180057432.0A CN103229156B (en) 2010-10-01 2011-09-23 Multiple operating system environments automatic docking system configuration
CN201180057862.2A CN103282875B (en) 2010-10-01 2011-09-23 Multiple operating systems
CN201180058005.4A CN103329094B (en) 2010-10-01 2011-09-29 Redirect Cross-Environment
CN201180057364.8A CN103493010B (en) 2010-10-01 2011-10-03 Cross-environment event notification
CN201180057454.7A CN103370689B (en) 2010-10-01 2011-10-03 Cross-compatible environments

Family Applications Before (4)

Application Number Title Priority Date Filing Date
CN201180057951.7A CN103262057B (en) 2010-10-01 2011-09-23 Cross-environment communications framework
CN201710164946.5A CN107122168A (en) 2010-10-01 2011-09-23 Multi-operating system
CN201180057432.0A CN103229156B (en) 2010-10-01 2011-09-23 Multiple operating system environments automatic docking system configuration
CN201180057862.2A CN103282875B (en) 2010-10-01 2011-09-23 Multiple operating systems

Family Applications After (2)

Application Number Title Priority Date Filing Date
CN201180057364.8A CN103493010B (en) 2010-10-01 2011-10-03 Cross-environment event notification
CN201180057454.7A CN103370689B (en) 2010-10-01 2011-10-03 Cross-compatible environments

Country Status (7)

Country Link
US (9) US9077731B2 (en)
EP (3) EP2622490B1 (en)
JP (1) JP2013542515A (en)
CN (7) CN103262057B (en)
BR (1) BR112013007809A2 (en)
MX (1) MX2013003427A (en)
WO (13) WO2012044539A2 (en)

Families Citing this family (199)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9389877B2 (en) 2009-07-20 2016-07-12 Google Technology Holdings LLC Multi-environment operating system
US9348633B2 (en) 2009-07-20 2016-05-24 Google Technology Holdings LLC Multi-environment operating system
US9367331B2 (en) 2009-07-20 2016-06-14 Google Technology Holdings LLC Multi-environment operating system
US9372711B2 (en) 2009-07-20 2016-06-21 Google Technology Holdings LLC System and method for initiating a multi-environment operating system
KR101263217B1 (en) * 2009-10-15 2013-05-10 한국전자통신연구원 The mobile terminal and its method of operation for the mobile cloud services
US8719776B2 (en) * 2009-12-30 2014-05-06 Foneclay, Inc. System for creation and distribution of software applications usable on multiple mobile device platforms
US9047102B2 (en) 2010-10-01 2015-06-02 Z124 Instant remote rendering
US8819705B2 (en) 2010-10-01 2014-08-26 Z124 User interaction support across cross-environment applications
US9116786B2 (en) 2011-11-16 2015-08-25 Flextronics Ap, Llc On board vehicle networking module
US9152582B2 (en) 2010-10-01 2015-10-06 Z124 Auto-configuration of a docked system in a multi-OS environment
US9372618B2 (en) 2010-10-01 2016-06-21 Z124 Gesture based application management
US8990712B2 (en) 2011-08-24 2015-03-24 Z124 Unified desktop triad control user interface for file manager
US8966379B2 (en) 2010-10-01 2015-02-24 Z124 Dynamic cross-environment application configuration/orientation in an active user environment
US9715252B2 (en) 2011-08-24 2017-07-25 Z124 Unified desktop docking behavior for window stickiness
US8933949B2 (en) 2010-10-01 2015-01-13 Z124 User interaction across cross-environment applications through an extended graphics context
US8726294B2 (en) 2010-10-01 2014-05-13 Z124 Cross-environment communication using application space API
WO2012044539A2 (en) 2010-10-01 2012-04-05 Imerj, Llc Multi-operating system
US9405459B2 (en) 2011-08-24 2016-08-02 Z124 Unified desktop laptop dock software operation
US9173100B2 (en) 2011-11-16 2015-10-27 Autoconnect Holdings Llc On board vehicle network security
US8761831B2 (en) 2010-10-15 2014-06-24 Z124 Mirrored remote peripheral interface
US9622278B2 (en) 2010-10-26 2017-04-11 Kingston Digital Inc. Dual-mode wireless networked device interface and automatic configuration thereof
US20120113091A1 (en) * 2010-10-29 2012-05-10 Joel Solomon Isaacson Remote Graphics
KR101027971B1 (en) * 2010-12-10 2011-04-13 (주)헬릭스테크 Mobile communication terminal capable of testing application and method thereof
US8682962B2 (en) * 2010-12-24 2014-03-25 Levono (Singapore) Pte. Ltd. Systems and methods for communicating and switching between components in a hybrid computing environment
US8782258B2 (en) * 2011-01-04 2014-07-15 Motorola Mobility Llc Transferring web data between operating system environments
US20120173986A1 (en) * 2011-01-04 2012-07-05 Motorola-Mobility, Inc. Background synchronization within a multi-environment operating system
US8689235B2 (en) * 2011-01-18 2014-04-01 Gbc Industries System and method for enabling interaction between a cloud application and a local application
US8935318B1 (en) 2011-03-28 2015-01-13 Google Inc. Opportunistic job processing in a distributed computer environment
US9354900B2 (en) 2011-04-28 2016-05-31 Google Technology Holdings LLC Method and apparatus for presenting a window in a system having two operating system environments
US8812601B2 (en) * 2011-05-09 2014-08-19 Google Inc. Transferring application state across devices with checkpoints
US8171137B1 (en) 2011-05-09 2012-05-01 Google Inc. Transferring application state across devices
US8224894B1 (en) 2011-05-09 2012-07-17 Google Inc. Zero-click sharing of application context across devices
US10089093B1 (en) 2011-05-24 2018-10-02 BlueStack Systems, Inc. Apparatuses, systems and methods of switching operating systems
US8924958B1 (en) 2011-05-24 2014-12-30 BlueStack Systems, Inc. Application player
US8799412B2 (en) 2011-06-30 2014-08-05 Amazon Technologies, Inc. Remote browsing session management
US8706860B2 (en) 2011-06-30 2014-04-22 Amazon Technologies, Inc. Remote browsing session management
US8577963B2 (en) 2011-06-30 2013-11-05 Amazon Technologies, Inc. Remote browsing session between client browser and network based browser
US9621406B2 (en) 2011-06-30 2017-04-11 Amazon Technologies, Inc. Remote browsing session management
US9348626B2 (en) * 2011-08-05 2016-05-24 Vmware, Inc. Mobile device maintaining adequate security and data partitioning between user mode and business mode
US9037696B2 (en) 2011-08-16 2015-05-19 Amazon Technologies, Inc. Managing information associated with network resources
US20130076592A1 (en) 2011-09-27 2013-03-28 Paul E. Reeves Unified desktop docking behavior for visible-to-visible extension
US9529494B2 (en) 2011-09-27 2016-12-27 Z124 Unified desktop triad control user interface for a browser
US8990713B2 (en) 2011-09-27 2015-03-24 Z124 Unified desktop triad control user interface for an application manager
US9703468B2 (en) 2011-09-27 2017-07-11 Z124 Unified desktop independent focus in an application manager
US9268518B2 (en) 2011-09-27 2016-02-23 Z124 Unified desktop docking rules
US9678624B2 (en) 2011-09-27 2017-06-13 Z124 Unified desktop triad control user interface for a phone manager
US8570318B2 (en) 2011-08-25 2013-10-29 Intel Corporation Collaborative graphics rendering using mobile devices to support remote display
US9195768B2 (en) 2011-08-26 2015-11-24 Amazon Technologies, Inc. Remote browsing session management
US10089403B1 (en) 2011-08-31 2018-10-02 Amazon Technologies, Inc. Managing network based storage
US9781087B2 (en) 2011-09-09 2017-10-03 Kingston Digital, Inc. Private and secure communication architecture without utilizing a public cloud based routing server
US9203807B2 (en) 2011-09-09 2015-12-01 Kingston Digital, Inc. Private cloud server and client architecture without utilizing a routing server
US10237253B2 (en) 2011-09-09 2019-03-19 Kingston Digital, Inc. Private cloud routing server, private network service and smart device client architecture without utilizing a public cloud based routing server
KR101295428B1 (en) * 2011-09-09 2013-08-23 주식회사 팬택 Method and Apparatus
US9935930B2 (en) 2011-09-09 2018-04-03 Kingston Digital, Inc. Private and secure communication architecture without utilizing a public cloud based routing server
US8589385B2 (en) 2011-09-27 2013-11-19 Amazon Technologies, Inc. Historical browsing session management
US9152970B1 (en) 2011-09-27 2015-10-06 Amazon Technologies, Inc. Remote co-browsing session management
US9178955B1 (en) 2011-09-27 2015-11-03 Amazon Technologies, Inc. Managing network based content
US9641637B1 (en) 2011-09-27 2017-05-02 Amazon Technologies, Inc. Network resource optimization
US8914514B1 (en) 2011-09-27 2014-12-16 Amazon Technologies, Inc. Managing network based content
US9383958B1 (en) 2011-09-27 2016-07-05 Amazon Technologies, Inc. Remote co-browsing session management
US9298843B1 (en) * 2011-09-27 2016-03-29 Amazon Technologies, Inc. User agent information management
US9495012B2 (en) 2011-09-27 2016-11-15 Z124 Secondary single screen mode activation through user interface activation
US8849802B2 (en) 2011-09-27 2014-09-30 Amazon Technologies, Inc. Historical browsing session management
US8615431B1 (en) 2011-09-29 2013-12-24 Amazon Technologies, Inc. Network content message placement management
US9804864B1 (en) 2011-10-07 2017-10-31 BlueStack Systems, Inc. Method of mapping inputs and system thereof
US9313100B1 (en) 2011-11-14 2016-04-12 Amazon Technologies, Inc. Remote browsing session management
US8922393B2 (en) * 2011-11-16 2014-12-30 Flextronics Ap, Llc Parking meter expired alert
KR101844512B1 (en) * 2011-11-18 2018-05-21 삼성전자주식회사 Method for using an application, gateway using thereof, terminal using thereof, and terminal system using thereof
US8972477B1 (en) 2011-12-01 2015-03-03 Amazon Technologies, Inc. Offline browsing session management
JP5514794B2 (en) * 2011-12-05 2014-06-04 パナソニック株式会社 Information processing system
US9009334B1 (en) 2011-12-09 2015-04-14 Amazon Technologies, Inc. Remote browsing session management
US9117002B1 (en) 2011-12-09 2015-08-25 Amazon Technologies, Inc. Remote browsing session management
US9164544B2 (en) 2011-12-09 2015-10-20 Z124 Unified desktop: laptop dock, hardware configuration
US9330188B1 (en) 2011-12-22 2016-05-03 Amazon Technologies, Inc. Shared browsing sessions
GB201200080D0 (en) * 2012-01-04 2012-02-15 Talaris Ltd Automated banking machines
US9342181B2 (en) 2012-01-09 2016-05-17 Nvidia Corporation Touch-screen input/output device touch sensing techniques
US8938518B2 (en) 2012-01-16 2015-01-20 International Business Machines Corporation Transferring applications and session state to a secondary device
US9092405B1 (en) 2012-01-26 2015-07-28 Amazon Technologies, Inc. Remote browsing and searching
US9087024B1 (en) 2012-01-26 2015-07-21 Amazon Technologies, Inc. Narration of network content
US8839087B1 (en) 2012-01-26 2014-09-16 Amazon Technologies, Inc. Remote browsing and searching
US9509783B1 (en) 2012-01-26 2016-11-29 Amazon Technlogogies, Inc. Customized browser images
US8627195B1 (en) 2012-01-26 2014-01-07 Amazon Technologies, Inc. Remote browsing and searching
US9336321B1 (en) 2012-01-26 2016-05-10 Amazon Technologies, Inc. Remote browsing and searching
US9183258B1 (en) 2012-02-10 2015-11-10 Amazon Technologies, Inc. Behavior based processing of content
US9037975B1 (en) 2012-02-10 2015-05-19 Amazon Technologies, Inc. Zooming interaction tracking and popularity determination
CN103246463A (en) * 2012-02-13 2013-08-14 联想(北京)有限公司 Method for inputting information by input device, processing system and electronic equipment
US9137210B1 (en) 2012-02-21 2015-09-15 Amazon Technologies, Inc. Remote browsing session management
US10296558B1 (en) 2012-02-27 2019-05-21 Amazon Technologies, Inc. Remote generation of composite content pages
US9208316B1 (en) 2012-02-27 2015-12-08 Amazon Technologies, Inc. Selective disabling of content portions
US9374244B1 (en) 2012-02-27 2016-06-21 Amazon Technologies, Inc. Remote browsing session management
US20130244579A1 (en) * 2012-03-16 2013-09-19 Rapidblue Solutions Method of enabling proximity based connectivity between mobile devices using different operating systems
US9460220B1 (en) 2012-03-26 2016-10-04 Amazon Technologies, Inc. Content selection based on target device characteristics
US9307004B1 (en) 2012-03-28 2016-04-05 Amazon Technologies, Inc. Prioritized content transmission
EP2648096A1 (en) 2012-04-07 2013-10-09 Samsung Electronics Co., Ltd Method and system for controlling display device and computer-readable recording medium
US20130298140A1 (en) * 2012-05-02 2013-11-07 Motorola Mobility, Inc. Method and Apparatus for Displaying Data from a Plurality of Concurrent Operating System Environments
US9417753B2 (en) 2012-05-02 2016-08-16 Google Technology Holdings LLC Method and apparatus for providing contextual information between operating system environments
US20130311888A1 (en) * 2012-05-17 2013-11-21 Motorola Mobility, Inc. Arranging a Set of Panels in a First Application Environment Via Arrangement of the Set of Panels in a Second Application Environment for a Multi-Modal Device
US9342325B2 (en) * 2012-05-17 2016-05-17 Google Technology Holdings LLC Synchronizing launch-configuration information between first and second application environments that are operable on a multi-modal device
US9177533B2 (en) 2012-05-31 2015-11-03 Microsoft Technology Licensing, Llc Virtual surface compaction
US9804740B2 (en) 2012-06-06 2017-10-31 Apple Inc. Generating context-based options for responding to a notification
US9099031B2 (en) * 2012-06-15 2015-08-04 Apple Inc. Layout synchronization
JP2014010691A (en) * 2012-06-29 2014-01-20 Canon Inc Information processor, screen display method, and program
CN103544027B (en) * 2012-07-13 2017-05-24 联想(北京)有限公司 Control application update method and electronic equipment
US9743017B2 (en) * 2012-07-13 2017-08-22 Lattice Semiconductor Corporation Integrated mobile desktop
US9798508B2 (en) 2012-07-16 2017-10-24 Microsoft Technology Licensing, Llc Implementing previously rendered frame buffer information in a customized GUI display
US9184800B2 (en) 2012-07-16 2015-11-10 Google Inc. Automated sharing of application data over a near field communication link
US9823935B2 (en) * 2012-07-26 2017-11-21 Nvidia Corporation Techniques for latching input events to display flips
US9772979B1 (en) 2012-08-08 2017-09-26 Amazon Technologies, Inc. Reproducing user browsing sessions
US8943197B1 (en) 2012-08-16 2015-01-27 Amazon Technologies, Inc. Automated content update notification
US9307026B2 (en) * 2012-09-20 2016-04-05 Amazon Technologies, Inc. Fulfillment of applications to devices
US9390473B2 (en) * 2012-09-21 2016-07-12 Google Inc. Displaying applications on a fixed orientation display
US9772668B1 (en) 2012-09-27 2017-09-26 Cadence Design Systems, Inc. Power shutdown with isolation logic in I/O power domain
US9389884B2 (en) * 2012-10-11 2016-07-12 Google Technology Holdings LLC Method and apparatus for providing adaptive wallpaper display for a device having multiple operating system environments
US20140115606A1 (en) * 2012-10-24 2014-04-24 OpenMobile World Wide, Inc. Multi-platform mobile and other computing devices and methods
US20140156734A1 (en) * 2012-12-04 2014-06-05 Abalta Technologies, Inc. Distributed cross-platform user interface and application projection
US9513979B2 (en) * 2013-01-11 2016-12-06 Sap Se Mobile communication device providing interconnectivity between apps based on storage scope
US9148350B1 (en) 2013-03-11 2015-09-29 Amazon Technologies, Inc. Automated data synchronization
US9002982B2 (en) 2013-03-11 2015-04-07 Amazon Technologies, Inc. Automated desktop placement
US10142406B2 (en) 2013-03-11 2018-11-27 Amazon Technologies, Inc. Automated data center selection
US10313345B2 (en) 2013-03-11 2019-06-04 Amazon Technologies, Inc. Application marketplace for virtual desktops
US9526120B2 (en) 2013-03-15 2016-12-20 Google Inc. Techniques for context-based application invocation for short-range wireless communication interactions
US9569161B2 (en) * 2013-03-21 2017-02-14 Nec Corporation Remote visualization and control for virtual mobile infrastructure
US9342842B2 (en) * 2013-04-01 2016-05-17 Apple Inc. Context-switching taxonomy for mobile advertisement
US9325581B2 (en) * 2013-04-02 2016-04-26 International Business Machines Corporation Context-aware management of applications at the edge of a network
JP2016519824A (en) 2013-04-09 2016-07-07 サイトリックス システムズ,インコーポレイテッド The provision of native desktop through the use of cloud-synchronous data
CN103197533A (en) * 2013-04-11 2013-07-10 华为终端有限公司 Implementation method, device and electronic equipment of alarm clock in electronic equipment
US20140316841A1 (en) * 2013-04-23 2014-10-23 Kofax, Inc. Location-based workflows and services
KR20140127123A (en) * 2013-04-24 2014-11-03 삼성전자주식회사 Apparatus and method for notifying information of security in electric device and computer-readable recording medium for the same
CN103281186B (en) * 2013-05-08 2016-02-03 上海众人网络安全技术有限公司 Based on the dynamic token android system, trading systems and methods
CN103309657A (en) * 2013-05-17 2013-09-18 北京小米科技有限责任公司 Method, device and equipment for exchanging mobile equipment ring voice frequency
US9225799B1 (en) * 2013-05-21 2015-12-29 Trend Micro Incorporated Client-side rendering for virtual mobile infrastructure
US9300720B1 (en) * 2013-05-21 2016-03-29 Trend Micro Incorporated Systems and methods for providing user inputs to remote mobile operating systems
US20140351833A1 (en) * 2013-05-26 2014-11-27 Min-Lee Teng Multi-computing environment operating on a single native operating system
US10021180B2 (en) 2013-06-04 2018-07-10 Kingston Digital, Inc. Universal environment extender
US9578137B1 (en) 2013-06-13 2017-02-21 Amazon Technologies, Inc. System for enhancing script execution performance
US10152463B1 (en) 2013-06-13 2018-12-11 Amazon Technologies, Inc. System for profiling page browsing interactions
KR20150003563A (en) * 2013-07-01 2015-01-09 삼성전자주식회사 Mobile device and Method for controlling network transfer of the mobile device
CN103401896B (en) * 2013-07-15 2016-06-22 四川公用信息产业有限责任公司 A multi-Android client service method and system for sharing
CN103401941B (en) * 2013-08-09 2017-02-08 广东威创视讯科技股份有限公司 Gis one kind of scene information processing method, system, and server nodes machine
KR20150026109A (en) * 2013-08-30 2015-03-11 삼성전자주식회사 Multiple-display method, machine-readable storage medium and electronic device
US9823728B2 (en) 2013-09-04 2017-11-21 Nvidia Corporation Method and system for reduced rate touch scanning on an electronic device
CN104516703B (en) * 2013-09-30 2018-02-16 中国电信股份有限公司 Way to achieve virtual desktop screen resolution on Andrews automatic adaptation of terminals and systems
US9881592B2 (en) 2013-10-08 2018-01-30 Nvidia Corporation Hardware overlay assignment
GB2520041A (en) * 2013-11-07 2015-05-13 Ibm Automated multimedia content editing
US9507470B2 (en) 2013-12-16 2016-11-29 Nvidia Corporation Method and system for reduced power touch input detection on an electronic device using reduced scanning
TWI526849B (en) * 2013-12-31 2016-03-21 Insyde Software Corp
KR20160130785A (en) 2014-02-27 2016-11-14 오픈모바일 월드 와이드, 인크 In-process trapping for service substitution in hosted applicaitons executing on mobile devices with multi operating system environment
CN103902390B (en) * 2014-03-12 2017-04-19 深圳创维-Rgb电子有限公司 Based Android application layer interprocess communication method and a communication system based Applications
US10140118B2 (en) * 2014-03-19 2018-11-27 Huawei Device (Dongguan) Co., Ltd. Application data synchronization method and apparatus
US9898520B2 (en) 2014-03-25 2018-02-20 Open Text Sa Ulc Systems and methods for seamless access to remotely managed documents using synchronization of locally stored documents
EP3137981A4 (en) * 2014-04-30 2017-12-06 Hewlett-Packard Development Company, L.P. Multi architecture manager
US9785309B2 (en) * 2014-05-08 2017-10-10 Socialtopias, Llc Method and apparatus for providing a layered webpage
US9189264B1 (en) * 2014-06-09 2015-11-17 Western Digital Technologies, Inc. Notification propagation in virtual computing environment
US9635041B1 (en) 2014-06-16 2017-04-25 Amazon Technologies, Inc. Distributed split browser content inspection and analysis
US20150373483A1 (en) * 2014-06-23 2015-12-24 Qualcomm Incorporated Methods, apparatus, and computer-readable medium for providing alternate visualization via wireless docking
US10303531B2 (en) * 2014-07-28 2019-05-28 Red Hat, Inc. Console application through web service
CN106462369A (en) * 2014-07-31 2017-02-22 惠普发展公司有限责任合伙企业 Display of multiple instances
JP2016035706A (en) * 2014-08-04 2016-03-17 パナソニックIpマネジメント株式会社 Display device, display control method and display control program
JP2016035705A (en) * 2014-08-04 2016-03-17 パナソニックIpマネジメント株式会社 Display device, display control method and display control program
TWI502296B (en) * 2014-08-27 2015-10-01 Hiwin Tech Corp Teaching device for robot
CN105487845B (en) * 2014-09-18 2018-08-31 联想(北京)有限公司 Information processing method, and electronic equipment
US20160088079A1 (en) * 2014-09-21 2016-03-24 Alcatel Lucent Streaming playout of media content using interleaved media players
US20160085348A1 (en) * 2014-09-23 2016-03-24 UV Networks, Inc. Application host with distributed remote input and output interfaces
US20160085738A1 (en) * 2014-09-24 2016-03-24 Microsoft Technology Licensing, Llc Cloud-Based Parallel Computation Using Actor Modules
CN104317414A (en) * 2014-09-25 2015-01-28 北京云巢动脉科技有限公司 Method and system for realizing Chinese input in mobile terminal virtual machine
JP6078515B2 (en) * 2014-11-13 2017-02-08 京セラドキュメントソリューションズ株式会社 Electronic equipment and programs
CN104410909B (en) * 2014-11-28 2018-01-09 江苏银河电子股份有限公司 Linux system software modules to use in TVOS system
CN104536869B (en) * 2014-12-12 2017-09-12 华为技术有限公司 Mobile terminal and resource management
US9928021B2 (en) 2014-12-30 2018-03-27 Qualcomm Incorporated Dynamic selection of content for display on a secondary display device
CN104572943B (en) * 2014-12-30 2018-05-08 北京奇虎科技有限公司 Cleanup Method and apparatus for free installation
CN107111570A (en) * 2015-01-30 2017-08-29 惠普发展公司有限责任合伙企业 Computer system to continuously maintain a user session when a display device is mechanically connected and disconnected
CN104731721B (en) * 2015-02-10 2019-07-16 深圳酷派技术有限公司 A kind of display sharing method and device of memory
CN104657213B (en) * 2015-02-13 2018-04-10 深圳酷派技术有限公司 A system and method for inter-switching terminal application
US9572104B2 (en) 2015-02-25 2017-02-14 Microsoft Technology Licensing, Llc Dynamic adjustment of user experience based on system capabilities
CN104796529B (en) * 2015-03-05 2018-05-15 宇龙计算机通信科技(深圳)有限公司 Method and system-based reminders unprocessed event of dual system
CN104750492B (en) * 2015-03-31 2018-01-19 广东欧珀移动通信有限公司 Based power control method of a mobile device embedded operating system and device
CN105577906B (en) * 2015-04-08 2019-06-11 宇龙计算机通信科技(深圳)有限公司 A kind of reminding method and device of multisystem terminal notification message
US20190121682A1 (en) * 2015-04-26 2019-04-25 Intel Corporation Integrated android and windows device
CN106327139A (en) * 2015-06-17 2017-01-11 派斡信息技术(上海)有限公司 Method for combination work of unified elements in workspace and product thereof
US20180205983A1 (en) * 2015-07-02 2018-07-19 Lg Electronics Inc. Image display apparatus and mobile terminal
US10261985B2 (en) 2015-07-02 2019-04-16 Microsoft Technology Licensing, Llc Output rendering in dynamic redefining application
US10198252B2 (en) 2015-07-02 2019-02-05 Microsoft Technology Licensing, Llc Transformation chain application splitting
US20170010758A1 (en) * 2015-07-08 2017-01-12 Microsoft Technology Licensing, Llc Actuator module for building application
US10198405B2 (en) 2015-07-08 2019-02-05 Microsoft Technology Licensing, Llc Rule-based layout of changing information
US10031724B2 (en) 2015-07-08 2018-07-24 Microsoft Technology Licensing, Llc Application operation responsive to object spatial status
WO2017043849A1 (en) * 2015-09-08 2017-03-16 엘지이노텍 주식회사 Dual camera module and optical device
US10083614B2 (en) 2015-10-22 2018-09-25 Drone Traffic, Llc Drone alerting and reporting system
KR20170055162A (en) * 2015-11-11 2017-05-19 삼성전자주식회사 Electronic device and method of controlling thereof
CN105426191B (en) * 2015-11-23 2019-01-18 深圳创维-Rgb电子有限公司 user interface display processing method and device
US10326822B2 (en) 2015-12-03 2019-06-18 Google Llc Methods, systems and media for presenting a virtual operating system on a display device
CN105404558B (en) * 2015-12-11 2019-07-09 北京元心科技有限公司 The method and device of event handling in multisystem
CN105763453B (en) * 2016-02-04 2019-05-07 新华三技术有限公司 A kind of message processing method and device
CN105791567B (en) * 2016-02-29 2019-05-14 宇龙计算机通信科技(深圳)有限公司 A kind of information storage means and multisystem mobile terminal
CN105704341A (en) * 2016-03-28 2016-06-22 努比亚技术有限公司 Ring playing method and terminal
CN107291561A (en) * 2016-03-31 2017-10-24 阿里巴巴集团控股有限公司 Graphic synthesis method and system and information interaction method and system
KR20170138759A (en) * 2016-06-08 2017-12-18 삼성전자주식회사 method and apparatus for providing composition screen by composing the execution window of a plurality of the operating system
WO2017219362A1 (en) * 2016-06-24 2017-12-28 阿贝尔环球国际有限公司 Terminal device and terminal operating system thereof, cloud device and cloud operating system thereof
CN106445702A (en) * 2016-09-21 2017-02-22 乐视控股(北京)有限公司 Multi-system communication method and terminal
KR20180046791A (en) * 2016-10-28 2018-05-09 삼성전자주식회사 Electronic device and data transfer method thereof

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5874960A (en) * 1995-07-05 1999-02-23 Microsoft Corporation Method and system for sharing applications between computer systems
US6091414A (en) * 1996-10-31 2000-07-18 International Business Machines Corporation System and method for cross-environment interaction in a computerized graphical interface environment
US7284203B1 (en) * 1999-07-27 2007-10-16 Verizon Laboratories Inc. Method and apparatus for application sharing interface
CN101770399A (en) * 2009-01-05 2010-07-07 联想(北京)有限公司 Electronic equipment, method and device for switching operating system desktop
US20100251233A1 (en) * 2009-03-25 2010-09-30 Honeywell International Inc. Embedded computing system user interface emulated on a separate computing device

Family Cites Families (259)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4207551A (en) * 1976-03-12 1980-06-10 Hans Kautzky Pressure transducer
US5396630A (en) * 1992-10-06 1995-03-07 International Business Machines Corporation Method and system for object management across process boundries in a data processing system
US5673403A (en) 1992-11-13 1997-09-30 International Business Machines Corporation Method and system for displaying applications of different operating systems on a single system using the user interface of the different operating systems
JPH06301555A (en) * 1993-02-26 1994-10-28 Internatl Business Mach Corp <Ibm> System for plural coexisting operating system personalities on micro-kernel
US5956030A (en) 1993-06-11 1999-09-21 Apple Computer, Inc. Computer system with graphical user interface including windows having an identifier within a control region on the display
JP3437238B2 (en) * 1994-02-04 2003-08-18 キヤノン株式会社 A computer, a computer system and control method thereof
JPH08212086A (en) * 1994-09-30 1996-08-20 Microsoft Corp Operating system for office machine and method therefor
JPH08115144A (en) * 1994-10-17 1996-05-07 Toshiba Corp Separation type work station device
US6108715A (en) 1994-12-13 2000-08-22 Microsoft Corporation Method and system for invoking remote procedure calls
CA2173695A1 (en) 1995-04-14 1996-10-15 Panagiotis Kougiouris Method and system for providing interoperability among processes written to execute on different operating systems
US6260075B1 (en) 1995-06-19 2001-07-10 International Business Machines Corporation System and method for providing shared global offset table for common shared library in a computer system
JPH0926769A (en) 1995-07-10 1997-01-28 Hitachi Ltd Picture display device
US6477585B1 (en) 1995-08-18 2002-11-05 International Business Machines Corporation Filter mechanism for an event management service
US5874928A (en) 1995-08-24 1999-02-23 Philips Electronics North America Corporation Method and apparatus for driving a plurality of displays simultaneously
US6018340A (en) 1997-01-27 2000-01-25 Microsoft Corporation Robust display management in a multiple monitor environment
US6157959A (en) 1997-07-03 2000-12-05 Tandem Computers, Incorporated Method and apparatus for providing portable kernel-mode support for fast interprocess communication
US5846257A (en) * 1997-08-15 1998-12-08 Nexus Medical System, Inc. Llc Pressure sensor for a surgical system
US6381682B2 (en) 1998-06-10 2002-04-30 Compaq Information Technologies Group, L.P. Method and apparatus for dynamically sharing memory in a multiprocessor system
US6178503B1 (en) 1998-09-11 2001-01-23 Powerquest Corporation Managing multiple operating systems on a single computer
US6507336B1 (en) 1999-02-04 2003-01-14 Palm, Inc. Keyboard for a handheld computer
US7334235B2 (en) 1999-06-16 2008-02-19 Microsoft Corporation Operating system application programming interfaces and methods of using operating systems
US6460136B1 (en) * 1999-07-12 2002-10-01 Hewlett-Packard Co., Method and apparatus for loading an operating system kernel from a shared disk memory
US7007240B1 (en) 1999-08-03 2006-02-28 Gateway Inc. Method and system for displaying non-overlapping program and auxiliary windows
AU7357900A (en) 1999-09-20 2001-04-24 Neopoint, Inc. Automatic device synchronization apparatus and method using battery pack for data exchange
US20100005396A1 (en) 2000-02-18 2010-01-07 Nason D David Method and system for controlling a comlementary user interface on a display surface
JP4395223B2 (en) 1999-09-24 2010-01-06 株式会社ザナヴィ・インフォマティクス Display device, a display method, and a navigation device
US6917963B1 (en) 1999-10-05 2005-07-12 Veritas Operating Corporation Snapshot image for the application state of unshareable and shareable data
US20080062625A1 (en) 1999-10-18 2008-03-13 Jeffrey Batio Portable computer for dual, rotatable screens
KR100679809B1 (en) 1999-12-28 2007-02-07 안순신 Communication apparatus and method between distributed objects
JP2001209466A (en) * 2000-01-26 2001-08-03 Internatl Business Mach Corp <Ibm> Control method for computer, computer and recording medium
JP4402797B2 (en) 2000-03-02 2010-01-20 株式会社ザナヴィ・インフォマティクス The information processing apparatus
US7478341B2 (en) 2000-04-19 2009-01-13 Broadcom Corporation Apparatus and method for persistent display interface
US20020158811A1 (en) 2000-06-02 2002-10-31 Davis Terry Glenn Dual-monitor duo-workpad TM device
US7210099B2 (en) 2000-06-12 2007-04-24 Softview Llc Resolution independent vector display of internet content
JP5081345B2 (en) 2000-06-13 2012-11-28 富士フイルム株式会社 Method of manufacturing a photoelectric conversion element
EP1298624A4 (en) 2000-06-20 2004-10-13 Hitachi Ltd Vehicle control device
US6728722B1 (en) 2000-08-28 2004-04-27 Sun Microsystems, Inc. General data structure for describing logical data spaces
GB0028890D0 (en) 2000-11-27 2001-01-10 Isis Innovation Visual display screen arrangement
US6608629B2 (en) * 2001-03-16 2003-08-19 Mitsubishi Electric Research Laboratories, Inc. Distance based constraints for adaptively sampled distance fields
TW502210B (en) * 2001-04-19 2002-09-11 Asustek Comp Inc Computer system capable of switching operating system
US6961941B1 (en) 2001-06-08 2005-11-01 Vmware, Inc. Computer configuration for resource management in systems including a virtual machine
US7173627B2 (en) 2001-06-29 2007-02-06 Intel Corporation Apparatus, method and system with a graphics-rendering engine having a graphics context manager
US20030017417A1 (en) 2001-07-23 2003-01-23 Goodin Jonathan William Method for obtaining a lithographic printing surface using a metal complex
US20030020954A1 (en) 2001-07-26 2003-01-30 Charlie Udom Versatile printing from portable electronic device
US6970173B2 (en) 2001-09-14 2005-11-29 Ati Technologies, Inc. System for providing multiple display support and method thereof
US7013464B2 (en) 2001-10-17 2006-03-14 Beptech, Inc. Method of communicating across an operating system
US20030079205A1 (en) 2001-10-22 2003-04-24 Takeshi Miyao System and method for managing operating systems
JP2003196096A (en) * 2001-12-07 2003-07-11 Internatl Business Mach Corp <Ibm> Computer system, its starting control method and program
US20030115443A1 (en) 2001-12-18 2003-06-19 Cepulis Darren J. Multi-O/S system and pre-O/S boot technique for partitioning resources and loading multiple operating systems thereon
US7143417B2 (en) 2002-01-10 2006-11-28 International Business Machines Corporation Notification services within a unified communications service
KR20040091106A (en) 2002-03-08 2004-10-27 미쓰비시덴키 가부시키가이샤 Mobile communication device, display control method of mobile communication device, and program therefor
US20030226116A1 (en) 2002-03-08 2003-12-04 Katie Kuwata Method and system for implementing a historical buffer
US20030179541A1 (en) 2002-03-21 2003-09-25 Peter Sullivan Double screen portable computer
FR2840082B1 (en) * 2002-05-24 2006-04-07 Bull Sa Method for exchange of information between operating systems coexisting on the same computer
GB2394799B (en) 2002-07-31 2006-01-25 Hewlett Packard Co Improvements relating to mobile printing
US20070022155A1 (en) 2002-08-22 2007-01-25 Owens David H Method and system for integrating enterprise software applications with desktop software applications
WO2004028010A1 (en) 2002-09-17 2004-04-01 Si Han Kim Multi display device
US7176943B2 (en) 2002-10-08 2007-02-13 Microsoft Corporation Intelligent windows bumping method and system
CN1262921C (en) * 2002-12-27 2006-07-05 联想(北京)有限公司 Method for starting computer operation system
US8508643B2 (en) 2003-01-17 2013-08-13 Hewlett-Packard Development Company, L.P. Method and system for processing an image
US7266774B2 (en) 2003-01-23 2007-09-04 International Business Machines Corporation Implementing a second computer system as an interface for first computer system
US6990573B2 (en) * 2003-02-05 2006-01-24 Dell Products L.P. System and method for sharing storage to boot multiple servers
US7461080B1 (en) * 2003-05-09 2008-12-02 Sun Microsystems, Inc. System logging within operating system partitions using log device nodes that are access points to a log driver
US7389512B2 (en) 2003-05-09 2008-06-17 Sun Microsystems, Inc. Interprocess communication within operating system partitions
US7167974B2 (en) * 2003-05-19 2007-01-23 Hewlett-Packard Development Company, L.P. Multiple saved kernel configurations
EP1503286B1 (en) * 2003-07-30 2014-09-03 Jaluna SA Multiple operating system networking
US7152186B2 (en) 2003-08-04 2006-12-19 Arm Limited Cross-triggering of processing devices
JP4149483B2 (en) 2003-08-21 2008-09-10 アルプス電気株式会社 Electronics
US7181251B2 (en) 2003-10-22 2007-02-20 Nokia Corporation Mobile communication terminal with multi orientation user interface
TW200525421A (en) 2004-01-30 2005-08-01 Intervideo Digital Technology Corp Structure of shared application program in operating system and method thereof
US7483991B2 (en) 2004-03-25 2009-01-27 Microsoft Corporation Instant messaging communications channel for transporting data between objects executing within a managed code environment
JP2005305867A (en) 2004-04-22 2005-11-04 Seiko Epson Corp Image processing system, image display device, printer, and method for printing
US7478204B2 (en) * 2004-04-29 2009-01-13 International Business Machines Corporation Efficient sharing of memory between applications running under different operating systems on a shared hardware system
US20060031572A1 (en) 2004-05-18 2006-02-09 Microsoft Corporation Event broker
JP2005346244A (en) 2004-06-01 2005-12-15 Nec Corp Information display unit and operation method therefor
US20070182663A1 (en) 2004-06-01 2007-08-09 Biech Grant S Portable, folding and separable multi-display computing system
KR100578592B1 (en) * 2004-06-23 2006-05-12 공정배 System and method for providing the different operating system based terminal service client
US7996785B2 (en) 2004-06-30 2011-08-09 Microsoft Corporation Systems and methods for integrating application windows in a virtual machine environment
CN100576175C (en) * 2004-07-06 2009-12-30 茵姆拜迪欧有限公司 Method and system for concurrent execution of multiple kernels
US7424601B2 (en) 2004-07-07 2008-09-09 Yongyong Xu Methods and systems for running multiple operating systems in a single mobile device
US20060058658A1 (en) * 2004-09-13 2006-03-16 Siemens Medical Solutions Usa, Inc. Communications between co-located operating systems for medical diagnostic ultrasound and other systems
US7489503B2 (en) 2004-09-21 2009-02-10 Nokia Corporation Foldable electronic device
US20060082581A1 (en) 2004-10-14 2006-04-20 Microsoft Corporation Encoding for remoting graphics to decoder device
EP1811750A4 (en) 2004-11-09 2009-07-08 Sharp Kk Portable information terminal
US7290114B2 (en) 2004-11-17 2007-10-30 Intel Corporation Sharing data in a user virtual address range with a kernel virtual address range
US20060111921A1 (en) 2004-11-23 2006-05-25 Hung-Yang Chang Method and apparatus of on demand business activity management using business performance management loops
EP1662760A1 (en) 2004-11-30 2006-05-31 Sony Ericsson Mobile Communications AB Method for providing alerts in a mobile device and mobile device therefor
JP4738805B2 (en) 2004-12-16 2011-08-03 株式会社リコー Screen sharing system, screen sharing method, screen-sharing program
US20060139862A1 (en) 2004-12-23 2006-06-29 Yajun Wang Hinged electronic device with hinged screen
KR100616157B1 (en) 2005-01-11 2006-08-28 와이더댄 주식회사 Method and syetem for interworking plurality of applications
TWI267752B (en) * 2005-01-17 2006-12-01 Lite On Technology Corp Multi-mode computer system and operating method thereof
US20060183505A1 (en) 2005-02-15 2006-08-17 Willrich Scott Consulting Group, Inc. Digital mobile planner
US7289084B2 (en) 2005-02-22 2007-10-30 John Michael Lesniak Computer display apparatus
GB0504326D0 (en) 2005-03-02 2005-04-06 Symbian Software Ltd Dual mode operating system for a computing device
US20060248471A1 (en) 2005-04-29 2006-11-02 Microsoft Corporation System and method for providing a window management mode
US7565535B2 (en) 2005-05-06 2009-07-21 Microsoft Corporation Systems and methods for demonstrating authenticity of a virtual machine using a security image
US8195624B2 (en) 2005-06-30 2012-06-05 Phoenix Technologies Ltd. Shared file system management between independent operating systems
US7950008B2 (en) 2005-07-06 2011-05-24 International Business Machines Corporation Software installation in multiple operating systems
US7870558B2 (en) 2005-07-15 2011-01-11 Microsoft Corporation Handle passing using an inter-process communication
US20070283324A1 (en) * 2005-08-30 2007-12-06 Geisinger Nile J System and method for creating programs that comprise several execution layers
US20070050770A1 (en) * 2005-08-30 2007-03-01 Geisinger Nile J Method and apparatus for uniformly integrating operating system resources
US20070074191A1 (en) * 2005-08-30 2007-03-29 Geisinger Nile J Software executables having virtual hardware, operating systems, and networks
US20070050765A1 (en) * 2005-08-30 2007-03-01 Geisinger Nile J Programming language abstractions for creating and controlling virtual computers, operating systems and networks
US20070067769A1 (en) 2005-08-30 2007-03-22 Geisinger Nile J Method and apparatus for providing cross-platform hardware support for computer platforms
US20070074192A1 (en) * 2005-08-30 2007-03-29 Geisinger Nile J Computing platform having transparent access to resources of a host platform
US20070050751A1 (en) 2005-08-31 2007-03-01 Microsoft Corporation Automatic interoperation with legacy POS service and control objects
US7844301B2 (en) 2005-10-14 2010-11-30 Lg Electronics Inc. Method for displaying multimedia contents and mobile communications terminal capable of implementing the same
US9189291B2 (en) * 2005-12-12 2015-11-17 International Business Machines Corporation Sharing a kernel of an operating system among logical partitions
US20070136356A1 (en) 2005-12-12 2007-06-14 Microsoft Corporation Mechanism for drivers to create alternate namespaces
WO2007074697A1 (en) 2005-12-26 2007-07-05 Ibm Japan, Ltd. Method, program, and data processing system for operating display of display objects
KR20070082691A (en) * 2006-02-17 2007-08-22 삼성전자주식회사 Digital multimedia device
JP2007226413A (en) * 2006-02-22 2007-09-06 Hitachi Ltd Memory dump method, memory dump program and computer system
US7595810B2 (en) * 2006-03-22 2009-09-29 Apple Inc. Methods of manipulating a screen space of a display device
FR2899755B1 (en) 2006-04-10 2008-10-10 Streamezzo Sa Method for adaptive restitution of at least one multimedia on a steerable content display device of a terminal
US7987432B1 (en) * 2006-04-25 2011-07-26 Parallels Holdings, Ltd. Seamless integration and installation of non-native application into native operating system
US20080282181A1 (en) 2006-05-02 2008-11-13 Siemens Medical Solutions Usa, Inc. Executable Application Configuration Information Processing System
KR100772875B1 (en) 2006-05-22 2007-11-02 삼성전자주식회사 Apparatus and method for setting user interface according to user preference
US9201703B2 (en) 2006-06-07 2015-12-01 International Business Machines Corporation Sharing kernel services among kernels
US7880728B2 (en) 2006-06-29 2011-02-01 Microsoft Corporation Application switching via a touch screen interface
US20080024388A1 (en) 2006-07-29 2008-01-31 Oscar Bruce Two-sided display monitor apparatus
US9019300B2 (en) 2006-08-04 2015-04-28 Apple Inc. Framework for graphics animation and compositing operations
KR100811794B1 (en) 2006-10-12 2008-03-10 삼성전자주식회사 Method for controlling of printer using bluetooth in mobile terminal
JP4933304B2 (en) 2006-10-16 2012-05-16 キヤノン株式会社 IMAGE PROCESSING APPARATUS, CONTROL METHOD AND PROGRAM
CN101529364A (en) 2006-10-27 2009-09-09 诺基亚公司 Method and apparatus for facilitating movement within a three dimensional graphical user interface
KR101144423B1 (en) 2006-11-16 2012-05-10 엘지전자 주식회사 Mobile phone and display method of the same
US20080119731A1 (en) 2006-11-20 2008-05-22 North American Medical Corporation Portable ultrasound with touch screen interface
US8332866B2 (en) 2006-11-29 2012-12-11 Qualcomm Incorporated Methods, systems, and apparatus for object invocation across protection domain boundaries
US8839105B2 (en) 2006-12-01 2014-09-16 International Business Machines Corporation Multi-display system and method supporting differing accesibility feature selection
US20080155103A1 (en) 2006-12-21 2008-06-26 Kimberly Tekavec Bailey AF UNIX Socket Across Systems in the Same Computer on Computer Systems that Support Multiple Operating System Images
JP5246388B2 (en) 2007-03-08 2013-07-24 日本電気株式会社 Virtual device configuration system and method
KR20080085780A (en) * 2007-03-20 2008-09-24 이상규 Method for virtualizing operating system
US8789063B2 (en) 2007-03-30 2014-07-22 Microsoft Corporation Master and subordinate operating system kernels for heterogeneous multiprocessor systems
US9104494B2 (en) 2007-04-13 2015-08-11 Nec Corporation Virtual computer system and its optimization method
WO2008132760A2 (en) 2007-04-26 2008-11-06 Hewlett-Packard Development Company, L.P. Method and system for allocating memory in a computing environment
US8285259B2 (en) 2007-05-29 2012-10-09 Microsoft Corporation Resource aggregation in an opportunistic network
US8004493B2 (en) 2007-06-08 2011-08-23 Apple Inc. Methods and systems for providing sensory information to devices and peripherals
KR101320504B1 (en) 2007-07-10 2013-10-22 엘지전자 주식회사 Portable terminal
US8458612B2 (en) 2007-07-29 2013-06-04 Hewlett-Packard Development Company, L.P. Application management framework for web applications
TWI362612B (en) * 2007-09-05 2012-04-21 Htc Corp System and electronic device using multiple operating systems and operating method thereof
CA2849484A1 (en) * 2007-09-20 2009-03-26 David A. Peterson Computer system with multiple terminals
US9003173B2 (en) 2007-09-28 2015-04-07 Microsoft Technology Licensing, Llc Multi-OS (operating system) boot via mobile device
GB2454032A (en) 2007-10-24 2009-04-29 Plastic Logic Ltd Edgeless document viewer
US20090158299A1 (en) * 2007-10-31 2009-06-18 Carter Ernst B System for and method of uniform synchronization between multiple kernels running on single computer systems with multiple CPUs installed
KR100883208B1 (en) 2007-12-13 2009-02-13 성균관대학교산학협력단 Mobile communication terminal available to update software based on virtualization technology and updating method thereof
TWI358028B (en) 2007-12-25 2012-02-11 Htc Corp Electronic device capable of transferring object b
US20090176571A1 (en) 2008-01-07 2009-07-09 Ippasa, Llc System for and method of operating video game system with control actuator-equipped stylus
JP2011516936A (en) 2008-01-30 2011-05-26 グーグル・インコーポレーテッド Notification of a mobile device events
US7960945B1 (en) 2008-01-30 2011-06-14 Google Inc. Estimating remaining use time of a mobile device
US8195860B2 (en) * 2008-02-06 2012-06-05 Broadcom Corporation Computing device with handheld and extended computing devices
US20090198989A1 (en) * 2008-02-06 2009-08-06 Broadcom Corporation Bios for a computing device with handheld and extended computing units
US8151100B2 (en) * 2008-02-06 2012-04-03 Broadcom Corporation Operating system for a computing device with handheld and extended computing units
US20090198798A1 (en) * 2008-02-06 2009-08-06 Broadcom Corporation Handheld computing unit back-up system
US20090196280A1 (en) * 2008-02-06 2009-08-06 Broadcom Corporation Extension unit and handheld computing unit
US7895365B2 (en) * 2008-02-06 2011-02-22 Broadcom Corporation File storage for a computing device with handheld and extended computing units
US8064952B2 (en) * 2008-02-06 2011-11-22 Broadcom Corporation A/V control for a computing device with handheld and extended computing units
US7870321B2 (en) * 2008-02-06 2011-01-11 Broadcom Corporation Extended computing unit with stand-alone application
US20090197641A1 (en) * 2008-02-06 2009-08-06 Broadcom Corporation Computing device with handheld and extended computing units
CN101520745B (en) 2008-02-27 2012-03-28 联想(北京)有限公司 Data processing equipment and status switching method thereof
CN101526836A (en) 2008-03-03 2009-09-09 鸿富锦精密工业(深圳)有限公司;鸿海精密工业股份有限公司 Double-screen notebook
US20100164836A1 (en) 2008-03-11 2010-07-01 Truview Digital, Inc. Digital photo album, digital book, digital reader
US7930328B2 (en) 2008-03-31 2011-04-19 Lenovo (Singapore) Pte. Ltd. Apparatus, system, and method for file system sharing
EP2109080A1 (en) 2008-04-09 2009-10-14 IBBT vzw A method and device for processing and presenting medical images
WO2009126165A1 (en) 2008-04-11 2009-10-15 T-Mobile Usa, Inc. Digital picture frame having communication capabilities
US20090278806A1 (en) 2008-05-06 2009-11-12 Matias Gonzalo Duarte Extended touch-sensitive control area for electronic device
US7949633B1 (en) 2008-05-12 2011-05-24 Adobe Systems Incorporated Shared edit access of electronic content
AT504155T (en) 2008-05-29 2011-04-15 Lg Electronics Inc Show transparent and operational procedures for
US8230180B2 (en) 2008-06-11 2012-07-24 Samsung Electronics Co., Ltd. Shared memory burst communications
CA2715837A1 (en) 2008-06-12 2009-12-17 Canova Technologies Limited Dual screen display system
US8359372B2 (en) 2008-06-29 2013-01-22 Microsoft Corporation Automatic transfer of information through physical docking of devices
US20090322690A1 (en) 2008-06-30 2009-12-31 Nokia Corporation Screen display
CN102077160B (en) 2008-06-30 2014-06-18 日本电气株式会社 Information processing device and display control method
US20100007603A1 (en) 2008-07-14 2010-01-14 Sony Ericsson Mobile Communications Ab Method and apparatus for controlling display orientation
CN102099777B (en) 2008-07-25 2014-01-29 日本电气株式会社 The information processing apparatus and a display control method
US8191004B2 (en) 2008-08-06 2012-05-29 Microsoft Corporation User feedback correlated to specific user interface or application features
US20100046026A1 (en) 2008-08-21 2010-02-25 Samsung Electronics Co., Ltd. Image forming apparatus and image forming method
US8613394B2 (en) 2008-08-29 2013-12-24 The Invention Science Fund I, Llc Bendable electronic interface external control system and method
US8933874B2 (en) 2008-09-08 2015-01-13 Patrik N. Lundqvist Multi-panel electronic device
US8836611B2 (en) 2008-09-08 2014-09-16 Qualcomm Incorporated Multi-panel device with configurable interface
US9009984B2 (en) 2008-09-08 2015-04-21 Qualcomm Incorporated Multi-panel electronic device
US8165558B2 (en) * 2008-09-08 2012-04-24 Celio Technology Corporation Client device for cellular telephone as server
US8866840B2 (en) 2008-09-08 2014-10-21 Qualcomm Incorporated Sending a parameter based on screen size or screen resolution of a multi-panel electronic device to a server
US8860632B2 (en) 2008-09-08 2014-10-14 Qualcomm Incorporated Multi-panel device with configurable interface
US8803816B2 (en) 2008-09-08 2014-08-12 Qualcomm Incorporated Multi-fold mobile device with configurable interface
US20100060549A1 (en) 2008-09-11 2010-03-11 Ely Tsern Method and system for dynamically generating different user environments with secondary devices with displays of various form factors
CN102203850A (en) 2008-09-12 2011-09-28 格斯图尔泰克公司 Orienting displayed elements relative to a user
KR101501167B1 (en) 2008-10-20 2015-03-10 삼성전자주식회사 Apparatus and method for application of multi operating systems in multi modem mobile communication terminal
JP4935796B2 (en) 2008-10-30 2012-05-23 富士ゼロックス株式会社 Display control device, an image forming apparatus and program
US8352967B2 (en) 2008-11-10 2013-01-08 Google Inc. Safe browser plugins using native code modules
US9075457B2 (en) 2008-12-12 2015-07-07 Maxim Integrated Products, Inc. System and method for interfacing applications processor to touchscreen display for reduced data transfer
US7864524B2 (en) 2008-12-24 2011-01-04 Research In Motion Limited Multiple-fold portable electronic device
KR101569776B1 (en) 2009-01-09 2015-11-19 삼성전자주식회사 A portable terminal and methods for operating a folding display unit having
US8300022B2 (en) 2009-01-09 2012-10-30 International Business Machines Corporation Dynamically reconfigurable touch screen displays
KR20100083640A (en) 2009-01-14 2010-07-22 삼성전자주식회사 Display apparatus, scanner, display system and display method using the smae
KR101608748B1 (en) 2009-02-18 2016-04-21 삼성전자주식회사 Mobile device having detachable sub display
US20100211769A1 (en) * 2009-02-19 2010-08-19 Subramonian Shankar Concurrent Execution of a Smartphone Operating System and a Desktop Operating System
US20100217835A1 (en) * 2009-02-26 2010-08-26 Broadcom Corporation Dockable handheld computing device with file transfer and methods for use therewith
US7987309B2 (en) * 2009-02-26 2011-07-26 Broadcom Corporation Dockable handheld computing device with graphical user interface and methods for use therewith
US8090890B2 (en) * 2009-02-26 2012-01-03 Broadcom Corporation Dockable handheld computing device with video application and methods for use therewith
US8355755B2 (en) 2009-03-03 2013-01-15 Lg Electronics Inc. Mobile terminal
US8446377B2 (en) 2009-03-24 2013-05-21 Microsoft Corporation Dual screen portable touch sensitive computing system
US8630088B2 (en) * 2009-03-27 2014-01-14 Qualcomm Incorporated Portable docking station for a portable computing device
US8707061B2 (en) * 2009-03-27 2014-04-22 Qualcomm Incorporated System and method of providing scalable computing between a portable computing device and a portable computing device docking station
US8194001B2 (en) 2009-03-27 2012-06-05 Microsoft Corporation Mobile computer device display postures
US7864517B2 (en) 2009-03-30 2011-01-04 Microsoft Corporation Mobile computer device binding feedback
US8776088B2 (en) * 2009-03-30 2014-07-08 Microsoft Corporation Operating system distributed over heterogeneous platforms
CN102369504B (en) 2009-03-31 2016-10-26 日本电气株式会社 The portable terminal apparatus, a control method and a control program of the plurality of screen display
TWI400652B (en) 2009-06-11 2013-07-01 Insyde Software Corp
US20100321275A1 (en) 2009-06-18 2010-12-23 Microsoft Corporation Multiple display computing device with position-based operating modes
US8839422B2 (en) 2009-06-30 2014-09-16 George Mason Research Foundation, Inc. Virtual browsing environment
US9367331B2 (en) * 2009-07-20 2016-06-14 Google Technology Holdings LLC Multi-environment operating system
US9372711B2 (en) 2009-07-20 2016-06-21 Google Technology Holdings LLC System and method for initiating a multi-environment operating system
US9389877B2 (en) 2009-07-20 2016-07-12 Google Technology Holdings LLC Multi-environment operating system
US8868899B2 (en) 2009-07-20 2014-10-21 Motorola Mobility Llc System and method for switching between environments in a multi-environment operating system
US9348633B2 (en) * 2009-07-20 2016-05-24 Google Technology Holdings LLC Multi-environment operating system
US8847984B2 (en) 2009-07-27 2014-09-30 Disney Enterprises, Inc. System and method for forming a composite image in a portable computing device having a dual screen display
JP2011028673A (en) 2009-07-29 2011-02-10 Kyocera Corp Portable terminal device
US20110102314A1 (en) 2009-10-30 2011-05-05 Xerox Corporation Dual-screen electronic reader with tilt detection for page navigation
US20110113329A1 (en) 2009-11-09 2011-05-12 Michael Pusateri Multi-touch sensing device for use with radiological workstations and associated methods of use
US8797268B2 (en) 2009-11-18 2014-08-05 Qualcomm Incorporated Folding mobile device
KR20110092802A (en) 2010-02-10 2011-08-18 삼성전자주식회사 Data operation method for terminal including a plural display units and terminal for supporting using the same
US9454304B2 (en) 2010-02-25 2016-09-27 Microsoft Technology Licensing, Llc Multi-screen dual tap gesture
US20110210922A1 (en) 2010-02-26 2011-09-01 Research In Motion Limited Dual-screen mobile device
JP5800501B2 (en) 2010-03-12 2015-10-28 任天堂株式会社 Display control program, a display control device, a display control system, and a display control method
US20110239142A1 (en) 2010-03-25 2011-09-29 Nokia Corporation Method and apparatus for providing content over multiple displays
US9740507B2 (en) 2010-04-01 2017-08-22 Citrix Systems, Inc. Interacting with remote applications displayed within a virtual desktop of a tablet computing device
US9213480B2 (en) 2010-04-08 2015-12-15 Nokia Technologies Oy Method, apparatus and computer program product for joining the displays of multiple devices
JP4865053B2 (en) 2010-04-22 2012-02-01 株式会社東芝 Information processing apparatus and the drag control method
US8400564B2 (en) 2010-05-03 2013-03-19 Microsoft Corporation Image capture
US9851747B2 (en) 2010-05-21 2017-12-26 Peter G. Winsky Electronic book reader with closely juxtaposed display screens
US20110291964A1 (en) 2010-06-01 2011-12-01 Kno, Inc. Apparatus and Method for Gesture Control of a Dual Panel Electronic Device
US8954099B2 (en) 2010-06-16 2015-02-10 Qualcomm Incorporated Layout design of proximity sensors to enable shortcuts
US8589952B2 (en) * 2010-06-30 2013-11-19 Palm, Inc. Dual operating system operation and configuration
US20120005602A1 (en) 2010-07-02 2012-01-05 Nokia Corporation Methods and apparatuses for facilitating task switching
US8397245B2 (en) 2010-07-12 2013-03-12 International Business Machines Corporation Managing loading and unloading of shared kernel extensions in isolated virtual space
KR101688942B1 (en) 2010-09-03 2016-12-22 엘지전자 주식회사 Method for providing user interface based on multiple display and mobile terminal using this method
WO2012033492A1 (en) 2010-09-09 2012-03-15 Sony Ericsson Mobile Communications Ab Annotating e-books/e-magazines with application results
US20120066624A1 (en) 2010-09-13 2012-03-15 Ati Technologies Ulc Method and apparatus for controlling movement of graphical user interface objects
US8724696B2 (en) 2010-09-23 2014-05-13 Vmware, Inc. System and method for transmitting video and user interface elements
US8933949B2 (en) 2010-10-01 2015-01-13 Z124 User interaction across cross-environment applications through an extended graphics context
US8966379B2 (en) 2010-10-01 2015-02-24 Z124 Dynamic cross-environment application configuration/orientation in an active user environment
US9047102B2 (en) 2010-10-01 2015-06-02 Z124 Instant remote rendering
US9152582B2 (en) 2010-10-01 2015-10-06 Z124 Auto-configuration of a docked system in a multi-OS environment
WO2012044539A2 (en) 2010-10-01 2012-04-05 Imerj, Llc Multi-operating system
US8726294B2 (en) 2010-10-01 2014-05-13 Z124 Cross-environment communication using application space API
US9430122B2 (en) 2010-10-01 2016-08-30 Z124 Secondary single screen mode activation through off-screen gesture area activation
US20130312106A1 (en) 2010-10-01 2013-11-21 Z124 Selective Remote Wipe
US9372618B2 (en) 2010-10-01 2016-06-21 Z124 Gesture based application management
CN103403651B (en) 2010-10-01 2019-06-11 Z124 Gesture is dragged in user interface
US8819705B2 (en) 2010-10-01 2014-08-26 Z124 User interaction support across cross-environment applications
US8761831B2 (en) 2010-10-15 2014-06-24 Z124 Mirrored remote peripheral interface
US8369893B2 (en) 2010-12-31 2013-02-05 Motorola Mobility Llc Method and system for adapting mobile device to accommodate external display
US20120176413A1 (en) 2011-01-11 2012-07-12 Qualcomm Incorporated Methods and apparatuses for mobile device display mode selection based on motion direction
US9354900B2 (en) 2011-04-28 2016-05-31 Google Technology Holdings LLC Method and apparatus for presenting a window in a system having two operating system environments
US20120278747A1 (en) 2011-04-28 2012-11-01 Motorola Mobility, Inc. Method and apparatus for user interface in a system having two operating system environments
US20130024778A1 (en) 2011-07-13 2013-01-24 Z124 Dynamic cross-environment application configuration/orientation
US20130024812A1 (en) 2011-07-13 2013-01-24 Z124 Foreground/background assortment of hidden windows
US8810533B2 (en) 2011-07-20 2014-08-19 Z124 Systems and methods for receiving gesture inputs spanning multiple input devices
US9495012B2 (en) 2011-09-27 2016-11-15 Z124 Secondary single screen mode activation through user interface activation
US8922393B2 (en) 2011-11-16 2014-12-30 Flextronics Ap, Llc Parking meter expired alert

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5874960A (en) * 1995-07-05 1999-02-23 Microsoft Corporation Method and system for sharing applications between computer systems
US6091414A (en) * 1996-10-31 2000-07-18 International Business Machines Corporation System and method for cross-environment interaction in a computerized graphical interface environment
US7284203B1 (en) * 1999-07-27 2007-10-16 Verizon Laboratories Inc. Method and apparatus for application sharing interface
CN101770399A (en) * 2009-01-05 2010-07-07 联想(北京)有限公司 Electronic equipment, method and device for switching operating system desktop
US20100251233A1 (en) * 2009-03-25 2010-09-30 Honeywell International Inc. Embedded computing system user interface emulated on a separate computing device

Also Published As

Publication number Publication date
WO2012044557A2 (en) 2012-04-05
US20120081396A1 (en) 2012-04-05
WO2012044792A2 (en) 2012-04-05
WO2012044676A2 (en) 2012-04-05
CN103282875B (en) 2017-04-12
WO2012044558A3 (en) 2012-06-28
CN107122168A (en) 2017-09-01
WO2012044558A2 (en) 2012-04-05
WO2012044645A2 (en) 2012-04-05
US20120143944A1 (en) 2012-06-07
US20120084798A1 (en) 2012-04-05
EP2622462A4 (en) 2014-01-29
WO2012044872A2 (en) 2012-04-05
CN103493010B (en) 2017-02-08
US20120081383A1 (en) 2012-04-05
CN103493010A (en) 2014-01-01
US20120081380A1 (en) 2012-04-05
WO2012044784A3 (en) 2012-06-14
BR112013007809A2 (en) 2017-12-12
EP2622462A2 (en) 2013-08-07
CN103370689B (en) 2018-02-02
EP2622464A2 (en) 2013-08-07
EP2622464A4 (en) 2015-01-07
US9077731B2 (en) 2015-07-07
US9049213B2 (en) 2015-06-02
US20120084793A1 (en) 2012-04-05
WO2012044557A3 (en) 2012-06-28
US20120081354A1 (en) 2012-04-05
US20120089906A1 (en) 2012-04-12
CN103282875A (en) 2013-09-04
EP2622490A2 (en) 2013-08-07
WO2012044676A3 (en) 2012-07-05
WO2012044645A3 (en) 2012-06-21
CN103262057B (en) 2016-02-10
EP2622490B1 (en) 2018-12-05
WO2012045073A3 (en) 2012-06-07
US9071625B2 (en) 2015-06-30
CN103262057A (en) 2013-08-21
CN103229156A (en) 2013-07-31
US8683496B2 (en) 2014-03-25
US8957905B2 (en) 2015-02-17
WO2012045073A2 (en) 2012-04-05
WO2012044687A2 (en) 2012-04-05
WO2012044539A2 (en) 2012-04-05
JP2013542515A (en) 2013-11-21
CN103229156B (en) 2016-08-10
WO2012045074A2 (en) 2012-04-05
WO2012044792A3 (en) 2012-06-14
CN103370689A (en) 2013-10-23
WO2012044872A3 (en) 2012-07-19
WO2012045078A3 (en) 2012-06-14
WO2012044784A2 (en) 2012-04-05
WO2012044539A3 (en) 2012-06-21
WO2012044687A3 (en) 2012-07-05
US8819180B2 (en) 2014-08-26
WO2012045078A2 (en) 2012-04-05
US9060006B2 (en) 2015-06-16
US9160796B2 (en) 2015-10-13
CN103329094B (en) 2017-02-15
US8963939B2 (en) 2015-02-24
US20120081353A1 (en) 2012-04-05
WO2012044546A3 (en) 2012-05-18
WO2012045074A3 (en) 2012-07-19
EP2622490A4 (en) 2015-04-29
WO2012044546A2 (en) 2012-04-05
MX2013003427A (en) 2013-10-28

Similar Documents

Publication Publication Date Title
US7595810B2 (en) Methods of manipulating a screen space of a display device
US9075561B2 (en) Systems, methods, and computer-readable media for managing collaboration on a virtual work of art
US10244039B2 (en) Shell integration on a mobile device for an application executing remotely on a server
US9195362B2 (en) Method of rendering a user interface
AU2011239220B2 (en) Managing workspaces in a user interface
US9588657B1 (en) Seamless integration of non-native windows with dynamically scalable resolution into host operating system
CN1860505B (en) System and method for a unified composition engine in a graphics processing system
US20060218536A1 (en) Virtual machine extended capabilities using application contexts in a resource-constrained device
CA2771785C (en) A system and method for pervasive computing
EP2224338A2 (en) Methods and systems for generating desktop environments providing integrated access to remote and local resources
US8984448B2 (en) Method of rendering a user interface
CA2792900C (en) Method of rendering a user interface
US20100299436A1 (en) Methods and Systems for Using External Display Devices With a Mobile Computing Device
CA2792662C (en) Method of rendering a user interface
US5621434A (en) Cursor manipulation system and method
US20110225553A1 (en) Use Of Standalone Mobile Devices To Extend HID Capabilities Of Computer Systems
CN102763063B (en) Methods and systems for updating a dock with a user interface element representative of a remote application
US9588637B2 (en) Transparent user interface integration between local and remote computing environments
US8970450B2 (en) Reverse seamless integration between local and remote computing environments
US9740507B2 (en) Interacting with remote applications displayed within a virtual desktop of a tablet computing device
US9063798B2 (en) Cross-environment communication using application space API
KR101752377B1 (en) Apparatus and method for partitioning a display surface into a plurality of virtual display areas
US8301723B2 (en) Computer to handheld device virtualization system
KR20130138143A (en) System and method for display mirroring
US9910833B2 (en) Automatically rendering web and/or hybrid applications natively in parallel

Legal Events

Date Code Title Description
C06 Publication
C10 Entry into substantive examination
C14 Grant of patent or utility model