CN105393222A - 网络应用与本地应用之间的渲染委托 - Google Patents
网络应用与本地应用之间的渲染委托 Download PDFInfo
- Publication number
- CN105393222A CN105393222A CN201480040507.8A CN201480040507A CN105393222A CN 105393222 A CN105393222 A CN 105393222A CN 201480040507 A CN201480040507 A CN 201480040507A CN 105393222 A CN105393222 A CN 105393222A
- Authority
- CN
- China
- Prior art keywords
- application
- locality
- computer
- getipupdown
- application state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/509—Offload
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/016—Input arrangements with force or tactile feedback as computer generated output to the user
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/16—Sound input; Sound output
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本文描述了用于在由本地应用所渲染的网络控件与由本地应用所提供的本地指示器之间转移应用状态的概念和技术。网络控件可以嵌入在本地应用中或者可以由本地应用访问。根据本文所公开的一些概念和技术,应用状态控件将应用状态从网络控件转移到本地应用。所述转移可以作为在本地应用处所接收的功能请求的结果而发生。
Description
背景技术
嵌入在本地应用中或者由本地应用使用的网络控件经常不提供无缝体验。例如,在本地应用中显示的网络内容可以不具有与本地控件中相同的外观和感觉。此外,网络控件内的交互性经常感觉脱节,产生了与其余本地应用分离的体验,这是因为视觉指示器由网络内容提供,而不是由本地应用提供。
关于这些考虑以及其他的考虑,提供了此处给出的公开内容。
发明内容
本文描述了用于在本地应用所渲染的网络控件与本地应用所提供的本地指示器之间转移应用状态和渲染控件(“应用状态”)的概念和技术。“应用状态”是指从其中渲染信息的“应用层级”。“应用层级”可以包括本地应用(其可以是一个层级),以及嵌入应用,诸如网络控件,(其为不同的层级)。
根据本文所公开的一些概念和技术,当发起功能请求时,当前公开的主题将应用状态从由本地应用所渲染的网络控件转移到由本地应用所提供的本地指示器。当功能请求完成时,或者在另一适当的时间,将应用状态转移回到网络控件。在一些实现方式中,本地指示器可以是视觉、触觉或听觉指示器。在另外的实现方式中,当将应用状态转移到本地应用时,网络控件可以提供与由本地应用所提供的本地指示器相结合的指示器或者其他视觉信息。
应当意识到的是,上述主题还可以被实现为计算机控制的装置、计算机过程、计算系统或者被实现为诸如计算机可读存储介质之类的制品。通过阅读下面的具体实施方式以及相关附图的阅览,这些特征以及各种其他特征将是显而易见的。
提供该发明内容以便以下文在具体实施方式中进一步描述的简化形式来引入一系列概念。该发明内容不是旨在标识出所要求的主题的关键特征或重要特征,也不旨在使用该发明内容来限定所要求的主题的范围。此外,所要求的主题不限于解决在本公开的任意部分中提到的任何或全部缺点的实现方式。
附图说明
图1是示出可用于实现本文所公开的各个实施例的示例性的操作环境的系统图。
图2A-2C是图示出根据一些实施例的显示视觉控制从网络控件转移到本地应用的显示器的各方面的示例性的屏幕图。
图3是示出根据一些实施例的用于在网络控件与本地应用之间转移应用状态的方法的各方面的流程图。
图4是示出根据一些实施例的能够执行本文所提供的软件组件的设备的各方面的计算机体系结构图。
图5是图示出根据一些实施例的能够实现本文所提供的实施例的各方面的分布式计算环境的各方面的网络图。
图6是示出能够实现本文所提供的实施例的各方面的计算设备体系结构的各方面的计算机体系结构图。
具体实施方式
下面的具体实施方式涉及用于当发起功能请求时将应用状态从由本地应用所渲染的网络控件转移到由本地应用所提供的本地指示器以及转移回到网络控件的技术。当将功能请求发送到向执行本地应用的本地计算机提供数据的远程服务器时,应用状态(其可以包括呈现给用户且在显示器中渲染的视觉信息)从网络控件转移到本地应用,所述本地应用提供本地指示器。
虽然不局限于任何特定的益处,在一些配置中转移应用状态可以具有若干益处。例如,当与远程服务器所提供的网络内容交互时,可以更精确地控制响应时间和提供给用户的反馈。对于网络内容本身的控制层级也可以提高。此外,诸如视觉、触觉等反馈方式可以经过修改或调整而适合用户的需要或偏好。另外,应用状态的转移可以允许远程服务器提供内容而本地应用通过网络控件来渲染内容以保持非耦合,而仍提供两者之间的相对无缝层级的交互。
虽然本文所描述的主题是在与计算机系统上的操作系统和应用程序的执行相结合而执行的程序模块的一般背景下呈现的,但是本领域技术人员将认识到可以与其他类型的程序模块相结合来执行其他的实现方式。一般地,程序模块包括例程、程序、组件、数据结构以及执行特定任务或实现特定的抽象数据类型的其他类型的结构。而且,本领域技术人员将意识到,本文所描述的主题可以利用其他的计算机系统配置来实践,其他的计算机系统配置包括手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、小型计算机、大型计算机等。
在下面的具体实施方式中,参考了附图,附图构成具体实施方式的一部分,并且在附图中通过示例性具体实施例或示例的方式示出。现在参考附图,将呈现计算系统、计算机可读存储介质以及用于转移应用状态的计算机实现方法和其他方面的各方面。
现在参考图1,将对用于实现本文呈现的各个实施例的操作环境100的各方面进行描述。图1所示的操作环境100包括在网络104上运行或者与网络104通信的计算设备102。计算设备102可以是桌面式计算机、膝上型计算机、笔记本计算机、超便携计算机、上网本计算机或诸如移动电话、平板设备、板式设备、便携式视频游戏设备等的计算设备。下面参考图4-6来示出和描述用于实现计算设备102的若干示例性的体系结构。应当理解的是,本文所公开的概念和技术不限于连接到网络或任何外部计算系统的操作环境,因为本文所公开的概念和技术的各个实施例可以在计算设备102上本地地实现。
操作系统106在计算设备102上执行。操作系统106是计算设备102上用于控制功能的可执行程序。计算设备102还能够执行本地应用108。虽然当前公开的主题不限于适配在任何行业中使用的任何一个特定定义或术语内的应用,但是本文所使用的本地应用可以是指利用特定编程语言编码的应用。本地应用典型地设计成快速的且可靠的。一些本地应用可以绑定到移动平台。例如,几乎所有的创建用于在平板设备或智能电话设备上执行的游戏都是本地应用。本地应用可以根据其他通常类型的应用来区分,诸如混合应用、专用网络应用以及通用的移动应用。
混合应用可被设计成依赖于开发架构。混合应用还可以被设计成确保交叉平台兼容性且按如下方式:混合应用能够访问混合应用正在其上执行的设备的硬件,例如照相机。相比之下,专用网络应用是网站,通常用于移动设备,其定制为特定的平台或形状因子。
通用移动应用可以是被设计成与大多数(如果不是全部)的开启互联网的设备一起工作。应当理解的是,虽然当前公开的主题的各方面可以按照“本地”应用来描述,但术语“本地”的使用不意图将本地应用108限制为符合上述提供的类别中的仅一个类别的应用,这是因为包括本地应用108在内的一些应用可以具有符合上述类别中的一个或多个类别的特征。
在一些示例中,本地应用108可以是但不限于作为华盛顿的雷德蒙的微软公司(MicrosoftCorporation)的MICROSOFTOFFICE产品家族的部分的一个或多个生产应用程序。应用程序的示例可以包括应用程序的MICROSOFTWORD、MICROSOFTEXCEL、MICROSOFTPOWERPOINT、MICROSOFTACCESS、MICROSOFTVISIO或MICROSOFTOUTLOOK家族的成员,但不限于这些。应当理解,本文所提供的示例是示例性的,不应以任何方式解释为限制。
本地应用108可以包括网络控件110,网络控件110嵌入本地应用108,集成到本地应用108中,或者由本地应用108访问。用于网络控件110的源代码可以从服务器112或其他源下载,诸如计算设备102,或者可以写入本地应用108。网络控件110所消费的源代码或其他代码可以写入网络控件110或者可以从各种源下载,包括服务器112。网络控件110可以基于各种类型的语言,诸如但不排除HTML以及JAVASCRIPT。然而,应当理解,网络控件110可以用任何适当的编码语言来编写。
此外,本地应用108或者另一适当的实体可以扩展或者修改网络控件110代码以允许将各种主题引入到网络控件110中。例如,主题可以是设计成调用特定响应、具有一定的视觉外观或者在特定背景下提供信息的信息的视觉、音频或触觉呈现。主题的一些示例可以是信息、图形、图片、字体等的特定布局设计。
网络控件110可以执行各种功能。例如,网络控件110可以便于本地应用108与服务器112之间的交互。服务器112可以访问其上存储有数据的内容数据存储设备114,这些数据可以通过网络控件110而可供本地应用108使用。用户(未示出)可以使用本地应用108来访问存储在内容数据存储设备114中的销售数据或其他类型的数据。
用户可以发起计算设备102处的本地应用108,计算设备102可以是用户的个人计算机或工作计算机,以及其他可能。应当意识到,当前公开的主题不限于如图1所示的单个服务器112或者单个内容数据存储设备114。在一些配置中,服务器112和内容数据存储设备114可以是分布式计算环境中的设备,其中服务器112和/或内容数据存储设备114的功能可以由一个或多个设备来提供。
本地应用108可以接收对存储在内容数据存储设备114中的数据在计算设备102上进行渲染的输入。例如,组织中的用户可以期望在计算设备102上查看存储在内容数据存储设备114中的销售数据。然而,应当意识到,当前公开的主题不限于从用户接收到的输入,因为输入可以通过本地应用108、网络控件110或者未在此处具体叙述的其他源来接收或生成。
响应于接收到输入,网络控件110可以将功能请求111发送给服务器112,请求数据或者发送与输入有关的信息。当前公开的主题不限于用于功能请求111的任何类型的功能。此外,当前公开的主题不要求与功能请求111有关的输出或输入。
服务器112可以通过访问内容数据存储设备114以及其他可能的位置或设备来处理功能请求111。服务器112然后可以通过网络104将功能请求111的结果发送到本地应用的网络控件110。网络控件110然后可以将功能请求111的结果提供给本地应用108。本地应用108此后可以处理该结果以用于取决于功能请求111的渲染或其他目的。
本地应用108可以使用各种组件来渲染本地应用108中的信息或数据。例如,本地应用108可以使用网络控件110来渲染通过网络控件110所提供的网络内容。当分配应用状态时,本地应用108还可以分配渲染的视觉层级。例如,本地应用108可以使用网络控件110在相对高或突出的层级为用户渲染网络内容。在该示例中,由网络控件110所提供的网络内容或用户接口可以显示在前景,而由本地应用108所提供的用户接口可以不显示或者显示在背景。网络控件110可以具有相对高的视觉层级(即,前景),而由本地应用108而不是网络控件110所提供的用户接口或其他数据可以具有相对低的视觉层级(即,背景)。然而,应当理解,本公开不限于前景/背景操作,因为可以使用其他的高/低层级操作。例如,在高视觉层级下渲染的信息可以被加高亮,而在低显示层级下渲染的信息可以加阴影。
当使用远程存储的数据(诸如存储在内容数据存储设备114中的数据)时,当利用先前的方法来执行视觉渲染时,在功能请求111操作期间视觉渲染可能是脱节的。例如,用户可以选择由网络控件110所提供的内容的一部分。如果该选择需要功能请求111,则用户可能被呈现由网络控件110提供的显示,然而期望的是与当操作本地应用108时所期望的相当的显示。
在本示例中,功能请求111可以要求内容数据存储设备114与本地应用108之间的数据转移。如果数据转移花费可觉察的时间量,则可能将显现出由于请求处理功能请求111的时间而“卡住”或“无响应”的屏幕呈现给用户。因此,在功能请求111正被处理的同时,本地应用108可以继续渲染内容,而不改变,这是因为本地应用108可以不被配置为检测网络控件110的动作。本文呈现的实施例解决了这些考虑以及潜在地其他考虑。
本地应用108可以具有应用状态控件116。应用状态控件116可以控制渲染的层级。使用其中接收功能请求111的输入的上述示例,本地应用108或网络控件110可以指示应用状态控件116改变应用状态,这通过将由本地应用108所渲染的视觉层级从网络控件110转移到本地应用108。因此,本地应用108可以渲染一个或多个指示器或者提供指示用户或其他实体功能请求111正被处理的一个或多个输出。将应用状态从网络控件110转移到本地应用108可以提供用户或其他实体所需或所期望的反馈或信息的层级。
当应用状态控件116被指示将应用状态从网络控件110转移到本地应用108时,可以启动本地指示器118。“指示器”是用于传送诸如操作状况之类的信息以及其他可能的渲染的图像。例如,指示器可以是当数据下载或上载处于进行中时所渲染的“进行中”图像。称为“本地”的指示器是由本地应用所使用的或者以其他方式与本地应用相关联的指示器。本地指示器118可以由本地应用108、网络控件110、应用状态控件116或本文未叙述的其他应用来启动。当启动时,本地指示器118按本地应用108所指示地启动指示器。指示器118可以具有各种形式。例如而非限制的方式,指示器可以是指示功能请求111正由网络控件110处理的视觉、触觉或听觉指示器。
通过示例而非限制的方式,视觉指示器可以是显示出动作(诸如功能请求111)已经由本地应用108或网络控件110启动的沙漏标图像。视觉指示器可以渲染在由网络控件110提供的显示的上方。在另一配置中,本地应用108可以取得由网络控件110所提供的网络内容的屏幕捕获,显示该屏幕捕获,并且其后在屏幕捕获上方显示指示器。一旦功能请求111完成,可以移除屏幕捕获和指示器。
另一示例可以是触觉指示器,通过示例而非限制的方式,触觉指示器可以是计算设备102的振动。通过示例而非限制的方式,听觉指示器可以铃声或音乐。应当意识到的是,指示器可以是多于一种的视觉、触觉或听觉指示器的组合。例如而非通过限制的方式,指示器可以是若干视觉指示器的组合或者可以是视觉指示器和触觉指示器的组合。
当功能请求111完成时,本地指示器118可以接收或者移除先前启动的指示或者启动另外的指示的指令。例如而非通过限制的方式,本地指示器118可以渲染和维持沙漏标图像形式的视觉指示器。当本地指示器118接收到功能请求111完成的指令时,本地指示器118可以移除沙漏标。
在另一示例中,可以命令本地指示器118提供另外的指示器,诸如振动计算设备102来通知用户功能请求111完成。与接收或者移除先前启动的指示或者启动另外的指示的指令的本地指示器118相结合,应用状态控件116可以将视觉层级从本地应用108返回到网络控件110,从而将应用状态从本地应用108变成网络控件110。此后,网络控件110可以具有与本地应用108相比而言相对较高的视觉层级。
图2A-2C是显示器200的屏幕示意图,显示出视觉控制从网络控件110到本地应用108的转移。显示器200已经在其上渲染了网络内容202。网络内容202可以从包括内容数据存储设备114的各种源来获得。网络内容202可以由网络控件110来渲染。网络内容202可利用用户可查看的数据204来渲染。网络内容202还可以利用可以用于与网络内容202交互的用户接口控件206来渲染。
如上所述,当启动功能请求111时,应用状态控件116可以将视觉层级从网络控件110转移到本地应用108。在一个示例中,当本地应用108或网络控件110接收到用户208选择了名为“ROWLABELS”的用户接口控件206之一的输入时,可以启动功能请求111。在该示例中,功能请求111可以是对信息排序的请求。当本地应用108或网络控件110接收到用户208选择了名为“INTERNETSALESAMOUNT”的用户接口控件206之一的输入时,功能请求111也可以类似的方式启动。
这些动作以及其他的动作可以启动功能请求111。功能请求111还可以通过其他过程来生成,其本公开不限于启动功能请求111的任何特定源。例如,功能请求111可通过本地应用108或网络控件110响应于诸如刷新显示器200的另一输入来启动,而无需用户输入。如果本地应用108从服务器112接收到启动功能请求111的输入,则应用状态控件116可以将视觉层级从网络控件110转移到本地应用,如图2B和图2C中以示例的方式所显示的。
图2B是在本地应用108或网络控件110接收到用户208已经选择了用户接口控件206之一的输入之后显示器200的示例性屏幕图。网络控件110可以确定该选择可能要求指示器向用户208显示网络控件110正发出功能请求111。在该示例中,应用状态控件116可以将视觉层级转移到本地应用108。本地应用108可以确定可能需要或期望指示器。因此,本地应用108可以引导本地指示器118启动一个或多个指示器。在本示例中,指示器包括指示处理功能请求111所需要的时间的定时器指示器210。指示器还可以包括网络内容202的显示区域的阴影化。一旦功能请求111完成,应用状态控件116可以将视觉层级返回到网络控件110。
图2C是显示出不同的指示器的显示器的示例性屏幕图。在图2C中,本地应用108或网络控件110已经接收到用户208已选择了用户接口控件206之一的输入。按照不同于图2B所示的方式,功能请求111不能由服务器112执行,或者已发生另一错误。因此,在该示例中,本地指示器118可以提供错误指示器212,旨在向用户208提供已发生错误的信息。本地指示器118可以维持错误指示器212或者可以按应用状态控件116的引导移除错误指示器212。
图3是示出根据示例性实施例的用于将应用状态控制在由本地应用108所渲染的网络控件110与由本地应用108所提供的本地指示器118之间转移的方法300的各方面的流程图。应当理解,本文所公开的方法的操作不一定按任何特定的次序来呈现,而且按可选顺序执行操作的一些或全部是可能的且预期的。为了易于描述和图示,已经按展示的顺序呈现了操作。可以添加、省略和/或同时执行操作,而不偏离随附权利要求的范围。
还应当理解,图示的方法可以在任何时间结束,无需以其整体来执行。方法的一些或全部操作和/或基本上等同的操作能够通过包含在计算机存储介质上的计算机可读指令的执行来实施,如本文所限定的。在说明书和权利要求中使用的术语“计算机可读指令”及其变型在本文中扩展地使用以包括例程、应用、应用模块、程序模块、程序、组件、数据结构、算法等。计算机可读指令能够在各种系统配置上实现,包括单处理器或多处理器系统、小型计算机、大型计算机、个人计算机、手持式计算设备、基于微处理器的可编程消费电子设备、它们的组合等。
因此,应当意识到,此处所描述的逻辑操作被实施为(1)在计算系统上运行的计算机实现的行为或程序模块的序列,和/或(2)在计算系统内互连的机器逻辑电路或电路模块。实现方式是取决于计算系统的性能以及其他要求的选择问题。因此,本文所描述的逻辑操作多样地称为状态、操作、结构设备、行为或模块。这些操作、结构设备、行为和模块可以用软件、用固件、用专用数字逻辑及其任意组合来实现。
方法300的操作在下文中描述为至少部分地通过本地应用108、网络控件110、应用状态控件116、本地指示器118以及服务器112或其组合来实现。方法300的操作中的一个或多个可以可选地或者另外地至少部分地由计算设备102或类似配置的服务器计算机中的类似组件来实现。
方法300开始于操作302,其中接收到启动功能请求111的输入。可以从包括用户208的输入的各种源来接收输入。例如,用户208可以选择启动功能请求111的一个或多个用户接口控件206。功能请求111可以是从计算设备102发送到服务器112的请求以指示服务器112执行功能、提供数据等以及其他可能。
方法300进行到操作304,其中功能请求111被发送。可以将功能请求111发送到服务器112。功能请求111可以由网络控件110发送,网络控件110充当本地应用108内的嵌入式应用,充当本地应用108的代理或者受本地应用108指导,或者功能请求111可以由本地应用108发送。本公开的主题不限于发送功能请求111的实体或所采用的方式。
方法300进行到操作306,其中应用状态转移到由本地应用108所提供的用户接口或显示。应用状态是由本地应用108的应用状态控件116从网络控件110的应用状态转移的。应用状态的转移可以包括各种类型的指示器。例如,应用状态的转移可以包括如图2B所示的诸如定时器指示器210或者如图2C所示的错误指示器212的指示器。指示器还可以包括其他类型的视觉指示器、触觉指示器或音频指示器,或者其各种组合。
方法300进行到操作308,其中本地应用108或网络控件110响应于功能请求111而从服务器112接收信息。信息可以包括诸如文本、数字等数据以及其他信息。信息还可以包括指示功能请求111已经被接收且正被处理的状况更新或通知。
方法300进行到操作310,其中对功能请求111是否完成做出判定。在方法300的该点处,应用状态处于本地应用108层级,由此本地应用108正在提供用户接口或显示中的全部或者一些。在操作310做出判定的信息可以从服务器112接收或者可以由诸如本地应用108、网络控件110或另一实体的另一实体来生成。
响应于在操作310处判定出功能请求111完成,方法300进行到操作312,其中应用状态从本地应用108转移回到网络控件110。如上所述的,应用状态在或者处于网络控件110或者处于本地应用108时可以包括来自网络控件110或本地应用108的用户接口或其他显示信息。方法300然后结束。
响应于在操作310处功能请求111完成的判定,方法300进行到操作314,其中应用状态保持在本地应用108处。本地应用108可以对服务器112进行周期性询问以确定功能请求111的状况。本地应用108还可以被配置为等待一定时间段来接收来自服务器112的、指示功能请求111已经完成的通知。本地应用108可以在操作310处周期性地判定功能111是否完成。如果功能请求111完成,则方法如上所指示进行到操作312,且其后结束。
图4示出了能够执行本文所描述的用于提供本文所述的概念和技术的软件组件的设备的示例性计算机体系结构400。因此,在图4所示的计算机体系结构400图示出服务器计算机、移动电话、PDA、智能手机、桌面式计算机、上网本计算机、平板式计算机和/或膝上型计算机的体系结构。计算机体系结构400可以用于执行本文呈现的软件组件的任意方面。
图4所示的计算机体系结构400包括中央处理单元(“CPU”)402、包括随机存取存储器406(“RAM”)和只读存储器(“ROM”)408在内的系统存储器404、以及将存储器404与CPU402耦合的系统总线410。包含例如在启动期间有助于在计算机体系结构400内的要素之间转移信息的基本例程的基本输入/输出系统存储在ROM408中。计算机体系结构400进一步包括大容量存储设备412,其用于存储图1的操作系统106以及包括但不限于本地应用108、网络控件110、应用状态控件116以及本地指示器118的一个或多个应用程序。
大容量存储设备412通过与总线410连接的大容量存储控制器(未示出)连接到CPU402。大容量存储设备412及其相关联的计算机可读介质提供用于计算机体系结构400的非易失性存储。虽然本文所包含的计算机可读介质的描述是指大容量存储设备,诸如硬盘或CD-ROM驱动器,本领域技术人员应当意识到,计算机可读介质可以是能够由计算机体系结构400存取的任何可用的计算机存储介质或通信介质。
通信介质包括计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制的调制的数据信号中的其他数据,并且包括任何输送介质。术语“调制的数据信号”意指使其特性中的一个或多个以对信号中的信息进行编码的方式进行改变或设置的信号。通过示例的方式而不是限制的方式,通信介质包括诸如有线网络或直接接线连接的有线介质、以及诸如声波、RF、红外和其他无线介质之类的无线介质。上述任意的组合也应当包含在计算机可读介质的范围内。
通过示例而不是限制的方式,计算机存储介质可以包括在用于诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的非暂时性存储的任何方法或技术中实现的易失性的和非易失性的、可移除的和非可移除的介质。例如,计算机介质包括但不限于RAM、ROM、EPROM、EEPROM、闪速存储器或其他固态存储器技术、CD-ROM、数字多功能盘(“DVD”)、HD-DVD、BLU-RAY或其他光学存储、磁盒、磁带、磁盘存储或其他磁存储设备、或任何其他能够用于存储期望的信息的介质,且其能够由计算机体系结构400访问。为了权利要求的目的,短语“计算机存储介质”及其变型不包括波或信号本身和/或通信介质。
根据各个实施例,计算机体系结构400可以利用通过诸如网络104的网络到远程计算机的逻辑连接而在联网环境中运行。计算机体系结构400可以通过与总线410连接的网络接口单元416而连接到网络104。应当意识到,网络接口单元416还可用于连接到其他类型的网络和远程计算机系统。计算机体系结构400还可以包括用于从包括键盘、鼠标或电子指示笔(在图4中通过示例的方式示出)的多种其他设备接收输入并处理输入的输入/输出控制器418。类似地,输入/输出控制器418可以将输出提供给显示屏、打印机、或其他类型的输出设备。
应当意识到,本文所述的软件组件当被加载到CPU402中且执行时可以将CPU402和总体计算机体系结构400从通用计算系统变换成专用计算系统,该专用计算系统被定制以便于本文所呈现的功能。CPU402可以由任意数量的晶体管或其他离散的电路元件来构成,这些晶体管或离散的电路元件可以单独地或者统一地呈现出任意多种状态。更具体地,CPU402可以响应于包含在本文所公开的软件模块内的可执行指令而作为有限状态机来操作。这些计算机可执行指令可以通过指定CPU402如何在状态之间转变来变换CPU402,从而变换构成CPU402的晶体管或其他离散的硬件元件。
对本文所呈现的软件模块进行编码也可以变换本文所呈现的计算机可读介质的物理结构。在本说明书的不同实现方式中,物理结构的具体变换可以取决于各种因素。这些因素的示例可以包括但不限于用于实现计算机可读介质的技术,无论计算机可读介质是否表征为主存储还是辅助存储,等等。例如,如果计算机可读介质实现为基于半导体的存储器,则可以通过变换半导体存储器的物理状态而在计算机可读介质上对本文所公开的软件进行编码。例如,软件可以变换晶体管、电容器或其他构成半导体存储器的离散的电路元件的状态。软件还可以变换这些组件的物理状态从而将数据存储于其上。
作为另一示例,本文所公开的计算机可读介质可以利用磁技术或光学技术来实现。在这些实现方式中,当软件编码于其中时,本文呈现的软件可以变换磁介质或光学介质的物理状态。这些变换可以包括改变给定的磁介质内的特定位置的磁特性。这些变换还可以包括改变给定的光学介质内的特定位置的物理特征或特性,以改变那些位置的光学特性。物理介质的其他变换是可能的,而不偏离本说明书的范围和精神,提供前述的示例仅为便于本说明书。
根据上述,应当意识到的是,为了存储并执行本文所提供的软件组件,多种类型的物理变换发生在计算机体系结构400中。还应当意识到的是,计算机体系结构400可以包括其他类型的计算设备,包括手持式计算机、嵌入式计算机系统、个人数字助理以及本领域技术人员已知的其他类型的计算设备。还可以预期的是,计算机体系结构400可以不包括图4所示的全部组件,可以包括图4中没有明确显示的其他组件,或者可以使用完全不同于图4所示的体系结构。
图5图示出能够执行本文所描述的用于搜索提供本文所描述的概念和技术的软件组件的示例性分布式计算环境500。因此,图5所示的分布式计算环境500能够用于提供本文所描述的功能。因此,分布式计算环境500可用于执行本文呈现的软件组件的任意方面。
根据各种实现方式,分布式计算环境500包括在网络104上操作、与网络104通信或者作为网络104的一部分的计算环境502。网络104还可以包括各种访问网络。一个或多个客户端设备506A-506N(下文统称为和/或一般地称为“客户端506”)能够经由网络104和/或其他连接(图5中没有图示出)而与计算环境502通信。在图示的实施例中,客户端506包括:计算设备506A,诸如膝上型计算机、桌面式计算机或其他计算设备;板式或平板式计算设备(“平板式计算设备”)506B;移动计算设备506C,诸如移动电话、智能手机、或其他移动计算设备;服务器计算机506D;和/或其他设备506N。应当理解的是,任意数量的客户端506能够与计算环境502通信。应当理解,本文图示和描述的图示客户端506和计算体系结构是示例性的,而不应理解为以任何方式进行限制。
在图示的实施例中,计算环境502包括应用服务器508、数据存储510以及一个或多个网络接口512。根据各种实现方式,应用服务器508的功能可以由作为网络504的一部分执行或者与网络504通信的一个或多个服务器计算机来提供。应用服务器508能够掌管各种服务、虚拟机、端口和/或其他资源。在图示的实施例中,应用服务器508掌管用于掌管应用或其他功能的一个或多个虚拟机514。根据各种实现方式,虚拟机514掌管用于提供本文所述的功能的一个或多个应用和/或软件模块。应当理解,该实施例是示例性的,而不应理解为以任何方式进行限制。应用服务器508还掌管或提供到一个或多个网络端口、链接页面、网站和/或其他信息(“网络端口”)516的访问。
根据各种实现方式,应用服务器508还包括一个或多个邮箱服务518以及一个或多个消息传送服务520。邮箱服务518可以包括电子邮件(“电邮”)服务。邮箱服务518还可以包括各种个人信息管理(“PIM”)服务,包括但不限于日历服务、联系人管理服务、协作服务和/或其他服务。消息传送服务520可以包括但不限于即时消息传送服务、聊天服务、论坛服务和/或其他通信服务。
应用服务器508还可以包括一个或多个社交网络服务522。社交网络服务522可以包括各种社交网络服务,包括但不限于:用于共享或张贴状况更新、即时消息、链接、照片、视频和/或其他信息的服务;用于评论或显示对于物品、产品、博客或其他资源的兴趣的服务;和/或其他服务。在一些实施例中,社交网络服务522由FACEBOOK社交网络服务、LINKEDIN专业网络服务、MYSPACE社交网络服务、FOURSQUARE地理网络服务、YAMMER办公同事联网服务等来提供或者包括这些服务。在其他实施例中,社交网络服务522由可以或者可以不明确地称为社交网络提供商的其他服务、站点和/或提供商来提供。例如,一些网站允许用户在诸如阅读出版物、评论商品或服务、公布、协作、游戏等各种活动和/或上下文期间经由电邮、聊天服务和/或其他手段彼此交互。这些服务的示例包括但不限于华盛顿的雷德蒙的微软公司(MicrosoftCorporation)的WINDOWSLIVE服务以及XBOXLIVE服务。其他服务是可能的且可预期的。
社交网络服务522还可以包括评论、发博客和/或发微博服务。这些服务的示例包括但不限于YELP评论服务、KUDZU阅览服务、OFFICETALK企业微博服务、TWITTER消息传送服务、GOOGLEBUZZ服务、和/或其他服务。应当意识到的是,上述服务列表不是穷尽的,为简要起见,此处没有提到很多附加的和/或可替代的社交网络服务522。因此,上述实施例是示例性的,而不应理解为以任何方式进行限制。
如图5所示,应用服务器508还可以掌管其他服务、应用、端口和/或其他资源(“其他资源”)524。其他资源524可以包括但不限于本地应用108、网站控件110、应用状态控件116以及本地指示器118。因此,能够意识到,计算环境502能够提供本文所公开的概念和技术与各种邮箱、消息传送、社交网络和/或其他服务或资源的集成。
如上所提到的,计算环境502可以包括数据存储设备510。根据各种实现方式,数据存储设备510的功能由在网络104上操作或者与网络104通信的一个或多个数据存储来提供。数据存储设备510的功能还能够由配置为掌管用于计算环境502的数据的一个或多个服务器计算机来提供。数据存储设备510可以包括、掌管或提供一个或多个真实的或虚拟的数据存储526A-526N(下文统称为和/或一般地称为“数据存储526”)。数据存储526被配置为掌管由应用服务器508创建或使用的数据和/或其他数据。虽然图5中没有示出,数据存储526还能够掌管或存储图2所示的数据存储224中的数据存储224A-224N。
计算环境502能够与网络接口512通信或者由网络接口512来访问。网络接口512可以包括用于支持两个或更多个计算设备之间的通信的各种类型的网络硬件和软件,包括但不限于客户端506以及应用服务器508。应当意识到的是,网络接口512还可用于连接其他类型的网络和/或计算机系统。
应当理解,本文所描述的分布式计算环境500能够为本文所描述的软件要素的任意方面提供可配置为执行本文所公开的软件组件的任意方面的任意数量的虚拟计算资源和/或其他分布式计算功能。根据本文所公开的概念和技术的各种实现方式,分布式计算环境500将在本文中描述的软件功能作为服务提供给客户端506。应当理解,客户端506可以包括真实的或虚拟的机器,包括但不限于服务器计算机、网络服务器、个人计算机、移动计算设备、智能手机、和/或其他设备。因此,本文所公开的概念和技术的各个实施例使得被配置为访问分布式计算环境500的任何设备能够使用本文所描述的功能。
现转到图6,用于计算设备的示例性计算设备体系结构600,其能够执行本文所描述的各种软件组件,用于在由本地应用所渲染的网络控件与由本地应用所提供的本地指示器之间转移应用状态控制。计算设备体系结构600能够应用于部分地由于形状因子、无线连接和/或电池供电的操作而实现移动计算的计算设备。在一些实施例中,计算设备包括但不限于移动电话、平板式设备、板式设备、便携式视频游戏设备等。而且,计算设备体系结构600能够应用于图5所示的客户端506中的任何。此外,计算设备体系结构600的各方面可应用于传统的桌面式计算机、便携式计算机(例如,膝上型计算机、笔记本、超便携和上网本)、服务器计算机以及其他计算机系统,诸如本文参考图1所描述的。例如,下文所公开的单触摸和多触摸方面可应用于利用触摸屏或诸如触控跟踪板或触控鼠标的一些其他触控设备的桌面式计算机。
图6所示的计算设备体系结构600包括处理器602、存储器组件604、网络连接组件606、传感器组件608、输入/输出(“I/O”)组件610、以及电源组件612。在图示的实施例中,处理器602与存储器组件604、网络连接组件606、传感器组件608、I/O组件610和电源组件612通信。虽然没有显示出图6所示的各个组件之间的连接,但是组件能够交互以实施设备功能。在一些实施例中,组件被布置以便于经由一个或多个总线(未示出)进行通信。
处理器602包括中央处理单元(“CPU”),其被配置为处理数据,执行一个或多个应用程序的计算机可执行指令,以及与计算设备体系结构600的其他组件进行通信,以便于执行本文所描述的各种功能。处理器602可以用于执行本文所呈现的软件组件的各方面,尤其是至少部分地利用触控输入的那些软件组件。
在一些实施例中,处理器602包括图形处理单元(“GPU”),其被配置为加速CPU所执行的操作,包括但不限于通过执行通用科学与工程计算应用以及诸如高分辨率视频(例如,720P、1080P以及更大)、视频游戏、三维(“3D”)建模应用等图形密集计算应用来执行的操作。在一些实施例中,处理器602被配置为与离散的GPU(未示出)进行通信。在任何情况下,CPU和GPU可根据协处理CPU/GPU计算模型来配置,其中应用的顺序部分在CPU上执行,而计算密集部分通过GPU来加速。
在一些实施例中,处理器602是片上系统(“SoC”)以及下文描述的其他组件中的一个或多个组件或者包括在SoC以及下文描述的其他组件中的一个或多个组件中。例如,SoC可以包括处理器602、GPU、网络连接组件606中的一个或多个、以及传感器组件608中的一个或多个。在一些实施例中,处理器602部分地利用封装叠加封装(“PoP”)集成电路封装技术来制作。而且,处理器602可以是单核或多核处理器。
处理器602可以根据可用于英国剑桥的ARMHOLDINGS许可的ARM体系结构来创建。可替代地,处理器602可以根据例如从加利福尼亚的山景城的INTELCORPORATION提供的以及其他的x86体系结构来创建。在一些实施例中,处理器602是从加利福尼亚的圣地亚哥的QUALCOMM提供的SNAPDRAGONSoC、从加利福尼亚的圣克拉拉的NVIDIA提供的TEGRASoC、从韩国首尔的SAMSUNG提供的HUMMINGBIRDSoC、从德克萨斯的达拉斯的TEXASINSTRUMENTS提供的开放多媒体应用平台(“OMAP”)SoC、上述SoC中任一个的定制版本或者专利SoC。
存储器组件604包括随机存取存储器(“RAM”)614、只读存储器(“ROM”)616、集成存储存储器(“集成存储设备”)618、以及可移除存储存储器(“可移除存储设备”)620。在一些实施例中,RAM614或其部分、ROM616或其部分、和/或RAM614和ROM616的某种组合集成到处理器602中。在一些实施例中,ROM616被配置为存储固件、操作系统或其部分(例如,操作系统核心)、和/或从集成存储设备618或可移除存储设备620加载操作系统核心的引导加载程序。
集成存储设备618可以包括固态存储器、硬盘或固态存储器和硬盘的组合。集成存储设备618可以焊接或以其他方式连接到逻辑板上,本文所描述的处理器602以及其他组件也可以连接到该逻辑板上。因此,集成存储设备618集成到计算设备中。集成存储设备618被配置为存储操作系统或其部分、应用程序、数据、以及本文所描述的其他软件组件。
可移除存储设备620可以包括固态存储器、硬盘或固态存储器和硬盘的组合。在一些实施例中,可移除存储设备620代替集成存储设备618来提供。在其他实施例中,可移除存储设备620被提供为附加的可选存储设备。在一些实施例中,可移除存储设备620与集成存储设备618逻辑地组合,以使得总体可用存储作为集成存储设备618和可移除存储设备620的总组合容量可供用户使用并显示给用户。
可移除存储设备620被配置为插入可移除存储存储器槽(未示出)或其他机制,通过这样可移除存储设备620被插入且紧固以便于连接,经由该连接可移除存储设备620能够与诸如处理器602之类的计算设备的其他组件进行通信。可移除存储设备620可以以各种存储器卡格式来实施,包括但不限于PC卡、压缩闪存卡、存储器棒、安全数字(“SD”)、迷你SD、微SD、通用集成电路卡(“UICC”)(例如,用户身份识别模块(“SIM”)或通用SIM(“USIM”))、专利格式等。
能够理解的是,一个或多个存储器组件604可以存储操作系统。根据各种实施例,操作系统包括但不限于来自SYMBIANLIMITED的SYMBIANOS、来自华盛顿的雷德蒙的微软公司的WINDOWSMOBILEOS、来自微软公司的WINDOWSPHONEOS、来自微软公司的WINDOWS、来自加利福尼亚的帕罗奥多的惠普公司的PALMWEBOS、来自加拿大安大略省滑铁卢的ResearchInMotionLimited的BLACKBERRYOS、来自加利福尼亚库珀蒂诺的苹果公司的IOS、以及来自加利福尼亚山景城的谷歌公司的ANDROIDOS。可预期其他操作系统。
网络连接组件606包括无线广域网组件(“WWAN组件”)622、无线局域网组件(“WLAN组件”)624以及无线个域网组件(“WPAN组件”)626。网络连接组件606便于到或来自网络104的通信,网络104可以是WWAN、WLAN或WPAN。虽然图示出单个网络104,但是网络连接组件606可以便于与多个网络的同时通信。例如,网络连接组件606可以便于经由WWAN、WLAN或WPAN中的一个或多个与多个网络的同时通信。
网络104可以是WWAN,诸如利用一个或多个移动远程通信技术来经由WWAN组件622向利用计算设备体系结构600的计算设备提供语音和/或数据服务的移动远程通信网络。移动远程通信技术可以包括但不限于全球移动通信系统(“GSM”)、码分多址(“CDMA”)ONE、CDMA2000、通用移动远程通信系统(“UMTS”)、长期演进(“LTE”)以及全球微波互连接入(“WiMAX”)。此外,网络104可以利用各种信道接入方法(这些方法可以或者可以不通过前述标准来使用),包括但不限于,时分多址(“TDMA”)、频分多址(“FDMA”)、CDMA、宽带CDMA(“W-CDMA”)、正交频分多路复用(“OFDM”)、空分多址(“SDMA”)等。数据通信可以利用通用分组无线服务(“GPRS”)、全球演进增强数据率(“EDGE”)、包含高速下行链路分组接入(“HSDPA”)的高速分组接入(“HSPA”)协议族、增强上行链路(“EUL”)或其他称谓的高速上行链路分组接入(“HSUPA”)、演进HSPA(“HSPA+”)、LET、以及其他各种当前的和未来的无线数据接入标准来提供。网络104可以被配置为利用上述技术的任意组合来提供语音和/或数据通信。网络104可以被配置为或者适于根据未来一代的技术来提供语音和/或数据通信。
在一些实施例中,WWAN组件622被配置为提供到网络104的双模多模连接。例如,WWAN组件622可以被配置为提供到网络104的连接,其中网络104经由GSM和UMTS技术或者经由技术的某种其他组合来提供服务。可替代地,多个WWAN组件622可用于执行这些功能,和/或提供附加的功能来支持其他的非兼容技术(即,不能由单个WWAN组件支持的)。WWAN组件622可以便于到多个网络(例如,UMTS网络和LTE网络)的类似的连接。
网络104可以是根据诸如IEEE802.11a、802.11b、802.11g、802.11n和/或未来的802.11标准的一个或多个电气电子工程师协会(“IEEE”)802.11标准(此处统称为WI-FI)而操作的WLAN。还可以预期草稿802.11标准。在一些实施例中,WLAN是利用一个或多个无线WI-FI接入点来实现的。在一些实施例中,无线WI-FI接入点中的一个或多个是与充当WI-FI热点的WWAN连接的另一计算设备。WLAN组件624被配置为经由WI-FI接入点连接到网络104。这些连接可以经由各种加密技术来保证,加密技术包括但不限于WI-FI保护接入(“WPA”)、WPA2、有线等效保密(“WEP”)和类似技术。
网络104可以是根据红外数据关联(“IrDA”)、BLUETOOTH、无线通用串行总线(“USB”)、Z-Wave、ZIGBEE、或某种其他短程无线技术来操作的WPAN。在一些实施例中,WPAN组件626被配置为经由WPAN便于与诸如外围设备、计算机、或其他计算设备的其他设备通信。
传感器组件608包括磁力计628、环境光传感器630、接近度传感器632、加速计634、陀螺仪636以及全球定位系统传感器(“GPS传感器”)638。可以预期的是,诸如但不限于温度传感器或震动检测传感器之类的其他传感器也可以并入计算设备体系结构600中。
磁力计628被配置为测量磁场的强度和方向。在一些实施例中,磁力计628为存储在存储器组件604之一内的罗盘应用程序提供测量,以便于为用户提供在参考系内的精确方向,包括主要方向,北、南、东和西。可以为为包括罗盘组件的导航应用程序提供类似的测量。可以预期通过磁力计628所获得的测量的其他用途。
环境光传感器630被配置为测量环境光。在一些实施例中,环境光传感器630为一个存储器组件604内存储的应用程序提供测量,以便于自动调节显示器(下文描述)的亮度以补偿低光和高光环境。可以预期由环境光传感器630所获得的测量的其他用途。
接近度传感器632被配置为在不直接接触的情况下检测接近于计算设备的对象或事物的存在。在一些实施例中,接近度传感器632检测用户身体(例如,用户面部)的存在并且将该信息提供给存储在存储器组件604之一内的使用接近度信息来启用或禁止计算设备的一些功能的应用程序。例如,电话应用程序可以响应于接收到接近度信息而自动地禁用触摸屏(下文描述),使得用户面部不会不注意地结束呼叫或者启用/禁用在呼叫期间电话应用程序的其他功能。可以预期如接近度传感器632检测到的接近度的其他用途。
加速计634被配置为测量正确的加速度。在一些实施例中,来自加速计634的输出由应用程序用作控制应用程序的一些功能的输入机制。例如,应用程序可以是视频游戏,其中人物、其部分或对象响应于经由加速计634接收到的输入而移动或以其他方式被操纵。在一些实施例中,来自加速计634的输出提供给应用程序,用于在横向模式和纵向模式之间切换,计算坐标加速度,或者检测降落。可以预期加速计634的其他用途。
陀螺仪636被配置为测量并保持方位。在一些实施例中,来自陀螺仪636的输出由应用程序用作控制应用程序的一些功能的输入机制。例如,陀螺仪636能够用于对视频游戏应用或某些其他应用内的移动的精确识别。在一些实施例中,应用程序利用来自陀螺仪636和加速计634的输出来增强应用程序的一些功能的控制。可以预期陀螺仪636的其他用途。
GPS传感器638被配置为从GPS卫星接收信号,用于计算位置。由GPS传感器638计算出的位置可以由要求位置信息或者受益于位置信息的应用程序来使用。例如,由GPS传感器638计算出的位置可与导航应用程序一起使用以提供从该位置到目的地的方向或者从目的地到该位置的方向。而且,GPS传感器638可以用于将位置信息提供给基于外部基于位置的服务,诸如E911服务。GPS传感器638可以获得利用网络连接组件606中的一个或多个经由WI-FI、WIMAX、和/或蜂窝三角测量技术所生成的位置信息以辅助GPS传感器638获得位置锁定。GPS传感器638还可以用于辅助GPS(“A-GPS”)系统中。
I/O组件610包括显示器640、触摸屏642、数据I/O接口组件(“数据集I/O”)644、音频I/O接口组件(“音频I/O”)646、视频I/O接口组件(“视频I/O”)648以及照相机650。在一些实施例中,显示器640和触摸屏642组合。在一些实施例中,组合数据I/O组件644、音频I/O接口组件646和视频I/O组件648中的两个或更多个。I/O组件610可以包括离散的处理器,其被配置为支持下面描述的各种接口,或者可以包括内置于处理器602中的处理功能。
显示器640是被配置为以可视形式呈现信息的输出设备。特别地,显示器640可以呈现图形用户接口(“GUI”)要素、文本、图像、视频、通知、虚拟按钮、虚拟键盘、消息传送数据、互联网内容、设备状况、时间、日期、日历数据、偏好、地图信息、位置信息以及能够以可视形式呈现的任何其他信息。在一些实施例中,显示器640是液晶显示器(“LCD”),其利用任何有源或无源矩阵技术以及任何背光技术(如果使用)。在一些实施例中,显示器640是有机发光二极管(“OLED”)显示器。可以预期其他显示器类型。
触摸屏642是被配置为检测触摸的存在以及位置的输入设备。触摸屏642可以是电阻式触摸屏、电容式触摸屏、表面声波触摸屏、红外触摸屏、光学成像触摸屏、分散信号触摸屏、声脉冲识别触摸屏,或者可以使用任何其他触摸屏技术。在一些实施例中,触摸屏642作为透明层并入显示器640的上面以使用户能够使用一次或多次触摸来与呈现在显示器640上的对象或其他信息进行交互。在其他实施例中,触摸屏642是并入不包含显示器640的计算设备的表面上的触摸板。例如,计算设备可以具有并入显示器640上面的触摸屏以及位于与显示器640相对的表面上的触摸板。
在一些实施例中,触摸屏642是单触摸式触摸屏。在其他实施例中,触摸屏642是多触摸式触摸屏。在一些实施例中,触摸屏642被配置为检测离散的触摸、单触摸手势和/或多触摸手势。为方便起见,这些在本文统称为手势。现在将对若干手势进行说明。应当理解,这些手势是示例性的,不是想要限制随附权利要求的范围。而且,所描述的手势、附加的手势和/或可替代的手势可以在与触摸屏642一起使用的软件中实现。因此,开发者可以创建专用于特定应用程序的手势。
在一些实施例中,触摸屏642支持轻敲手势,其中,用户在呈现在显示器640上的项上轻敲触摸屏642一次。轻敲手势可用于各种原因,包括但不限于打开或者启动用户所轻敲的任何项。在一些实施例中,触摸屏642支持双轻敲手势,其中用户在呈现在显示器640上的项上轻敲触摸屏642两次。双轻敲手势可用于各种原因,包括但不限于按阶段放大或缩小。在一些实施例中,触摸屏642支持轻敲与保持手势,其中用户轻敲触摸屏642并且保持接触持续至少预先定义的时间。轻敲与保持手势可以用于各种原因,包括但不限于打开上下文特定的菜单。
在一些实施例中,触摸屏642支持平移手势,其中用户将手指放置在触摸屏642上并且保持与触摸屏642相接触同时在触摸屏642上移动手指。平移手势可用于各种原因,包括但不限于以受控的速率移过屏幕、图像或菜单。还可以预期多手指平移手势。在一些实施例中,触摸屏642支持轻拂手势,其中用户在用户想要屏幕移动的方向上划动手指。轻拂手势可用于各种原因,包括但不限于水平地或垂直地滚过菜单或页面。在一些实施例中,触摸屏642支持夹拉手势,其中用户用两个手指(例如,拇指和食指)在触摸屏642上做夹取运动且使两个手指分开。夹拉手势可用于各种原因,包括但不限于对网站、地图或图片的逐渐放大或缩小。
虽然已经参考用于执行手势的一个或多个手指的使用描述了上述手势,诸如脚趾的其他附件或诸如指示笔的对象可用于与触摸屏642进行交互。因此,上述手势应当理解为示例性的,且不应理解为以任何方式进行限制。
数据I/O接口组件644被配置为便于数据到计算设备的输入以及从计算设备输出数据。在一些实施例中,数据I/O接口组件644包括连接器,该连接器被配置为在计算设备与计算机系统之间提供有线连接性,例如用于同步操作的目的。连接器可以是专用连接器或者诸如USB、微USB、迷你USB等的标准化连接器。在一些实施例中,连接器是用于将计算设备与另外的设备对接的对接连接器,另外的设备诸如对接站、音频设备(例如,数字音乐播放器)或视频设备。
音频I/O接口组件646被配置为将音频输入和/或输出能力提供给计算设备。在一些实施例中,音频I/O接口组件644包括被配置为采集音频信号的麦克风。在一些实施例中,音频I/O接口组件644包括被配置为提供耳机或其他外部扬声器的连接性的耳机插孔。在一些实施例中,音频I/O接口组件646包括用于音频信号输出的扬声器。在一些实施例中,音频I/O接口组件644包括音频光缆输出。
视频I/O接口组件648被配置为给计算设备提供视频输入和/或输出能力。在一些实施例中,视频I/O接口组件648包括视频连接器,其被配置为从另外的设备(例如,视频媒体播放器,诸如DVD或BLUERAY播放器)接收视频作为输入或者将视频作为输出发送到另外的设备(例如,监控器、电视机、某种其他的外部显示器)。在一些实施例中,视频I/O接口组件648包括高清晰多媒体接口(“HDMI”)、迷你HDMI、微HDMI、显示器端口或者输入/输出视频内容的专利连接器。在一些实施例中,视频I/O接口组件648或其部分与音频I/O接口组件646或其部分组合。
照相机650可被配置为捕获静态图像和/或视频。照相机650可以利用电荷耦合器件(“CCD”)或互补金属氧化物半导体(“CMOS”)图像传感器来捕获图像。在一些实施例中,照相机650包括闪存以辅助在低光环境下拍摄图片。针对照相机650的设置可以被实现为硬件或软件按钮。
虽然没有示出,一个或多个硬件按钮也可以包括在计算设备体系结构600中。硬件按钮可用于控制计算设备的一些操作方面。硬件按钮可以是专用按钮或多次使用按钮。硬件按钮可以是机械式的或者是基于传感器的。
图示的电源组件612包括一个或多个电池652,电池能够连接到电池计量器654。电池652可以是可再充电的或者一次性的。可再充电电池类型包括但不限于锂聚合物、锂离子、镍镉、以及镍金属氢化物。电池652中的每个可由一个或多个单元制成。
电池计量器654能够被配置为测量诸如电流、电压和温度的电池参数。在一些实施例中,电池计量器654被配置为测量电池放电速率、温度、寿命以及其他在一定误差百分比内预测剩余寿命的其他因素的效果。在一些实施例中,电池计量器654将测量结果提供给被配置为使用测量结果来呈现有用的电源管理数据给用户的应用程序。电源管理数据可以包括所使用电池的百分比、电池剩余百分比、电池状态、剩余时间、剩余容量(例如,以瓦特小时数计算)、当前消耗和电压中的一项或多项。
电源组件612还可以包括电力连接器,该电力连接器可以与上述I/O组件610中的一个或多个组合。电源组件612可以经由电力I/O组件(未示出)与外部电力系统或充电装备相接。
基于上述,应当意识到的是,本文已经公开了用于在由本地应用所渲染的网络控件与由本地应用所提供的本地指示器之间转移应用状态控制的概念和技术。虽然用特定于计算机结构特征、方法和变换行为、特定的计算机器以及计算机可读介质的语言描述了本文呈现的主题,但是应当理解,在随附权利要求中限定的发明不一定局限于本文所描述的特定的特征、行为或介质。而是,特定的特征、行为和介质作为实现权利要求的示例形式而公开。
上述的主题仅通过示例的方式提供,而不应理解为限制。可以对本文所描述的主题做出各种修改和改变,而不遵从所图示和描述的示例性实施例和应用,并且不偏离在随附的权利要求中阐明的本发明的真正的精神和范围。
Claims (10)
1.一种用于转移应用状态控制的计算机实现的方法,包括:
在本地应用的网络控件处接收发起功能请求的输入,其中,所述网络控件被配置为渲染存储在内容数据存储设备中的数据;
响应于所述功能请求而发送所述请求;
将所述本地应用的应用状态从所述网络控件转移到所述本地应用;
发起本地指示器;
响应于所述功能请求而接收信息;以及
将所述本地应用的所述应用状态从所述本地应用转移到所述网络控件。
2.根据权利要求1所述的计算机实现的方法,其中,所述应用状态包括所述本地应用的视觉层级。
3.根据权利要求1所述的计算机实现的方法,其中,将所述本地应用的所述应用状态从所述本地应用转移到所述网络控件包括判定所述功能请求是否完成。
4.根据权利要求1所述的计算机实现的方法,进一步包括:响应于判定出所述功能请求未完成而将所述本地应用的所述应用状态保持在所述本地应用处。
5.根据权利要求1所述的计算机实现的方法,其中,发起所述本地指示器包括:将对在显示器中渲染的视觉信息的所述控制从所述网络控件转移到所述本地应用。
6.一种其上存储有计算机可读指令的计算机可读存储介质,当由计算机执行时,所述计算机可读指令使得所述计算机进行以下操作:
执行本地应用;
执行嵌入在所述本地应用中的网络控件;
接收执行功能请求操作的输入;
在所述功能请求操作期间,将应用状态转移到所述本地应用;
发起本地指示器;以及
当未正在执行功能请求操作时,将所述应用状态转移到所述网络控件。
7.根据权利要求6所述的计算机可读存储介质,进一步包括计算机可读指令,当由所述计算机执行时,所述计算机可读指令使得所述计算机进行以下操作:
执行应用状态控件,所述应用状态控件被配置为控制在所述功能请求操作期间将所述应用状态转移到所述本地应用,以及当未正在执行功能请求操作时将所述应用状态转移到所述网络控件,其中,在所述功能请求操作期间将所述应用状态转移到所述本地应用包括将视觉层级转移到所述本地应用。
8.根据权利要求6所述的计算机可读存储介质,进一步包括计算机可读指令,当由所述计算机执行时,所述计算机可读指令使得所述计算机进行以下操作:
判定所述功能请求操作是完成还是未完成,以及
响应于判定出所述功能请求未完成而将所述本地应用的所述应用状态保持在所述本地应用处。
9.根据权利要求6所述的计算机可读存储介质,其中,在所述功能请求操作期间将应用状态转移到所述本地应用包括使得所述计算机在显示器的前景中渲染由所述本地应用所提供的所述本地指示器。
10.一种计算机,包括:
处理器;以及
与所述处理器通信的计算机可读存储介质,所述计算机可读存储介质具有存储于其上的计算机可执行指令,当由所述处理器执行时,所述计算机可执行指令使得所述处理器进行以下操作:
执行本地应用,
执行嵌入到所述本地应用中的网络控件,
接收执行功能请求操作的输入,
执行应用状态控件,所述应用状态控件被配置为控制在所述功能请求操作期间将应用状态转移到所述本地应用,以及当未正在执行所述功能请求操作时将所述应用状态转移到所述网络控件,
响应于所述功能请求操作而接收信息,以及
在所述功能请求操作期间发起来自所述本地应用的本地指示器,其中,所述本地指示器包括视觉、触觉、或听觉指示器。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361846122P | 2013-07-15 | 2013-07-15 | |
US61/846,122 | 2013-07-15 | ||
US14/048,769 US9451005B2 (en) | 2013-07-15 | 2013-10-08 | Delegation of rendering between a web application and a native application |
US14/048,769 | 2013-10-08 | ||
PCT/US2014/045965 WO2015009504A1 (en) | 2013-07-15 | 2014-07-09 | Delegation of rendering between a web application and a native application |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105393222A true CN105393222A (zh) | 2016-03-09 |
CN105393222B CN105393222B (zh) | 2019-03-19 |
Family
ID=52278026
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480040507.8A Active CN105393222B (zh) | 2013-07-15 | 2014-07-09 | 网络应用与本地应用之间的渲染委托 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9451005B2 (zh) |
EP (1) | EP3022650B1 (zh) |
CN (1) | CN105393222B (zh) |
WO (1) | WO2015009504A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107229454A (zh) * | 2016-03-24 | 2017-10-03 | 阿里巴巴集团控股有限公司 | 混合视图的显示方法及装置 |
CN109863724A (zh) * | 2016-11-03 | 2019-06-07 | 华为技术有限公司 | 用于转发元件的有状态控制的方法和装置 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9451005B2 (en) | 2013-07-15 | 2016-09-20 | Microsoft Technology Licensing, Llc | Delegation of rendering between a web application and a native application |
JP5963815B2 (ja) * | 2013-11-08 | 2016-08-03 | 株式会社ソニー・インタラクティブエンタテインメント | 情報処理装置および情報処理方法 |
US20160078008A1 (en) * | 2014-09-11 | 2016-03-17 | Microsoft Corporation | Integrating user interface experiences from multiple applications |
US20170052773A1 (en) * | 2015-08-17 | 2017-02-23 | Google Inc. | Application installs using remote applications |
US10261752B2 (en) * | 2016-08-02 | 2019-04-16 | Google Llc | Component libraries for voice interaction services |
CN112118463A (zh) * | 2019-06-21 | 2020-12-22 | 广州虎牙科技有限公司 | 一种信息处理方法、云平台及信息处理系统 |
US11016717B1 (en) | 2019-11-08 | 2021-05-25 | Microsoft Technology Licensing, Llc | Selective electronic content casting |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1435764A (zh) * | 2002-02-01 | 2003-08-13 | 上海贝尔阿尔卡特移动通信系统有限公司 | 并发事件处理方法及使用该方法的基于万维网的应用系统 |
CN1945535A (zh) * | 2005-08-23 | 2007-04-11 | 捷讯研究有限公司 | 在电子设备之间传送软件状态的方法和系统 |
US20080092122A1 (en) * | 2006-10-13 | 2008-04-17 | Infosys Technologies Ltd. | Automated performance monitoring |
US20130139103A1 (en) * | 2011-11-29 | 2013-05-30 | Citrix Systems, Inc. | Integrating Native User Interface Components on a Mobile Device |
CN103197963A (zh) * | 2012-01-05 | 2013-07-10 | 宏碁股份有限公司 | 无缝工作状态转移的方法和系统 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050050449A1 (en) | 2003-08-29 | 2005-03-03 | Dehamer Brian James | Web presentation architecture that supports page navigation management |
TW200743385A (en) * | 2006-05-05 | 2007-11-16 | Amtran Technology Co Ltd | Method of audio-visual communication using television and television using the same |
US20070006238A1 (en) | 2005-07-01 | 2007-01-04 | Microsoft Corporation | Managing application states in an interactive media environment |
US20070089048A1 (en) | 2005-10-14 | 2007-04-19 | Lacey Jon-David K | Displaying using graphics display language and native UI objects |
US20070220083A1 (en) | 2006-03-17 | 2007-09-20 | Microsoft Corporation | Estimation of initial dynamic rendering control data |
US20090235189A1 (en) | 2008-03-04 | 2009-09-17 | Alexandre Aybes | Native support for manipulation of data content by an application |
FR2957700B1 (fr) * | 2010-03-22 | 2012-04-13 | Bull Sas | Procede, programme d'ordinateur et dispositif d'optimisation de chargement et de demarrage d'un systeme d'exploitation dans un systeme informatique via un reseau de communication |
US20120221657A1 (en) | 2011-02-28 | 2012-08-30 | Gur Zeevi | System and method for remotely controlling web content with mobile devices |
US9210213B2 (en) | 2011-03-03 | 2015-12-08 | Citrix Systems, Inc. | Reverse seamless integration between local and remote computing environments |
US9699272B2 (en) * | 2012-09-29 | 2017-07-04 | Oracle International Corporation | Mechanism for initiating behavior in a native client application from a web client application via a custom URL scheme |
US9451005B2 (en) | 2013-07-15 | 2016-09-20 | Microsoft Technology Licensing, Llc | Delegation of rendering between a web application and a native application |
-
2013
- 2013-10-08 US US14/048,769 patent/US9451005B2/en active Active
-
2014
- 2014-07-09 WO PCT/US2014/045965 patent/WO2015009504A1/en active Application Filing
- 2014-07-09 CN CN201480040507.8A patent/CN105393222B/zh active Active
- 2014-07-09 EP EP14745298.1A patent/EP3022650B1/en active Active
-
2016
- 2016-08-29 US US15/250,190 patent/US10476931B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1435764A (zh) * | 2002-02-01 | 2003-08-13 | 上海贝尔阿尔卡特移动通信系统有限公司 | 并发事件处理方法及使用该方法的基于万维网的应用系统 |
CN1945535A (zh) * | 2005-08-23 | 2007-04-11 | 捷讯研究有限公司 | 在电子设备之间传送软件状态的方法和系统 |
US20080092122A1 (en) * | 2006-10-13 | 2008-04-17 | Infosys Technologies Ltd. | Automated performance monitoring |
US20130139103A1 (en) * | 2011-11-29 | 2013-05-30 | Citrix Systems, Inc. | Integrating Native User Interface Components on a Mobile Device |
CN103197963A (zh) * | 2012-01-05 | 2013-07-10 | 宏碁股份有限公司 | 无缝工作状态转移的方法和系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107229454A (zh) * | 2016-03-24 | 2017-10-03 | 阿里巴巴集团控股有限公司 | 混合视图的显示方法及装置 |
CN107229454B (zh) * | 2016-03-24 | 2019-11-12 | 阿里巴巴集团控股有限公司 | 混合视图的显示方法及装置 |
US10789420B2 (en) | 2016-03-24 | 2020-09-29 | Alibaba Group Holding Limited | Mixed view display method and device |
CN109863724A (zh) * | 2016-11-03 | 2019-06-07 | 华为技术有限公司 | 用于转发元件的有状态控制的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US20160373512A1 (en) | 2016-12-22 |
US20150019623A1 (en) | 2015-01-15 |
US9451005B2 (en) | 2016-09-20 |
WO2015009504A1 (en) | 2015-01-22 |
EP3022650A1 (en) | 2016-05-25 |
CN105393222B (zh) | 2019-03-19 |
EP3022650B1 (en) | 2019-01-30 |
US10476931B2 (en) | 2019-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11703990B2 (en) | Animated visual cues indicating the availability of associated content | |
US10521251B2 (en) | Hosting application experiences within storage service viewers | |
CN105393222A (zh) | 网络应用与本地应用之间的渲染委托 | |
US9460416B2 (en) | Reading mode for interactive slide presentations with accompanying notes | |
CN102968312B (zh) | 用于应用扩展程序的用户界面占位符 | |
CN108369595B (zh) | 可收集数据结构的可扩展性 | |
CN104067215B (zh) | 呈现数据驱动表单 | |
CN104541271A (zh) | 从电子表格数据生成场景和游览 | |
CN102982440A (zh) | 聚集和呈现任务 | |
CN108028857A (zh) | 智能通知 | |
CN106537371A (zh) | 可视化建议 | |
US20200065052A1 (en) | Enhanced techniques for merging content from separate computing devices | |
EP3766025B1 (en) | Driving contextually-aware user collaboration based on user insights | |
WO2017100022A1 (en) | Enhanced management capabilities for collectable data structures | |
CN103257997A (zh) | 为视频及其他媒体内容启用复制和粘贴功能 | |
WO2019089067A1 (en) | Machine learning system for adjusting operational characteristics of a computing system based upon hid activity | |
EP4062345A1 (en) | Enhanced views and notifications of location and calendar information | |
CN106062709A (zh) | 将主题信息从主机应用传播到主机扩展 | |
CN107409085A (zh) | 电子邮件消息的有条件的即时递送 | |
CN107810489B (zh) | 应用与设备之间的无缝转换 | |
CN105408866A (zh) | 远程脚本环境中的上下文关联性 | |
CN105745648A (zh) | 桌面页和移动页之间的不平衡映射 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |