一种用于配置第一应用和第二应用的方法与流程

文档序号:11732736阅读:251来源:国知局
一种用于配置第一应用和第二应用的方法与流程
本申请总地涉及移动计算环境的领域,更具体地涉及动态地配置具有多个活动用户环境的计算环境中的应用。

背景技术:
在当今的社会中,移动计算设备变得普及。例如,截至2008年底,百分之九十的美国人拥有移动无线设备。在增长最快的移动通信设备中,有智能电话,即,在移动计算平台之上建立的移动电话。移动电话提供商在过去三年中基于几个不同的计算平台(例如,AppleiPhone、Android、BlackBerry、Palm、和WindowsMobile等)已推出数以百计的新的智能电话。在美国,到2010年年中为止智能电话渗透率几乎达到23%,并且在某些年龄群体中超过35%。在欧洲,智能电话市场从2009年到2010年增长了41%,其中截至2010年7月仅在五个最大的欧洲国家拥有超过6千万智能电话用户。智能电话计算平台通常包括在移动处理器上运行的移动操作系统(“OS”)。虽然移动处理器和移动OS增加了这些设备的能力,但至少因为提供的有限的用户体验,智能电话尚无趋向取代例如桌面或笔记本式计算机的个人计算机(“PC”)环境(即,Windows、MacOSX、和Linux等)。具体地,智能电话通常具有不同的处理资源、一个或多个用户接口设备、外围设备、和应用。例如,移动处理器可以具有与PC处理器不同的处理器架构,所述处理器架构强调像低功率操作和通信能力的特征,而不是原始(raw)处理和/或图形性能。此外,智能电话往往具有较少量的其他硬件资源,例如存储器(例如,SRAM、DRAM等)和贮存器(例如,硬盘、SSD等)资源。其他考虑通常包括限制可以通过移动OS图形用户界面(“GUI”)呈现的信息量的较小的显示器大小和不同的用户输入设备。用于智能电话的一个或多个用户接口输出设备通常包括小拇指式QWERTY键盘、触摸屏显示器、点击轮、和/或滚动轮。相比之下,使用桌面OS的膝上型计算机、笔记本计算机和桌面计算机通常具有全尺寸键盘、一个或多个指点设备、和/或较大的屏幕区域。作为结果,移动OS通常具有不同的架构,在该架构中,相对于传统上强调的例如处理速度、图形处理、和应用多任务的PC能力,更强调例如通信、较低功率消耗、和触摸屏能力等的一些能力和特征。因为架构差异,为移动OS设计的应用或“应用程序(App)”往往被设计用于移动计算体验(例如,通信、游戏、和导航等)的典型的任务和活动。例如,超过三分之一的所有Android应用下载针对游戏和娱乐类别,同时小于20%的下载落在工具和生产类别之下。此外,在PC平台上常见的许多应用要么对移动OS是不可用的,要么仅以有限的特征集可用。例如,许多智能电话运行Google的Android操作系统。Android仅运行专门开发以便在基于Java的虚拟机运行时环境内运行的应用。此外,虽然Android基于修改后的Linux内核,其使用与Linux不同的标准C库、系统管理器、和服务。因此,为Linux写的应用在没有修改或移植的情况下不能在Android上运行。类似地,Apple的iPhone使用iOS移动操作系统。此外,虽然iOS源自MacOSX,但是为OSX开发的应用不能在iOS上运行。因此,虽然许多应用对例如Android和iOS的移动OS是可用的,但是用于例如Linux和MacOSX的桌面操作系统的许多其他常见的应用要么在移动平台上不可用,要么具有有限的功能。这样,这些移动OS提供。因此,智能电话通常适合于有限的一组用户体验,并且提供主要为移动环境设计的应用。具体地,智能电话不提供合适的桌面用户体验,它们也不运行最常见的桌面应用。对于例如输入或编辑文档的一些任务,通常在智能电话上找到的用户接口组件往往比通常可以在PC平台上找到的全尺寸键盘和大显示器更难使用。作为结果,许多用户携带和使用包括智能电话、笔记本计算机、和/或平板计算机的多个计算设备。在这种情况下,每个设备具有其自己的CPU、存储器、文件贮存器、和操作系统。智能电话和其他计算设备之间的连接和文件共享涉及通过无线或有线连接将一个设备(例如,运行移动OS的智能电话)链接到第二个完全不同的设备(例如,运行桌面OS的笔记本计算机、桌面计算机、或平板计算机)。通常被称为“同步”的这个过程很繁琐并且通常需要由用户主动管理。

技术实现要素:
除其他外,还提供一种方法和系统,用于动态配置跨环境应用,所述系统和方法可以利用扩展的活动用户环境和/或多个活动用户环境增强计算环境中的计算体验。例如,移动计算设备保持与多个活动用户环境和/或活动用户环境内的应用窗口相关联的多个活动设备配置。根据包括设备特性、设备指示符、用户设置、和/或应用呈现(presentation)的各种源确定设备配置限定符(qualifier)。移动计算设备基于设备配置限定符选择用于应用的活动资源集。通过废除应用屏幕并且使用不同的资源集建立新的活动应用屏幕来动态更新应用呈现。移动计算设备可以是在修改后的Android内核上运行Android移动操作系统和完整的桌面Linux发行版(distribution)的智能电话。根据一组实施例,提供一种用于配置第一应用和第二应用的方法,所述第一应用和第二应用都被编译用于移动计算设备的第一操作系统,并在所述移动计算设备的第一操作系统内处于活动并发执行中,并且移动计算设备与第一活动用户环境相关联。所述方法包括:从第一方位传感器接收第一方位指示符,所述第一方位传感器与第一活动用户环境相关联;将所述第一方位指示符转换为与第一活动用户环境的活动显示器相关联的第一方位限定符;基于第一方位限定符从与第一应用相关联的第一多个资源集选择用于第一应用的第一资源集;使用第一资源集建立与第一应用相关联的第一应用屏幕;在第一活动用户环境的第一显示器上显示第一应用屏幕;将第二方位限定符与第二活动用户环境的第二活动显示器相关联;基于第二方位限定符从与第二应用相关联的第二多个资源集选择用于第二应用的第二资源集;使用第二资源集建立与第二应用相关联的第二应用屏幕;以及在第二活动显示器上显示第二应用屏幕。根据另一组实施例,提供一种用于配置第一应用和第二应用的方法,所述第一应用和第二应用都被编译用于移动计算设备的第一操作系统,并在所述移动计算设备的第一操作系统内处于活动并发执行中,并且移动计算设备与第一活动用户环境相关联。所述方法包括:从第一方位传感器接收第一方位指示符,所述第一方位传感器与第一活动用户环境相关联;将第一方位限定符与所述第一方位指示符相关联;基于第一方位限定符从与第一应用相关联的第一多个资源集选择用于第一应用的第一资源集;将第二访问限定符与第一方位指示符分离;以及基于第二方位限定符从与第二应用相关联的第二多个资源集选择用于第二应用的第二资源集。根据再一组实施例,提供一种用于配置第一应用和第二应用的方法,所述第一应用和第二应用都被编译用于移动计算设备的第一操作系统,并在所述移动计算设备的第一操作系统内处于活动并发执行中,并且移动计算设备与第一活动用户环境相关联。所述方法包括:从第一方位传感器接收第一方位指示符,所述第一方位传感器与第一活动用户环境相关联;接收设备配置改变消息,所述设备配置改变消息与第二活动用户环境的设备配置有关,所述第二活动用户环境通过图形接口从移动计算设备接收图形信息;将第一方位指示符转换为用于与第一应用相关联的第一活动应用屏幕的第一方位限定符;基于第一方位限定符从与第一应用相关联的第一多个资源集选择用于第一应用的第一资源集;将设备配置改变消息转换为用于与第二应用相关联的第二活动应用屏幕的第二方位限定符;以及基于第二方位限定符从与第二应用相关联的第二多个资源集选择用于第二应用的第二资源集。附图说明在所提到的附图中图示本发明的实施例,其中贯穿附图的描述相同的标号指代相同的元件。图1图示根据各种实施例的提供多个用户计算体验的计算环境。图2图示根据各种实施例的移动计算设备的示例系统架构。图3图示根据各种实施例的移动环境的操作系统架构。图4图示使用实施例的各种方面的示例计算环境。图5图示根据各种实施例的计算环境的操作系统架构。图6更详细地图示根据各种实施例的可以被用于配置移动计算设备的操作系统架构的示例引导过程。图7图示根据各种实施例的用于提供应用和/或用户交互空间的跨环境表现(rendering)的操作系统架构配置。图8图示根据各种实施例的具有多个用户环境的计算环境。图9图示根据各种实施例的跨环境远程表现的各方面。图10图示根据各种实施例的用于非扩展表现上下文中的跨环境远程表现的说明性方法的流程图。图11图示根据各种实施例的跨环境远程表现的对准(registration)和绘制过程流。图12示出根据各种实施例的用于非扩展表现上下文中的跨环境表现的另一说明性方法的流程图。图13图示根据各种实施例的用于向跨环境应用提供用户交互支持的操作系统架构配置300b。图14图示根据各种实施例的对于使用非扩展图形上下文表现的跨环境应用的用户交互支持的各方面。图15图示根据各种实施例的使用扩展的表现上下文的跨多个OS的并行用户接口支持的各方面。具体实施方式本公开总地针对动态管理应用的配置以用于跨多个活动用户环境的应用屏幕的显示。更具体地,应用或“应用程序”可以在通常定义第一活动用户环境的移动计算环境的第一操作系统(“OS”)上运行。所述第一活动用户环境可以包括一个或多个显示设备和其他用户输入设备。可以在连接到所述第一活动用户环境的第二活动用户环境内显示在第一OS内运行的应用程序的应用屏幕。第二活动用户环境可以与第一OS或也在移动计算设备上运行的第二OS相关联。此外,可以在第二活动用户环境的第二显示器上以各种方式呈现应用屏幕。例如,可以根据第二活动用户环境的当前配置动态地配置应用屏幕的用户界面组件,以便提供跨多个用户环境的最佳的用户体验和呈现变化。动态配置包括基于当前显示器特性动态选择应用资源,所述当前显示器特性包括与第二活动用户环境和第二活动用户环境内的应用屏幕呈现相关联的参数。动态配置还可以包括对各种用例动态管理跨多个活动用户环境的应用屏幕方位。虽然参考移动计算环境和各种对接的终端环境讨论在本公开中呈现的动态应用配置技术,但是在各种实施例中,本公开可以适用于其他计算设备(例如,笔记本计算机、平板计算机、桌面计算机等),并且除非另外明确指出,否则本公开不意图限于手持式移动计算设备。图1图示根据各种实施例的通过多个活动用户环境提供多个用户计算体验的计算环境100。由移动计算设备100的一个或多个显示器116、一个或多个触摸屏传感器117、和/或I/O设备118定义计算环境100的第一活动用户环境115。所述一个或多个显示器116可以操作以便显示所显示的图像或“屏幕”。如这里使用的,术语显示器意图隐含设备硬件,而屏幕意图隐含在显示器上产生的显示图像。在这方面,显示器是可操作以便表现屏幕的物理硬件。屏幕可以包括一个或多个显示器中的大多数。例如,屏幕可以基本上占据除了专用于其他功能(例如,菜单栏、和状态栏等)的区域以外的一个或多个显示器的所有显示区域。屏幕可以与在移动计算设备100上运行的操作系统和/或应用相关联。例如,如下面将进一步描述的,可以显示应用屏幕或桌面屏幕,并且应用可以具有能够被操纵的各种类型的应用屏幕。当移动计算设备110作为独立移动设备操作时,活动用户环境115提供典型的移动计算用户体验。在这方面,移动计算设备110通常包括适合于移动计算使用模型的移动电话能力和用户交互特征。例如,移动计算设备110可以呈现适合于包括一个或多个显示器116、一个或多个触摸屏传感器117、和/或一个或多个I/O设备118的活动用户环境115的图形用户界面(“GUI”)。用户可以通过应用屏幕与在移动计算设备110上运行的应用程序交互,所述应用屏幕包括在一个或多个显示器116上呈现的各种交互特征(例如,按钮、文本字段、切换字段(togglefield)等)。在某些情况下,用户经由一个或多个I/O设备118与这些交互特征交互。在其他情况下,用户经由一个或多个触摸屏传感器117使用手势和符号与这些特征交互,用户使用用户的手指或触笔向一个或多个触摸屏传感器117输入所述手势和符号。在另外的情况下,用户使用一个或多个I/O设备118和一个或多个触摸屏传感器117的组合与这些特征交互。图2图示根据各种实施例的移动计算设备110的示例硬件系统架构。移动计算设备110包括具有一个或多个CPU核204和外部显示器接口220的移动处理器114。通常,移动计算设备110还可以包括通过各种通信信号和接口连接到处理器114的存储器206、贮存设备208、连接到一个或多个触摸屏显示器116和/或一个或多个触摸屏传感器117的触摸屏显示器控制器212、I/O设备118、连接到电池216的电源管理IC214、蜂窝调制解调器218、通信设备222、和/或其它设备224。I/O设备118通常包括可在移动计算环境110中采用的按钮和其它用户接口组件。例如,I/O设备118可以包括一组按钮(例如,后退、菜单、主页、搜索等)、屏幕外手势区域、点击轮、滚动轮、QWERTY键盘等。其它设备224可以包括例如GPS设备、LAN连接、麦克风、扬声器、相机、加速度计、陀螺仪、磁力计、和/或MS/MMC/SD/SDIO卡接口。外部显示器接口220可以是任何合适的显示器接口(例如,VGA、DVI、HDMI、无线等)。移动计算设备的一个或多个传感器设备可以能够监视移动计算设备相对于重力的方位。例如,使用加速度计、陀螺仪、测斜仪、或磁力计、或这些传感器中的某种组合,移动计算设备110可以能够确定其相对于重力是否基本上处于纵向方位(意味着一个或多个显示器116的长轴是垂直定向的)或基本上处于横向方位(长轴是水平定向的)。这些设备通过监视移动计算设备110的方位和/或运动可以进一步提供其它控制功能。如这里使用的,术语方位传感器意图表示可以被用于确定设备相对于重力的方位的传感器(例如,加速度计、陀螺仪、测斜仪、磁力计等)的某种组合,并且不意图限于任何特定传感器类型或技术。处理器114可以是基于ARM的移动处理器。在实施例中,移动处理器114是例如TexasInstrumentsOMAP3430、MarvellPXA320、FreescaleiMX51、或QualcommQSD8650/8250的移动的基于ARM的处理器。然而,移动处理器114可以是另一个合适的基于ARM的移动处理器或基于其他处理器架构的处理器,所述其他处理器架构例如为基于x86的处理器架构或其他基于RISC的处理器架构。虽然图2图示移动计算设备110的一个示例硬件实施方式112,其他架构被预计为在本发明的范围内。例如,可以在移动处理器114中集成在图2中被示出为位于移动处理器114外部的各种组件。可选地,在图2中被示出为集成到移动处理器114中的外部显示器接口220可以位于移动处理器114的外部。此外,使用系统总线、分立的图形处理器、和/或其他架构变化的其他计算机架构适合于使用本发明的各方面。返回图1,移动计算设备110可以与第二终端环境140对接。第二终端环境140可以是通过经由接口122将第二终端环境140上的端口142连接到移动计算设备110上的端口120而连接到移动计算设备110的视觉表现设备(例如,监视器或显示器)140、I/O设备(例如,鼠标、触摸板、触摸屏、键盘等)146、和其他计算外围设备(例如,HDD、光盘驱动器、记忆棒、相机、打印机、GPS、加速度计等)148的某种组合。接口122可以是有线(例如,USB、火线、雷电接口、HDMI、VGA等)或无线(例如,蓝牙、WiFi、无线HDMI等)接口的某种组合。虽然第二终端环境可以具有例如微控制器或其他专用集成电路(“ASIC”)的一些处理或逻辑元件,但是它们通常不具有运行操作系统的单独的实例的处理器。取决于组成第二终端环境的组件,定义第二活动用户环境的第二终端环境可以适合于各种使用模型中的一个或多个。一些第二终端环境可以与类似于移动计算设备110的用户计算体验的用户计算体验相关联,而其他第二终端环境可以提供更传统地与桌面计算相关联的用户计算体验。例如,第二终端环境140可以是包括具有用作设备的主要用户输入的对应的触摸屏传感器146的显示器144的设备。这种类型的第二终端环境可以被称为平板式第二终端环境。虽然平板式终端环境可以具有比移动计算设备110大的触摸屏显示器,这种类型的第二终端环境的用户体验可以以某些方式与移动计算设备110的用户体验110类似。具体地,用户可以通过与他们在移动计算设备110上可能使用的类似的基于手势的技术(即,触摸、滑动、二指拨动(pinching)等)和/或虚拟键盘方便地与在这种类型的第二终端环境上显示的应用交互。在被称为“智能平板(smartpad)”的一个实施例中,平板式第二终端环境包括10.1英寸对角线(1280x800分辨率)触摸使能显示器、标准按钮组(例如,后退、菜单、主页、搜索等)、一个或多个相机、以及一个或多个屏幕外手势区域。平板式第二终端环境可以包括可以用于影响在平板式第二终端环境上向用户呈现的应用的配置的其他外围设备。例如,平板式第二终端环境可以包括用于确定它的位置和/或方位的GPS接收器、加速度计、陀螺仪、磁力计、和/或其他传感器。使用这些传感器,平板式第二终端环境能够确定其是基本上在垂直方位上还是基本上在水平方位上。另一类型的第二终端环境是膝上型计算机或笔记本式第二终端环境。笔记本式第二终端环境通常包括在蛤壳式外壳中的显示器屏幕144、键盘和一个或多个指点设备146、和/或其他外围设备148。在实施例中,膝上型计算机或笔记本式第二终端环境可以被称为“智能显示器”或“LapDock”。因为这种类型的第二终端环境包括较大的显示器、全尺寸键盘、和一个或多个指点设备,其通常具有与桌面计算环境相关联的用户计算体验。在这方面,这种类型的第二终端环境可能不具有与移动计算设备110类似的用户体验概况。笔记本式第二终端环境可以包括可以用于影响在第二终端环境上向用户呈现的应用的配置的其他外围设备。例如,笔记本式第二终端环境可以包括用于确定它的位置和/或方位的GPS接收器、加速度计、陀螺仪、磁力计、和/或其他传感器。使用这些传感器,平板式第二终端环境能够确定其是基本上在垂直方位上还是基本上在水平方位上。各种第二终端环境还可以包括组成典型的桌面计算环境的各种通用输入/输出设备外围设备。I/O设备可以通过对接集线器(或“对接支架”)连接,所述对接集线器包括端口142和用于连接各种市售显示监视器144、I/O设备146和/或其他外围设备148的一个或多个设备I/O端口。例如,对接集线器可以包括显示器端口(例如,VGA、DVI、HDMI、无线HDMI等)和通用设备端口(例如,USB、火线等)。作为一个示例,用户可以将市售的显示器、键盘、和一个或多个指点设备连接到对接集线器。以这样的方式,用户可以根据输入/输出设备的组合创建第二终端环境。通常,这个第二终端环境将适合于桌面计算体验。具体地,这种类型的第二终端环境可以适合于围绕使用一个或多个指点设备和物理键盘来与显示器上的用户界面交互而设计的计算体验。在实施例中,移动计算设备110包括在共享内核上并发运行的多个操作系统。在这里通过引用合并的、2011年8月24日提交的、名称为“MULTI-OPERATINGSYSTEM”的美国专利申请No.13/217,108中更详细地描述了在共享内核上的移动OS和桌面OS的并发执行。以这样的方式,单个移动计算设备可以通过第一用户交互空间提供移动计算体验并通过第二用户交互空间提供桌面计算体验。图3图示根据各种实施例的可以用于在移动计算设备110上并发运行移动OS130和桌面OS160的OS架构300。如图3中所示,移动OS130和桌面OS160是独立的操作系统。具体地,移动OS130和桌面OS160可以具有独立的和不兼容的用户库、图形系统、和/或框架层。用于OS架构300的功能和指令可以在移动计算设备110的有形的计算机可读介质上被存储为计算机程序代码。例如,用于OS架构300的指令可以在移动计算设备110的一个或多个贮存设备208中存储。在OS架构300中,移动OS130和桌面OS160在共享内核320上并发运行。这意味着移动OS130和桌面OS160同时在共享内核320上运行。具体地,移动OS130和桌面OS160都通过相同的内核接口322,例如通过对共享内核320进行系统调用而连接到共享内核320。共享内核320管理对于移动OS130和桌面OS160两者的进程的任务调度。在这方面,移动OS130和桌面OS160在共享内核320上独立地和并发地运行。此外,如图3中所示,共享内核320直接在移动计算设备110的移动处理器114上运行。具体地,共享内核320直接管理处理器114的计算资源,例如CPU调度、存储器访问、和I/O。在这方面,硬件资源未被虚拟化,意味着移动OS130和桌面OS160在没有虚拟化的存储器或I/O访问的情况下通过内核接口322进行系统调用。如图3中所示,移动OS130具有库层330、应用框架层340、和应用层350。在移动OS130中,应用352和354在由移动OS130的应用框架层340支持的应用层350中运行。应用框架层340包括由在移动OS130上运行的应用使用的一个或多个管理器342和一个或多个服务344。例如,应用框架层340可以包括用于移动环境的窗口管理器、活动管理器、分组管理器、资源管理器、电话管理器、手势控制器、和/或其它管理器和服务。应用框架层340可以包括执行为移动OS130开发的应用的移动应用运行时环境。可以针对例如较低的处理功率和/或有限的存储器空间的移动计算资源优化该移动应用运行时环境。移动应用运行时环境可以依靠内核来进行进程隔离、存储器管理、和线程支持。库层330包括实施例如I/O和字符串操纵的常用功能、图形功能、数据库能力、通信能力、和/或其他功能和能力的用户库332。如图3中所示,桌面OS160具有库层360、框架层370、和应用层380。在桌面OS160中,应用382和384在桌面OS160的应用框架层370支持的应用层380中运行。应用框架层370包括由在桌面OS160上运行的应用使用的一个或多个管理器372和一个或多个服务374。例如,应用框架层370可以包括常用于桌面环境的窗口管理器、活动管理器、分组管理器、资源管理器、和/或其他管理器和服务。库层360可以包括实施例如I/O和字符串操纵的常用功能、图形功能、数据库能力、通信能力、和/或其他功能和能力的用户库362。在本公开的各种实施例中,桌面OS160在与移动OS130分开的执行环境中运行。例如,移动OS130可以在根执行环境中运行,并且桌面OS160可以在根执行环境下建立的第二执行环境中运行。在移动OS130上运行的进程和应用访问根执行环境中的用户库332、一个或多个管理器342和一个或多个服务344。在桌面OS160上运行的进程和应用访问在第二执行环境中的用户库362、一个或多个管理器372和一个或多个服务374。在实施例中,移动OS130和桌面OS160是具有不兼容的用户库、图形系统、和/或应用框架的独立操作系统。因此,为移动OS130开发的应用不能在桌面OS160上直接运行,并且为桌面OS160开发的应用不能在移动OS130上直接运行。例如,在移动OS130的应用层350中运行的应用352可能与桌面OS160不兼容,意味着应用352不能在桌面OS160上运行。具体地,应用352可能依靠移动OS130的一个或多个管理器342、一个或多个服务344、和/或库332,所述移动OS130的一个或多个管理器342、一个或多个服务344、和/或库332要么是不可用的,要么与桌面OS160的一个或多个管理器372、一个或多个服务374、和/或库362不兼容。作为结果,移动OS130和桌面OS160可以具有不同的多组可用应用。在这方面,OS架构300的移动OS130和桌面OS160通过可经由单独的用户交互空间访问的单独的多组应用提供单独的用户体验。用户可以通过与移动OS130相关联的第一用户交互空间访问在移动OS130上可用的(即,为移动OS130的执行环境编译并在该执行环境内加载的)应用,并且通过与桌面OS160相关联的第二用户交互空间访问在桌面OS160上可用的应用。如上面描述的,移动操作系统通常不使用与桌面操作系统相同的图形环境。桌面OS的图形环境是为灵活性和高性能设计的。例如,由一些桌面OS使用的X-窗口系统在牺牲更大的处理和系统资源的情况下提供平台和网络独立性。相比之下,移动OS的图形环境更多地是为效率和移动计算环境的特定用户输入设备设计的,而更少地是为灵活性设计的。因为移动和桌面OS的图形环境常常是不同的,所以在移动OS上运行的应用不能通过将来自移动OS的图形服务器的图形信息重定向到桌面OS的图形服务器而被重定向以便在桌面OS的用户空间内显示。最广泛采用的移动OS是Google的Android。虽然Android基于Linux,其包括针对移动环境和移动处理器而对内核和其他OS层进行的修改。具体地,虽然Linux内核被设计为用于PC(即,x86)CPU架构,但是针对基于ARM的移动处理器修改了Android内核。还针对自除了其他设备以外还包括触摸屏、移动连接(GSM/EDGE、CDMA、WiFi等)、电池管理、GPS、加速度计和相机模块的移动硬件架构中存在的设备具体调整了Android设备驱动器。此外,Android不具有原生X窗口系统,它也不支持标准GNU库的完整集,这使得难以向Android移植现有的GNU/Linux应用或库。类似地针对移动环境和移动硬件架构修改了Apple的iOS操作系统(在iPhone上运行)和Microsoft的WindowsPhone7。例如,虽然iOS源自MacOSX桌面OS,常用的MacOSX应用不能原生地在iOS上运行。具体地,通过标准开发者工具包(“SDK”)开发iOS应用以便在iOS的“CocoaTouch”运行时环境内运行,所述“CocoaTouch”运行时环境提供基本的应用基础设施和对例如基于触摸的输入、推送通知和系统服务的关键iOS特征的支持。因此,为MacOSX写的应用在没有移植的情况下不能在iOS上运行。此外,因为两个OS的用户库和/或应用框架层之间的差异、和/或移动和桌面硬件的系统资源的差异,可能难以将MacOSX应用移植到iOS。在符合OS架构300的一个实施例中,Android移动OS和完整的LinuxOS在修改后的Android内核上独立地和并发地运行。在这个实施例中,AndroidOS可以是修改后的Android发行版,而LinuxOS(“Hydroid”)可以是修改后的DebianLinux桌面OS。图4-6更详细地图示根据各种实施例的可以在OS架构300中使用的Android移动OS、Android内核520、和HydroidOS660。如图4中所示,AndroidOS430在库层432中包括通过应用框架层440访问的一组C/C++库。库层432包括专门为Android开发以便比“glibc”LinuxC-库更小和更快的“bionic”系统C库439。库层432还包括进程间通信(“IPC”)库436,其包括用于AndroidOS的“Binder(绑定器)”IPC机制的基类。Binder专门为Android开发以便允许进程和服务之间的通信。在图4中的库层432中示出的其他库包括支持媒体格式的记录和重放的媒体库435、管理对显示子系统的访问并且合成来自多个应用的图形层的表面(surface)管理器434、2D和3D图形引擎438、以及轻量级关系数据库引擎437。可以在库层432中包括、但没有在图4中画出的其他库包括位图和矢量字体表现库、实用程序库、浏览器工具(即,WebKit等)、和/或安全通信库(即,SSL等)。AndroidOS430的应用框架层440提供允许开发者使用设备硬件的组件、访问位置信息、运行后台服务、设置警报、向状态栏增加通知等的开发平台。框架层440还允许应用公开它们的能力并且利用其他应用所公开的能力。Android移动OS430的应用框架层440的组件包括活动管理器441、资源管理器442、窗口管理器443、基座管理器444、硬件和系统服务445、桌面监视服务446、多显示器管理器447、和远程通信服务448。在Android移动OS430的框架层440中可以包括的其他组件除了其他管理器和服务之外,还包括视图系统、电话管理器、分组管理器、位置管理器、和/或通知管理器。在AndroidOS430上运行的应用在Android面向对象应用框架之上的Android运行时环境433中的Dalvik虚拟机431内运行。Dalvik虚拟机431是基于寄存器的虚拟机,并且运行被设计为减少存储器使用和处理需求的紧凑的可执行格式。在AndroidOS430上运行的应用包括主屏幕451、电子邮件应用452、电话应用453、浏览器应用454、和/或一个或多个其他应用(“一个或多个应用程序”)455。每个应用可以包括用户用来与应用连接的一个或多个应用屏幕。AndroidOS图形系统使用客户端/服务器模型。表面管理器(“SurfaceFlinger”)是图形服务器并且应用是客户端。SurfaceFlinger保持显示器ID的列表并且知晓向显示器ID分配应用。在一个实施例中,移动数据设备110具有多个触摸屏显示器116。在这个实施例中,显示器ID0与触摸屏显示器116中的一个相关联,并且显示器ID1与其他触摸屏显示器116相关联。显示器ID2与两个触摸屏显示器116相关联(即,同时在两个显示器上显示应用)。用于Android应用和/或活动的图形信息包括窗口、视图、和画布。利用底层表面对象实施每个窗口、视图、和/或画布。表面对象被双重缓冲(前缓冲器和后缓冲器)并且被跨进程同步以用于绘制。SurfaceFlinger在共享存储器池中保持所有表面,所述共享存储器池在不进行昂贵的复制操作和不使用例如X-窗口的服务器侧绘制协议的情况下允许Android内的所有进程访问它们并且绘制到(drawinto)它们中。应用总是绘制到后缓冲器中,而SurfaceFlinger从前缓冲器读取。SurfaceFlinger创建每个表面对象、保持所有表面对象、并且还对于每个应用保持表面对象的列表。当应用完成后缓冲器中的绘制时,它向SurfaceFlinger发布事件,SurfaceFlinger将后缓冲器切换到前缓冲器并且对将表面信息表现到帧缓冲器的任务排队。SurfaceFlinger监视所有窗口改变事件。当一个或多个窗口改变事件发生时,SurfaceFlinger将表面信息表现到用于一个或多个显示器的帧缓冲器。表现包括合成表面,即基于表面的尺寸、透明度、z-顺序、和可见性合成最终的图像帧。表现还可以包括硬件加速(即,用于图形处理硬件的OpenGL2D和/或3D接口)。SurfaceFlinger循环遍历所有表面对象,并且以它们的z顺序将它们的前缓冲器表现到帧缓冲器。图5更详细地图示根据各种实施例的修改后的Android内核520。修改后的Android内核520包括触摸屏显示器驱动器(driver)521、一个或多个相机驱动器522、一个或多个蓝牙驱动器523、共享存储器分配器524、一个或多个IPC驱动器525、一个或多个USB驱动器526、一个或多个WiFi驱动器527、一个或多个I/O设备驱动器528、和/或电源管理模块529。一个或多个I/O设备驱动器528包括用于外部I/O设备的设备驱动器,所述外部I/O设备包括可以通过端口120连接到移动计算设备110的设备。修改后的Android内核520可以包括其他驱动器和功能块,包括低存储器消除器(killer)、内核调试器、日志记录能力、和/或其他硬件设备驱动器。图6更详细地图示根据各种实施例的HydroidOS660。Hydroid是能够运行为标准Linux发行版开发的几乎任何应用的完整的LinuxOS。具体地,HydroidOS660的库层662包括支持网络连接、图形处理、数据库管理、和其他常用程序功能的Linux库。例如,用户库662可以包括“glibc”LinuxC库664、Linux图形库662(例如,GTK、OpenGL等)、Linux实用程序库661、Linux数据库库、和/或其他Linux用户库。应用在Hydroid上、在使用X-Server674、窗口管理器673、和/或桌面环境672的X-窗口Linux图形环境内运行。图示的应用包括文字处理器681、电子邮件应用682、电子表格应用683、浏览器684、和一个或多个其他应用685。LinuxOS图形系统基于X窗口(或“X11”)图形系统。X窗口是与平台无关的、联网的图形框架。X窗口使用客户端/服务器模型,其中X-服务器是图形服务器并且应用是客户端。X-服务器控制例如显示器、触摸屏显示器、键盘、一个或多个指点设备等的与LinuxOS相关联的输入/输出硬件。在这方面,X窗口提供服务器侧绘制图形架构,即,X-服务器保持包括窗口和像素图的可绘制对象(drawables)的内容。X-客户端通过经由通信信道交换描述绘制操作的数据分组来与X-服务器通信。X-客户端通过标准例程库(“Xlib”)访问X通信协议。例如,X-客户端可以向X-服务器发送请求以便在客户端窗口中绘制矩形。X-服务器向X-客户端发送输入事件,例如,键盘或指点设备输入、和/或窗口移动或调整大小。所述输入事件是相对于客户端窗口的。例如,如果当指示器在窗口内时用户点击,X-服务器向与该窗口相关联的X-客户端发送包括该输入事件的分组,所述输入事件包括该动作和该事件相对于窗口的定位。因为操作系统框架、图形系统、和/或库的差异,为Android写的应用通常不能在HydroidOS660上运行,并且为标准Linux发行版写的应用通常不能在AndroidOS430上运行。在这方面,用于AndroidOS430和HydroidOS660的应用不是字节码兼容的,意味着用于一个的编译的和可执行的程序不能在另一个上运行。在一个实施例中,HydroidOS660包括通过共享内核520促进与AndroidOS430通信的跨环境通信框架的组件。这些组件包括IPC库663,所述IPC库663包括用于AndroidOS的BinderIPC机制和远程通信服务671的基类。在一个实施例中,HydroidOS660在Android根环境内创建的改变根目录的(利用“chroot”命令创建的)第二执行环境内运行。HydroidOS660内的进程和应用在第二执行环境内运行,使得被这些进程和应用看见的可见的根目录是第二执行环境的根目录。以这种方式,HydroidOS660可以在没有修改的情况下运行为标准Linux发行版写的程序,因为Linux用户库662对在改变根目录的第二执行环境中在HydroidOS660上运行的进程是可用的。如上面描述的,移动计算设备110通常定义用户用来与移动OS130和/或在移动OS上运行的应用交互的单个活动用户环境。因此,移动OS130通常保持单个活动设备配置,该单个活动设备配置包括与移动计算设备的各种参数相关联的配置限定符。设备配置限定符可以包括例如分辨率、显示器像素密度(即,每英寸的点或“dpi”)、显示器方位、和/或显示器高宽比的显示器属性。设备配置限定符还可以包括例如触摸屏类型、导航方法(例如,触摸屏、轨迹球、滚动轮等)、和键盘可用性等的输入设备属性。例如显示器分辨率、显示器方位、和/或显示器高宽比的显示器属性可以与设备配置限定符的各种组合对应。在一个实施例中,移动计算设备110定义用于与移动计算设备的一个或多个显示器116相关联的显示器大小(例如,小、中、大、超大等)、显示器方位(例如,垂直、水平)、显示器像素密度(例如,低、高、超高等)和显示器高宽比(例如,正常、宽等)的配置限定符。因为运行相同的移动OS的移动计算设备可以具有不同的设备配置,移动OS130的应用可以被设计为在多个物理设备配置上运行。为此,应用可以使应用资源外在化以便提供与多个不同的计算设备硬件配置的兼容性,而不需要重新编译应用。在这方面,可以在与应用程序代码分开的文件和/或位置中保持应用资源。应用资源包括用于创建与应用相关联的应用屏幕的图像、字符串和/或其它组件。例如,应用资源可以包括由应用使用以便建立应用屏幕的图形资源,例如可绘制资源(例如,位图文件、状态列表、形状、可调整大小的位图、九个组片(nine-patches)等)、动画可绘制对象、和/或其它可绘制或图形元素。其它类型的资源包括动画资源、布局资源、菜单资源和值资源(例如,字符串、整数、颜色等)。在某些情况下,移动OS130可以被设计为通过在应用启动或由应用修改应用屏幕时选择应用屏幕资源来建立与应用相关联的应用屏幕。资源可以被分组为可以使用资源配置列表或层级编制索引的资源集。每个资源集可以提供适合于设备配置的特定范围的应用资源。通常,当启动应用时,移动OS130基于设备配置为与应用相关联的应用屏幕选择资源。移动OS130可以按照预定的程序来基于设备配置限定符选择资源。例如,移动OS130可以遍历限定符表以便定位用于当前设备配置的合适的资源集。限定符表可以定义配置限定符的优先权以便为该应用从可用资源集中选择合适的资源集。在为特定移动计算设备建立移动OS时,可以为所建立的OS静态地定义某些设备配置限定符。这些设备配置限定符可以与特定移动计算设备的物理参数对应。在这方面,这些配置限定符被硬编码到所建立的OS中,使得移动OS将使用这些配置限定符来创建用于在移动OS上运行的应用的所有应用屏幕。通常,可以在建立的移动OS中静态地定义例如显示器分辨率、显示器像素密度和显示器高宽比的配置限定符。设备配置的一些限定符可以在运行时期间(即,在应用的生命周期期间)改变。移动OS130可以具有这样的机制,所述移动OS130通过所述机制管理在应用的运行时期间的设备配置改变。具体地,移动OS130可以废弃利用第一资源集为正在运行的应用建立的应用屏幕,并且基于某些配置改变利用第二资源集重新建立应用屏幕。通常,移动OS130可以基于移动计算设备110的方位改变动态地重新建立应用屏幕。返回参考图1,可以通过将移动计算设备110的端口120连接到第二终端环境140的端口142来将移动计算设备110与第二终端环境140对接,以便创建包括多个活动用户环境的计算环境100。计算环境100的多个活动用户环境可以被配置为对于各种使用模型以不同的方式使用。在一个配置中,移动计算设备110可以将第二终端环境140与移动OS130相关联。在这个配置中,用户环境140可以向用户环境115提供第二活动用户环境,或用户环境140可以将用户环境115替换为用于移动计算设备110的单个活动用户环境。因此,这个配置可以具有与移动OS130相关联的多于一个活动用户环境或单个活动用户环境。计算环境100的这个配置可以被称为单OS、扩展的活动用户环境配置。可以在与第一用户环境115相关联的显示器116和第二活动用户环境140的一个或多个显示器144上以各种配置显示在移动OS130上运行的应用程序。例如,在移动OS130上运行的应用程序可以具有在第二活动用户环境140的显示器144上显示的应用屏幕。如上面描述的,在一些实施例中,移动计算设备110具有在共享内核上与移动OS活跃地并发执行的第二操作系统(例如,桌面OS等)。对于这些实施例,移动计算设备110可以将第二终端环境与桌面OS160相关联。在这个配置中,计算环境100通过与移动OS130相关联的第一活动用户环境115来提供第一计算体验,同时通过与桌面OS160相关联的第二活动用户环境140提供第二计算体验。这些配置通常可以被称为多OS、多活动用户环境配置。虽然这些配置通常提供适合于不同的计算体验的两个或多个单独的用户环境的优点,在某些情况下,用户可能希望通过与不同的操作系统相关联的活动用户环境来访问一个操作系统的各种应用程序和/或能力。例如,用户可能希望通过与桌面OS160相关联的活动用户环境来访问移动OS130的移动电话、位置感知能力、和/或其他应用和/或服务。在上面描述的单OS、扩展的活动用户环境配置或多OS、多活动用户环境配置中,可以跨一个或多个活动用户环境而显示(即,经由应用屏幕)在移动OS130上运行的应用。例如,用户可以通过在第一用户环境115内显示的应用屏幕开始与在移动OS130上运行的应用程序交互,然后将移动计算设备110与第二用户环境140对接,并且通过在第二用户环境140的显示器上显示的应用屏幕继续与相同的应用程序交互。可替换地,用户可以在移动OS130上从第二用户环境140内启动应用程序,使得在第二用户环境140内显示与该应用程序相关联的应用屏幕。可以在第二活动用户环境内以许多配置显示跨环境显示的应用屏幕(即,在与第二活动用户环境相关联的显示器上显示的、与第一活动用户环境相关联的OS上运行的应用)。在某些情况下,应用屏幕可以占据与第二活动用户环境相关联的显示器的全部或基本上全部。在其他情况下,可以在与第二活动用户环境相关联的显示器上的窗口内显示应用屏幕。在这些情况下,可以根据和与应用程序交互有关的当前用户偏好,由用户动态地重新配置所述窗口。第二活动用户环境140可以与移动OS130相关联,或在某些情况下,第二活动用户环境140可以与桌面OS160相关联。实施例提供各种新的技术,所述技术用于对包括扩展的用户环境和/或多个用户环境的各种设备配置动态地配置应用屏幕。应用屏幕的动态配置包括动态地保持多个活动设备配置(即,与单独的活动用户环境相关联的多组配置限定符)以及基于所述多个活动设备配置动态地选择资源。应用屏幕的动态配置考虑多个活动用户环境的特性。实施例还支持在多操作系统计算环境中跨用户环境显示的应用的动态配置。这些实施例支持在第一操作系统中运行、并且在每个控制台窗口和/或每个应用的基础上在第二操作系统的控制台窗口内显示的应用的动态配置。例如,这些实施例包括确定和保持在与用于通过跨环境显示技术显示在第一OS中运行的应用的第二OS的控制台窗口相关联的第一OS中的活动设备配置。基于与第二OS的控制台窗口相关联的活动设备配置的配置限定符,使用动态资源选择生成在第一OS中运行的应用的应用屏幕。在实施例中,可以从来自多个源的指示符和/或参数转换与虚拟显示器相关联的配置限定符。即,可以根据与第一用户环境115相关联的参数确定一些配置限定符,而可以根据与第二终端环境相关联的参数确定其他配置限定符(例如,方位限定符)。在另外的实施例中,可以从多个显示和/或设备参数转换单个配置限定符,其中一些显示和/或设备参数与第一活动用户环境115相关联,并且一些显示和/或设备参数与第二终端环境相关联。另外的实施例基于第二活动用户环境的各种特性以及移动计算设备和第二活动用户环境之间的关系为应用程序管理屏幕方位。例如,移动计算设备可以具有确定方位关系或偏移量的、相对于第二终端环境的固定机械关系。在移动计算设备不具有相对于第二终端环境的固定机械关系的情况下,第二终端环境可以具有或可以不具有用于独立于移动计算设备而确定第二终端环境的方位的独立的方位传感器。实施例还可以使用第二活动用户环境内的应用屏幕的方位和/或高宽比来进行应用配置,包括为应用屏幕动态地选择资源。在另外的实施例中,应用屏幕的活动设备配置可以与移动设备的方位传感器分离。在这些实施例中,可以根据第二活动用户环境的设备特性、默认方位、和/或用户可选择的方位来确定活动设备配置的方位限定符。图7图示包括移动计算设备110的计算环境700a。如上面描述的,移动计算设备110通常包括组成第一用户环境115的一个或多个显示设备116和一个或多个输入设备(例如,一个或多个触摸屏传感器117和/或一个或多个I/O设备118等)。移动计算设备110包括第一操作系统(例如,移动OS130等)。移动计算设备110可以具有在共享内核上与第一OS并发运行的第二操作系统(例如,桌面OS160等)。当移动计算设备110没有与第二终端环境对接时,第一操作系统通过第一活动用户环境提供移动计算体验。当移动计算设备110没有对接时,第二OS(如果存在)可以处于暂停状态。在计算环境700a中,应用752在移动OS130上运行。应用752包括多个资源集,所述多个资源集包括资源集A742、资源集B744、资源集C746、和/或资源集D748。资源集A、B、C和D可以包括可用于建立适合于各种设备配置的应用屏幕的对应的资源。如图7中所示,使用资源集A742在移动计算设备110的一个或多个显示器116上显示应用屏幕762。资源集A742可以具有目标设备配置范围,该目标设备配置范围包括具有与移动计算设备110的一个或多个显示设备116类似或基本上类似的显示器属性的显示器。在这方面,资源集A可以包括可绘制资源和布局资源,其定义适合于在包括一个或多个显示器116的范围内的具有显示器属性(例如,高度、宽度、dpi等)的显示器的特定应用屏幕外观。单OS、扩展的活动用户环境实施例图8图示通过接口122将移动计算设备110与平板式第二终端环境840对接或连接的计算环境700b。当将移动计算设备110与第二终端环境840对接时,计算环境700b包括第一用户环境115和第二用户环境840。在对接或连接第二终端环境时,移动计算设备110可以确定与第二终端环境相关联的用户体验概况。在计算环境700b中,移动计算设备110可以确定第二终端环境具有与平板式第二终端环境相关联的用户体验概况。在这种情况下,移动计算设备110可以根据用户或设备设置将平板式第二终端环境840与移动OS130相关联。在各种实施例中,第二OS(例如,桌面OS160)可以在共享内核320上与移动OS130并发运行。在这些情况下,当移动计算设备110未被对接时,第二OS可以处于暂停状态。如果移动计算设备110将对接的平板式第二终端环境840与移动OS130相关联,则第二OS可以保持暂停。平板式第二终端环境840可以具有可以附接移动计算设备110的物理对接连接器。物理对接连接器可以提供移动计算设备110到平板式第二终端环境840的电耦接(例如,接口122等)和可选地机械固定。即,对接连接器可以建立第一用户环境115的显示器116和第二终端环境840的显示器844之间的预定的物理关系。所述预定的物理关系可以定义固定的方位偏移量。例如,当显示器116在垂直方位上时,显示器844也可以在垂直方位上(即,所述固定偏移量可以是零度),或当显示器116在垂直方位上时,显示器844可以在水平方位上(即,90度的固定偏移量)。可替换地,平板式第二终端环境840可以通过不限制移动计算设备110和平板式第二终端环境840之间的物理关系的有线或无线接口连接到移动计算设备110。例如,平板式第二终端环境840可以通过无线HDMI接口连接到移动计算设备110。在这种情况下,平板式第二终端环境相对于移动计算设备110的、包括相对于重力的方位的相对定位可以是任意的。在一些实施例中,平板式第二终端环境840包括方位传感器。在这些情况下,平板式第二终端环境840可以通过接口122向移动计算设备110指示显示器844相对于重力的方位。移动计算设备110可以询问平板式第二终端环境840以便确定与所对接的第二终端环境840相关联的各种参数。例如,移动计算设备可以向终端环境840询问例如显示器尺寸(例如,宽度、高度等)、显示器像素密度(例如,dpi等)、显示器方位(例如,任意、偏移量、板上感测(on-boardsensing)等)的参数。移动计算设备110可以通过接口122接收这些参数。例如,接口122可以包括扩展的显示器标识数据(EDID)接口,其提供指示第二终端环境840的显示器属性和/或I/O设备能力的数据结构。用于第二用户环境840的各种用户接口属性可以与用于第一用户环境115的不同。具体地,第二用户环境840的显示器844的显示器属性可以与第一用户环境115的一个或多个显示器116的显示器属性不同。例如,显示器844可以具有更大的屏幕区域(即,更大的物理显示器尺寸)、更高的显示器分辨率、不同的显示器高宽比、不同的显示器像素密度、和/或与一个或多个显示器116的其他差异。考虑移动计算设备110确定第二终端环境840的用户体验概况与平板式第二终端环境对应,并且移动计算设备110的设备设置或用户设置指示这种类型的第二终端环境将与移动OS130相关联。移动OS130建立与平板式第二终端环境840的显示器844相关联的虚拟显示器(即,生成虚拟显示器ID和用于根据应用屏幕内容和/或表面数据建立图形信息的对应的图形上下文)。在某些情况下,当移动计算设备110对接到平板式第二终端环境840时,移动计算设备110可以保持用户环境115的操作。在这种情况下,第二终端环境840的显示器844充当用户用来与移动OS130连接的、替代显示器116的显示器。在其他情况下,当移动计算设备110对接到第二终端环境840时,移动计算设备110可以禁用用户环境115。在这种情况下,第二终端环境840将用户环境115替换为单个活动用户环境。一旦移动计算设备110和第二终端环境840通过接口122连接,并且移动OS130与第二终端环境840相关联,用户就可以在第二活动用户环境上显示一个或多个活动应用屏幕。例如,用户可能已经通过手势或菜单选择指示将在第二终端环境840中显示应用752。在检测到指示将在平板式第二终端环境840的显示器844上显示与应用752相关联的应用屏幕的事件时,移动OS130使用适合于应用屏幕864的资源在显示器844上建立应用屏幕864。为应用屏幕864动态地选择资源包括:确定与显示器相关联的属性和与平板式第二终端环境840相关联的I/O设备;选择定义与平板式第二终端环境840相关联的虚拟显示器的图形上下文的限定符;以及选择确定平板式第二终端环境840的I/O属性的限定符。即,移动OS130保持与第二终端环境840相关联的单独的活动设备配置(例如,经由与第二终端环境840相关联的虚拟显示器ID)。与第二终端环境相关联的配置限定符可以部分根据移动计算设备的设备参数(例如,对接模式等)、并且部分根据第二终端环境的设备参数(例如,高宽比、dpi、显示器大小等)确定。确定平板式第二终端环境840的配置属性包括确定平板式第二终端环境840的方位配置。当用户与平板式第二终端环境840交互时,可以动态地更新与第二终端环境840相关联的几个配置限定符。在上面描述的各种实施例中,平板式第二终端环境840具有相对于移动计算设备110的固定的方位偏移量。例如,移动计算设备110可以物理地与平板式第二终端环境840对接,使得对接布置定义显示器116和显示器844之间的固定方位关系。在这种情况下,移动OS130根据移动计算设备110的方位和固定的方位偏移量建立用于与平板式第二终端环境840相关联的虚拟显示器的图形上下文。例如,移动计算设备110可以与平板式第二终端环境840对接,使得移动计算设备的一个或多个显示器116的长轴正交于平板式第二终端环境840的显示器844的长轴。可替换地,移动计算设备110可以与平板式第二终端环境840对接,使得移动计算设备的一个或多个显示器116和显示器844具有不同的方位偏移量。在这些固定偏移量的实施例中,移动计算设备110基于移动计算设备110的方位和固定偏移量生成用于应用752的资源选择的限定符。例如,如果移动计算设备110具有垂直方位,则移动OS130可以将用于与显示器844相关联的虚拟显示器的方位限定符定义为具有水平方位。在上面描述的其他实施例中,可以连接移动计算设备110和平板式第二终端环境840,使得它们不具有受限制的物理关系。例如,可以通过有线或无线接口连接移动计算设备110和平板式第二终端环境840。在这些实施例中,平板式第二终端环境840可以具有板上方位传感器以便确定显示器844相对于重力的方位。在这些情况下,移动OS130通过从平板式第二终端环境840接收的方位指示符将虚拟显示器的方位限定符与平板式第二终端环境840的方位相关联。因此,第二终端环境方位限定符被用于确定用于应用屏幕864的动态资源选择。例如,平板式第二终端环境840可以指示显示器844在垂直方位上。如图8中所示,可以使用资源集B744建立应用屏幕864。如上面描述的,资源集B744可以适合于显示器844的显示器属性和平板式第二终端环境840的当前方位。在这些情况下,移动OS130可以保持与移动计算设备110的显示器116上的应用屏幕的显示相关联的移动计算设备方位限定符。在这方面,移动OS130保持与多个活动用户环境相关联的多个方位限定符输入(feeds)。移动OS130可以将方位限定符与特定显示器ID相关联,使得通过特定显示器显示的应用屏幕根据所关联的显示器的方位而更新。考虑如图8中所示,用户通过在垂直方位上的平板式第二终端环境840的显示器844上的应用屏幕864继续与应用752交互。对于与应用752的特定用户交互,用户可能希望应用752呈现水平方位。图9图示计算环境700c,其中,在为显示器844大体上提供垂直方位的第一位置972上由用户操作平板式第二终端环境840。在第一位置972中,使用资源集B744建立了应用752的应用屏幕864。在通过应用屏幕864与应用752交互期间的某个点处,用户将平板式第二终端环境840从大体上具有垂直方位的第一位置972旋转到大体上具有水平方位的第二位置974。在固定方位偏移量实施例中,移动OS130基于移动计算设备110的方位的改变和固定的方位偏移量来更新与平板式第二终端环境相关联的方位限定符。例如,考虑移动计算设备110和平板式第二终端环境840之间的固定的方位偏移量是90度。在这种情况下,当用户将平板式第二终端环境840从第一位置972旋转到第二位置974时,移动计算设备110将指示它已从水平旋转到垂直方位。在这种情况下,移动OS130应用方位偏移量并且确定平板式第二终端环境840已从垂直方位旋转到水平方位。移动OS130废弃应用屏幕864,并且执行动态资源选择以便为新的方位选择合适的资源。例如,如图9中所示,可以利用资源集C746建立应用屏幕964。在多方位输入(feed)实施例中,当平板式第二终端环境840被旋转到第二位置974时,移动OS130可以从平板式第二终端环境840接收指示显示器844的方位已改变的指示符消息。移动OS130将与显示器844相关联的方位限定符更新为第二位置974的新的方位。同样,如图9中所示,移动OS130废弃应用屏幕844,并且使用应用752的资源集C746在显示器844上建立应用屏幕964。在其他实施例中,平板式第二终端环境840可以不包括独立的方位传感器。在这些实施例中,移动OS130可以将用于在第二用户环境上显示的应用的资源选择和与移动计算设备110相关联的方位限定符分离。在这些情况下,移动OS130可以基于例如标准使用模式方位的设备属性来确定与第二活动用户环境相关联的方位限定符。可替换地,默认方位设置、用户设置、或资源偏好参数可以确定与平板式第二终端环境840的显示器844相关联的方位限定符。例如,某个应用可以默认为用于在显示器844上显示的应用屏幕的、与显示器844的垂直方位相关联的资源集。多OS、多用户环境实施例返回图7,第一OS(例如,移动OS130等)可以在共享内核320上与第二OS(例如,桌面OS160等)并发运行。在计算环境700a中,移动OS130与由移动计算设备110定义的第一活动用户环境115相关联。当移动计算设备110在未对接的状态(即,没有连接或对接到第二终端环境)中时,桌面OS160可以在暂停状态中。图10图示移动计算设备110对接到第二终端环境1040的计算环境700d。第二终端环境1040可以是笔记本式第二终端环境、桌面式第二终端环境、和/或另一类型的第二终端环境。在计算环境700d中,移动计算设备110可以将桌面OS160与第二终端环境1040相关联。在这种情况下,桌面OS160通过由与第二终端环境1040相关联的I/O设备(例如,显示器1044、键盘、一个或多个指点设备等)定义的第二用户环境提供独立的桌面计算体验。使用各种技术,可以访问在移动OS130上运行的应用,并且所述应用可以具有在与桌面OS160相关联的第二用户环境1040的控制台窗口内显示的应用屏幕。在2011年9月27日提交的、名称为“INSTANTREMOTERENDERING”的美国专利申请13/246,665中更详细地描述了这些技术,所述申请的全部内容为了所有目的合并于此。动态地配置跨与不同操作系统相关联的用户环境而显示的应用引起许多问题。例如,移动OS通常每次显示一个应用屏幕,并且保持与移动计算设备相关联的单个活动设备配置。因此,用于移动OS的应用屏幕没有被设计为动态地调整大小。然而,可以在单独的OS(例如,桌面OS160等)的GUI的窗口内显示跨环境应用屏幕。此外,桌面OS可以在桌面OSGUI的窗口内并发显示多个应用屏幕。可以以各种方式动态地拉伸这些窗口或以其他方式调整这些窗口的大小。此外,与第二终端环境相关联的其他设备配置参数可以影响跨环境应用屏幕如何呈现以及用户如何与跨环境应用屏幕交互。例如,与第二终端环境相关联的输入设备可以确定用户与应用屏幕交互的方式。第二终端环境还可以包括可以动态地影响设备配置的其他属性。例如,第二终端环境可以具有可以感测第二终端环境的显示器相对于重力的方位的方位传感器。在这些情况下,跨环境应用屏幕的方位可以被第二终端环境的方位影响。因此,动态地配置跨环境应用屏幕包括基于来自各种源的设备配置参数保持多个活动设备配置。这些源包括与第二终端环境1040相关联的设备(例如,来自显示器1044的EDID数据、输入设备的可用性和/或类型、传感器信息等)、在第二用户环境的显示器上显示的控制台窗口、和/或来自移动计算设备110的传感器的信息(例如,环境光水平等)。移动OS130对于每个活动设备配置确定合适的配置限定符,并且基于与应用相关联的活动设备配置选择用于应用的资源(例如,通过显示器标识符等)。考虑到计算环境700d代表与笔记本式第二终端环境1040对接的移动计算设备110。第一应用1052在移动OS130上运行,并且与在移动计算设备110的显示器116上显示的应用屏幕1062相关联。第二应用1054也在移动OS130上运行。应用1054与在第二终端环境1040的显示器1044上显示的应用屏幕1064相关联。例如,可以通过与在桌面OS160上运行的控制台应用1080相关联的控制台窗口1084显示应用屏幕1064。在实施例中,移动OS130可以定义与控制台应用1080相关联的虚拟显示器。即,对于移动OS130,控制台应用1080可以被认为是移动OS130可以借以在控制台窗口1084中显示应用屏幕和/或其他图形信息的独立的显示设备。在计算环境700d中,移动OS130保持多个活动设备配置。例如,移动OS130可以保持用于第一用户环境115的活动设备配置、以及与借以显示应用屏幕1064的控制台应用1080相关联的单独的活动设备配置。此外,附加的应用可以在移动OS130上运行,并且可以通过在桌面OS160上运行的单独的控制台应用显示所述附加的应用。移动OS130可以对在移动OS130上运行并且远程显示(即,在移动计算设备110外部的用户环境内)的每个应用保持附加的单独的活动设备配置。如上面描述的,应用1054可以包括用于各种不同的设备配置的资源1040。例如,应用1054可以包括定义适合于不同的设备配置的对应应用屏幕组件的资源集E1072、F1074、和G1076。用于控制台窗口1084的活动设备配置包括可以来自定义第二终端环境1040、控制台窗口1084、和/或移动计算设备110的属性的几个不同的源的各种设备配置限定符。例如,用于控制台窗口1084的活动设备配置可以包括用于活动显示器大小(例如,小、中、大等)、活动显示器方位(例如,垂直、水平等)、活动显示器像素密度(例如,dpi等)、和/或输入设备配置(例如,基于触摸、一个或多个指点设备、存在的硬件键盘等)的配置限定符。活动像素密度配置限定符可以来自与第二终端环境的显示器1044相关联的硬件参数(例如,EDID数据等)。可以由移动OS130通过确定第二终端环境1040的各种硬件组件、与控制台应用1080相关联的各种参数、和/或由第二终端环境1040提供的其他信息(例如,传感器数据等)生成用于与应用1054相关联的活动设备配置的配置限定符。如上面讨论的,根据用于基于配置限定符将资源匹配到各种设备配置的预定义过程,基于配置限定符为应用屏幕1064选择应用1054的资源。在图10中,使用资源集E1072建立应用屏幕1064。在这方面,如上面讨论的,根据与第二终端环境1040相关联的配置限定符(例如,指点设备式接口和显示dpi等)和/或显示器1044上的控制台窗口1084的特定大小,资源集E1072可以是最佳匹配资源集。与应用1054相关联的活动设备配置的一些设备配置参数可以在应用1054的运行时期间动态改变。如上面讨论的,移动OS通常跨移动计算设备的整个或基本上整个显示器116而显示特定应用的应用屏幕。然而,用户可以根据用户希望如何与应用交互而调整控制台窗口1084的大小。调整控制台窗口1084的大小具有动态地改变显示设备配置的效果。在实施例中,移动OS响应于控制台窗口改变事件动态地选择用于建立新的应用屏幕的一个或多个资源集。图11示出根据各种实施例的计算环境700e,其图示基于控制台窗口大小调整的动态跨环境应用配置的各方面。在计算环境700e中,用户将控制台窗口1084的大小从由位置1182指示的第一显示区域调整为由位置1186指示的第二更大的显示区域。例如,如由拖动箭头1184指示的,用户可以在控制台窗口的角落上使用拖动动作来调整窗口的大小。在控制台应用1082检测到窗口调整大小事件时,控制台应用1082通知移动OS130与控制台窗口1084的活动显示器大小相关联的参数已改变。移动OS130更新与控制台应用1080相关联(例如,与移动OS130通过其显示应用1054的显示器标识符相关联)的显示器配置限定符。然后,移动OS130根据更新后的显示器配置限定符选择用于与应用1054相关联的应用屏幕的资源。如图11中所示,可以使用资源集F1074为修改后的控制台窗口1084建立应用屏幕1166。例如,资源集F1074可以适合于与桌面OS160相关联的第二用户环境1040的显示器1044上的修改后的控制台窗口1084。图12示出根据各种实施例的计算环境700f,其图示基于控制台窗口大小调整的动态跨环境应用配置的其他方面。在计算环境700f中,用户将控制台窗口1084的大小从由位置1282指示的第一显示区域调整为由位置1286指示的第二显示区域。例如,如由拖动箭头1284指示的,用户可以在控制台窗口的角落上使用拖动动作来调整窗口的大小。在这种情况下,调整控制台窗口1084的大小可以具有改变控制台窗口1084的高宽比的效果。例如,由箭头1284指示的窗口调整大小事件可以将控制台窗口1084从位置1282上的大体上垂直的方位转换为由位置1286指示的大体上水平的方位。移动OS130更新与控制台应用1080相关联的显示器配置限定符。例如,移动OS可以更新方位限定符和/或显示器大小限定符。然后,移动OS130根据更新后的显示器配置限定符选择用于与应用1054相关联的应用屏幕的资源。如图12中所示,可以使用资源集G1076为修改后的控制台窗口1084建立应用屏幕1266。例如,资源集G1076可以适合于如由与桌面OS160相关联的第二用户环境1040的显示器1044上的位置1286所示的修改后的控制台窗口1084。在实施例中,与虚拟显示器1082相关联的方位配置限定符考虑到第二终端环境的方位和/或移动计算设备110的方位。例如,方位限定符可以考虑到控制台窗口1084的高宽比以及显示器1044的方位。可替换地,方位限定符可以考虑到控制台窗口1084的高宽比以及移动计算设备110的方位和显示器1044与移动计算设备110之间的固定方位偏移量。在各种实施例中,应用可以被设计为实施多个并发应用屏幕。例如,移动计算设备可以具有超过一个内置显示设备。在一个实施例中,移动计算设备110包括两个显示设备116。应用可以通过对于应用的各种活动并发地呈现多个应用屏幕来利用多个显示设备的存在。例如,应用可以在一个应用屏幕上具有项目的列表视图并且在第二应用屏幕上具有所选择的项目的详细视图。图13示出根据各种实施例的计算环境700g,其图示可以利用多个并发的应用屏幕的动态跨环境应用配置的各方面。在计算环境700g中,用户将控制台窗口1084的大小从由位置1382指示的第一显示区域调整为由位置1386指示的第二显示区域。例如,如由拖动箭头1384指示的,用户可以在控制台窗口的角落上使用拖动动作来调整窗口的大小。在这种情况下,应用1054可以具有指示当足够的屏幕区域可用时该应用应切换到多屏幕模式的用户设置。例如,用户设置可以指示当与应用相关联的显示区域具有多于某个显示区域并且大体上在水平方位上时,所述应用将进入多屏幕模式。在图13中,控制台窗口1084的由位置1386指示的屏幕区域对于应用1054的多屏幕模式可以足够了。在这种情况下,应用1054可以使用第一资源集1374建立第一应用屏幕1366,并且使用第二资源集1376建立第二应用屏幕1368。图14图示根据上述动态应用配置的各方面动态地配置跨环境应用的过程流1400。过程流1400在方框1402处开始,其中在移动计算设备的第一操作系统中执行第一应用。通常,移动计算设备定义第一活动用户环境。移动计算设备可以与第二用户环境对接,并且可以通过图形接口向第二用户环境提供图形信息(例如,应用屏幕和/或桌面屏幕等)。第二用户环境可以将第一用户环境替换为单个活动用户环境,或所述第二用户环境可以表示可以与第一活动用户环境并发地被交互的第二活动用户环境。在方框1404,移动计算设备接收与第二活动用户环境有关的设备配置改变消息。设备配置改变消息可以与第二活动用户环境和/或第二活动用户环境内的应用呈现(例如,应用窗口等)的属性有关。在方框1406,移动计算设备接收与第二活动用户环境的活动显示器相关联的显示器参数。例如,显示器参数可以指示活动显示器的分辨率、像素密度(例如,dpi等)、和/或高宽比。在方框1408,移动OS基于显示器参数确定与第二活动用户环境的活动显示器相关联的显示器限定符。例如,移动OS可以根据显示器分辨率参数(例如,像素中的宽度、高度等)确定显示器大小限定符(例如,中、大、超大等)。在方框1410,移动OS至少部分基于显示器限定符从可用资源集选择活动资源集。然后,在方框1412,移动OS废除与第一应用相关联的第一应用屏幕。然后,使用在方框1410选择的活动资源集,在方框1414,移动OS在第二活动用户环境的活动显示器上建立和显示第二应用屏幕。图15图示根据上述动态应用配置的各方面动态地配置跨环境应用的方位的过程流1500。在过程流1500中,如由方框1502指示的,第一应用和第二应用在与第一活动用户环境相关联的移动计算设备的第一OS(例如,移动OS)中处于活动并发执行中。在方框1504,第一OS从与第一活动用户环境相关联的第一方位传感器接收第一方位指示符。例如,移动计算设备可以包括第一方位传感器。在方框1506,第一OS基于第一方位指示符确定与第一活动用户环境的活动显示器相关联的第一方位限定符。在方框1508,第一OS使用第一方位限定符以便基于所述方位限定符从第一应用的可用资源集选择用于第一应用的第一资源集。然后,第一OS在第一活动用户环境的第一显示器上显示利用第一资源集建立的第一应用屏幕。在方框1512,第一OS将第二方位限定符与第二活动用户环境的第二活动显示器相关联。像这样,在第二活动用户环境的第二活动显示器上显示的应用的方位配置与第一方位限定符分离。在实施例中,可以根据从与第二活动用户环境相关联的第二方位传感器接收的参数、或根据与第二活动用户环境相关联的默认设置、或根据与在第二显示器内显示的应用窗口相关联的参数来确定第二方位限定符。在方框1514,第一OS基于第二方位限定符从第二应用的可用资源集选择用于第二应用的第二资源集。在方框1516,使用第二资源集建立与第二应用相关联的第二应用屏幕,并且在第二显示器上显示所述第二应用屏幕。使用这个过程流,跨多个活动用户环境保持多个应用的动态方位以便提供更无缝的计算体验。为了图示和描述的目的提出上述描述。此外,所述描述不意欲将本发明的实施例限制为在这里公开的形式。虽然上面讨论了许多示例方面和实施例,本领域技术人员将认识到其某些变化、修改、置换、增加、和子组合。可以由能够执行对应功能的任何合适的手段来执行上面描述的方法的各种操作。所述手段可以包括一个或多个各种硬件和/或软件组件和/或模块,包括但不限于电路、专用集成电路(ASIC)、或处理器。可以利用被设计为执行在这里描述的功能的通用处理器、数字信号处理器(DSP)、ASIC、现场可编程门阵列信号(FPGA)、或其他可编程逻辑设备(PLD)、分立门(discretegate)、或晶体管逻辑、分立硬件组件、或其任何组合来实施或执行所描述的各种说明性逻辑块、模块、和电路。通用处理器可以是微处理器、但在替换方案中,处理器可以是任何市售处理器、控制器、微控制器、或状态机。处理器还可以被实施为计算设备的组合,例如DSP和微处理器的组合、多个微处理器、与DSP核结合的一个或多个微处理器、或任何其他这样的配置。可以直接用硬件、用由处理器执行的软件模块、或用所述两者的组合实施结合本公开描述的方法或算法的步骤。软件模块可以在任何形式的有形存储介质中存在。可以使用的存储介质的一些示例包括随机存取存储器(RAM)、只读存储器(ROM)、闪存、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移除盘、和CD-ROM等。存储介质可以被耦接到处理器,使得处理器可以从存储介质中读取信息和向存储介质写信息。在替换方案中,存储介质可以被集成到处理器中。软件模块可以是单个指令或许多指令,并且可以在几个不同的代码段上、在不同程序中、以及跨多个存储介质分布。在这里公开的方法包括用于实现所描述的方法的一个或多个动作。所述方法和/或动作可以彼此互换,而不背离权利要求的范围。换句话说,除非指定动作的具体顺序,否则可以修改具体动作的顺序和/或用途,而不背离权利要求的范围。可以用硬件、软件、固件或其任何组合实施所描述的功能。如果用软件实施,则所述功能可以被存储为有形的计算机可读介质上的一个或多个指令。存储介质可以是可以由计算机访问的任何可用有形介质。作为示例而不是限制,这样的计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM、或其他光盘贮存器、磁盘贮存器、或其他磁贮存设备、或可用于以指令或数据结构的形式携带或存储所需程序代码并且可以由计算机访问的任何其他有形介质。如在这里使用的,盘(disk)和碟(disc)包括致密碟(CD)、激光碟、光学碟(opticaldisc)、数字通用碟(DVD)、软盘和碟,其中盘通常磁性地再现数据,而碟利用激光光学地再现数据。因此,计算机程序产品可以执行在这里提出的操作。例如,这样的计算机程序产品可以是具有在其上有形地存储(和/或编码)了指令的计算机可读有形介质,可由一个或多个处理器执行所述指令以便执行在这里描述的操作。计算机程序产品可以包括封装材料(packagingmaterial)。还可以经由传输介质传输软件或指令。例如,可以使用例如同轴电缆、光缆、双绞线、数字用户线(DSL)的传输介质、或例如红外线、无线电或微波的无线技术从网站、服务器、或其他远程源传输软件。此外,可以由用户终端和/或基站适当地下载和/或以其他方式获得用于执行在这里描述的方法和技术的模块和/或其他合适的装置。例如,这样的设备可以被耦接到服务器以便利于传递执行在这里描述的方法的装置。可替换地,可以经由贮存装置(例如,RAM、ROM、诸如CD或软盘的物理存储介质等)提供在这里描述的各种方法,使得用户终端和/或基站可以在将贮存装置耦接到或提供到所述设备时获得各种方法。此外,可以使用用于向设备提供这里描述的方法和技术的任何其他适当的技术。其他示例和实施方式在本公开和所附权利要求的范围和精神内。例如,由于软件的本质,可以使用由处理器、硬件、固件、硬连线、或这些项目中的任何项目的组合执行的软件来实施上面描述的功能。实施功能的特征还可以在物理上位于各种位置,包括被分布使得在不同的物理位置处实施功能的多个部分。此外,如在这里使用的,包括在权利要求中,如在由“至少一个”结尾的项目列表中使用的“或”表示选言列表(disjunctivelist),使得例如“A、B或C中的至少一个”的列表意味着A或B或C或AB或AC或BC或ABC(即,A和B和C)。此外,术语“示例的”不意味着所描述的示例是优选的或比其他示例更好。可以做出对在这里描述的技术的各种改变、替代和变更,而不背离如由所附权利要求定义的教导的技术。此外,本公开和权利要求的范围不限于上面描述的过程、机器、制造品、物质的组合、装置、方法、和动作的特定方面。可以使用现有的或后来开发的、执行与在这里描述的对应方面基本相同的功能或实现基本相同的结果的过程、机器、制造品、物质的组合、装置、方法或动作。因此,所附权利要求在它们的范围内包括这样的过程、机器、制造品、物质的组合、装置、方法、或动作。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1