CN115461713A - 利用预测姿势分析预加载和执行应用程序组件 - Google Patents

利用预测姿势分析预加载和执行应用程序组件 Download PDF

Info

Publication number
CN115461713A
CN115461713A CN202180030494.6A CN202180030494A CN115461713A CN 115461713 A CN115461713 A CN 115461713A CN 202180030494 A CN202180030494 A CN 202180030494A CN 115461713 A CN115461713 A CN 115461713A
Authority
CN
China
Prior art keywords
input target
detection region
detection area
input
computing device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202180030494.6A
Other languages
English (en)
Inventor
D·勒德尔
A·萨尔芒
M·诺沃塞莱茨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN115461713A publication Critical patent/CN115461713A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction 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
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04812Interaction techniques based on cursor appearance or behaviour, e.g. being affected by the presence of displayed objects

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本文公开的技术利用预测姿势来预加载和/或执行应用程序组件,以在软件应用程序中提供改进的响应性和加载时间。在一些配置中,系统可以监测用户输入姿势以确定用户控制的光标是否移动到定位在一个或多个能够选择的用户界面(“UI”)元素附近的检测区域中。当用户输入导致光标移动到检测区域中时,计算设备可以预加载或执行存储器中的一个或多个应用程序组件。该系统还可以基于多个因素动态地调整检测区域的位置、大小和/或形状,包括一个或多个预定输入姿势的识别。通过动态调整检测区域,系统可以优化预测技术以识别用户的意图以启动一个或多个应用程序组件的预加载或预执行操作。

Description

利用预测姿势分析预加载和执行应用程序组件
背景技术
一些现有的软件应用程序可以包括范围广泛的功能,使用户能够访问和管理来自大量资源的数据。因此,某些应用程序可能涉及复杂的体系结构,可能需要与许多远程计算机和服务进行协调。例如,一些通信程序使多个用户能够共享实时视频和音频流,同时提供对日历、电话簿、地址簿、聊天消息、共享文件等的访问。此类应用程序可以与存储所有不同类型的内容的大量资源协调。
鉴于一些当前系统的复杂性和互连的性质,一些应用程序依赖于许多应用程序组件,这些应用程序组件可以包括存储内容和可执行库的数据结构。这种结构可能有许多缺点,一个缺点是依赖于许多应用程序组件的应用程序的启动时间会导致过度延迟。软件开发人员不断面临着最小化应用程序启动时间的任务的挑战,因为不必要的延迟会极大地影响终端用户体验以及应用程序的整体吸引力和实用价值。
应用程序设计者已经使用多种技术来帮助最小化应用程序的启动时间。例如,一些设计在启动应用程序时专门选择某些组件或应用程序数据类别以加载到存储器中。尽管这种方法可以在初始启动期间帮助提高应用程序的性能,但是当在运行时访问某些应用程序功能时,用户可能会遇到延迟。如果在启动序列期间没有将应用程序组件加载到存储器中,则需要计算机使用按需加载模型,该模型将应用程序组件加载到存储器中或在用户启动功能时执行其他操作。因此,尽管按需加载模型可能有助于应用程序的启动时间,但这种安排会导致延迟,从而影响应用程序的整体响应性。
可以意识到,存在对优化应用程序的响应性和启动时间两者的解决方案的需要。本文所公开的内容正是针对这些和其他技术挑战提出的。
发明内容
本文公开的技术利用由预测姿势分析确定的预期用户动作来预加载和/或执行应用程序组件,以在软件应用程序中提供改进的效率、响应性和启动时间。在一些配置中,系统可以监测用户输入姿势以确定用户控制的光标是否移动到定位在一个或多个能够选择的用户界面(“UI”)元素附近的检测区域中。当用户输入导致光标移入检测区域时,系统可以预加载或执行与UI元素相关联的一个或多个应用程序组件。该系统还可以基于多个因素动态地调整检测区域的位置、大小和/或形状,包括一个或多个预定输入姿势的存在。通过动态地调整用于启动相关应用程序组件的动作的检测区域的各个方面,系统可以优化用于识别用户意图的预测技术。除了改善在应用程序的执行期间的功能的响应时间外,优化的预测技术还可以允许应用程序减少加载到存储器中的初始信息量,从而减少应用程序的启动时间。
在一些配置中,系统可以响应于检测到预定输入姿势而取消预先执行的操作或清除预加载到存储器中的存储数据。例如,如果应用程序的用户界面包括两个UI元素,一个用于显示联系人信息的按钮和一个用于显示消息信息的按钮,则当用户输入导致光标进入检测区域时,系统可以加载这两组信息。当光标满足关于UI元素中一个UI元素的一个或多个标准时,系统可以清除另一个UI元素的已加载信息以优化存储器资源的使用。例如,当光标在用于显示联系人信息的按钮的阈值距离内移动时,系统可以清除预加载的消息信息。
在一些配置中,系统可以在预定阶段启动应用程序组件的动作。例如,如果通信应用程序利用多个应用程序组件来取回会议参与者的联系人信息,则系统可以需要执行多个阶段:建立与远程服务的连接,取回联系人信息,并将联系人信息加载到存储器中。该系统可以基于对多个检测区域的用户输入姿势的检测来控制每个阶段的执行。在一些配置中,检测区域可以围绕一个或多个UI元素同心布置。每个检测区域可以创建与多阶段过程的每个阶段相关联的层,以提供对可以使用的计算资源的更细粒度级别的控制。
除了以上明确描述的那些之外的特征和技术益处将通过阅读以下详细描述和回顾相关附图而变得明显。提供本发明内容以以简化形式介绍概念的选择,这些概念将在下面的详细描述中进一步描述。本发明内容不旨在识别所要求保护的主题的关键或基本特征,也不旨在用作确定所要求保护的主题范围的帮助。例如,术语“技术”可以指上面和整个文件所描述的上下文所允许的系统、方法、计算机可读指令、模块、算法、硬件逻辑和/或操作。
附图说明
参考附图来描述详细描述。在图中,附图标记的最左侧数字标识附图标记首次出现的图。不同图中相同的附图标记表示相似或相同的项目。对多个项目中的单个项目的引用可以使用带有字母序列中的字母的附图标记来指代每个单独的项目。对项目的通用引用可以使用没有字母顺序的特定附图标记。
图1是用于在软件应用程序中提供改进的响应性和加载时间的系统的框图。
图2A示出了用于动态调整检测区域的过程中的示例用户界面和输入目标的第一状态。
图2B示出了用于动态调整检测区域的过程中的示例用户界面和输入目标的第二状态以及更新的检测区域。
图2C示出了用于动态调整检测区域的过程中的示例用户界面和输入目标的第三状态。
图2D示出了示例用户界面和在选择用户界面元素的过程中输入目标的状态。
图2E示出了可以响应于对图2D中描绘的用户界面元素的选择而显示的示例用户界面。
图3A示出了可以在用于维持检测区域的大小、位置和形状的过程中使用的输入姿势的示例。
图3B示出了可以在用于动态调整检测区域的过程中使用的第一输入姿势的示例。
图3C示出了可以在用于动态调整检测区域的过程中使用的第二输入姿势的示例。
图3D示出了可以在用于维持检测区域的大小、位置和形状的过程中使用的另一个输入姿势的示例。
图3E示出了可以在用于动态调整检测区域的过程中使用的第三输入姿势的示例。
图4A示出了用于取消用于执行或预加载相关联的应用程序组件的一个或多个动作的过程中的示例用户界面和输入目标的第一状态。
图4B示出了用于取消用于执行或预加载相关联的应用程序组件的一个或多个动作的过程中的示例用户界面和输入目标的第二状态。
图4C示出了用于取消用于执行或预加载相关联的应用程序组件的一个或多个动作的过程中的示例用户界面和输入目标的第三状态。
图4D示出了用于取消用于执行或预加载相关联的应用程序组件的一个或多个动作的过程中的示例用户界面和输入目标的第四状态。
图5A示出了在用于执行或预加载应用程序组件的阶段的过程中的示例用户界面和输入目标的第一状态。
图5B示出了在用于执行或预加载应用程序组件的阶段的过程中的示例用户界面和输入目标的第二状态。
图5C示出了在用于执行或预加载应用程序组件的阶段的过程中的示例用户界面和输入目标的第三状态。
图5D示出了在用于执行或预加载应用程序组件的阶段的过程中的示例用户界面和输入目标的第四状态。
图6A示出了在用于执行或预加载与每个检测区域相关联的应用程序组件的过程中具有多个检测区域的示例用户界面和输入目标的第一组状态。
图6B示出了在用于执行或预加载与每个检测区域相关联的应用程序组件的过程中具有多个检测区域的示例用户界面和输入目标的第二组状态。
图6C示出了用于基于图6A和图6B中描绘的输入姿势来执行、预加载、取消和清除应用程序组件的动作表。
图7是示出用于启用本文公开的技术的例程的方面的流程图。
图8是计算机体系结构图,示出了用于能够实现本文所呈现的方法和技术的方面的计算系统的说明性计算机硬件和软件架构。
图9是示出能够实现本文所呈现的方法和技术的方面的分布式计算环境的图。
图10是示出了用于能够实现本文所呈现的方法和技术的方面的计算设备的计算设备体系结构的计算机体系结构图。
具体实施方式
图1图示了用于实现本公开的方面的系统100。一般而言,系统100可以通过利用预测姿势来预加载和/或预执行应用程序组件来提高计算系统的效率。在该说明性示例中,预测姿势引擎134可以使计算设备101能够使用输入设备105的任何组合来监测用户输入姿势,以确定用户控制的输入目标111(例如鼠标光标112)是否移动到位于一个或多个能够选择的用户界面(“UI”)元素120附近的检测区域119中。当用户输入导致输入目标111移动到检测区域119中时,计算设备101可以预加载或执行存储器128中的一个或多个应用程序组件122。应用程序组件122可由与能够选择的UI元素120相关联的应用程序130的功能使用。因此,当用户选择个体UI元素(120A-120D)时,提供对应用程序组件122的访问而没有由按需加载范例引起的延迟。计算设备101还可以修改检测区域119的大小、位置和/或形状,以优化对用于启动预加载和/或预执行操作的预测姿势的检测。
计算设备101可以基于多个因素而动态地修改检测区域119的大小、位置和/或形状。例如,计算设备101可以基于对一个或多个预定输入姿势的检测来修改检测区域119的至少一个维度。计算设备101可以分析输入数据116的属性以确定输入目标111的方向、位置和/或速度是否满足关于检测区域119的一个或多个标准。一旦输入目标111满足关于检测区域119的一个或多个标准,计算设备101可以增加或减小检测区域119的大小,改变检测区域119的形状,和/或将检测区域119移动到用户界面117内的任何位置。在说明性示例中,如果用户输入姿势使光标朝向检测区域119移动,则检测区域119的大小可以增加。计算设备101继续监测输入姿势,并且一旦输入数据116指示输入目标111在检测区域119内移动,计算设备101就可以预加载和/或执行一个或多个应用程序组件122。
计算设备101可以利用标准来确定输入姿势是否要启动对检测区域119的修改。标准可以存储在策略数据存储库126的一个或多个策略123内。标准可以定义距离阈值、速度阈值、以及标识用户界面117内的预定位置和区域的坐标。如下文将更详细描述的,一个或多个策略123中定义的阈值和标准可以通过使用一种或多种机器学习技术来调整,该一种或多种机器学习技术随着时间的推移检测并且利用用户活动。通过动态地调整检测区域的方面以用于预加载或执行一个或多个应用程序组件122,计算设备101可以优化用于识别用户意图的预测技术。除了改善应用程序130执行期间各种功能的响应时间之外,动态配置的检测区域可以允许应用程序130的设计最小化加载到存储器128中的初始数据量并减少应用程序的启动时间。
输入设备105可以包括用于检测一个或多个用户姿势的任何类型的设备,例如但不限于指点设备105A(例如,鼠标、轨迹球、触摸板、数字笔、触摸屏等)、用于接收语音输入132的麦克风105B、用于跟踪凝视姿势131或手势133的头戴式显示器(HMD)设备105C或相机105D。输入数据116的生成可以来自输入设备105的任意组合或任何单个设备105。可以解译输入数据116以确定输入目标111的位置、速度和方向。输入目标111可以由适合于在用户界面117的渲染内生成输入目标111的坐标的任何形式的用户输入设备控制。输入目标111的坐标可以随时间存储,并且对其的分析可以识别输入目标111的特定移动姿势。在一些实施例中,输入目标111可以与光标112或任何其他合适的图形元素相关联。
计算设备101可以生成用户界面数据110以在显示设备118上生成用户界面117的渲染。用户界面117可以包括多个能够选择的图形元素120,每个能够选择的图形元素与应用程序130的特定功能相关联。用户界面数据148还可以定义检测区域119,该检测区域119可以用于确定关于能够选择的图形元素120的用户意图。在一些配置中,当输入目标111执行满足关于检测区域119的一个或多个标准的姿势时,计算设备101可以采取一个或多个动作,包括但不限于将一个或多个应用程序组件122从存储设备124预加载到存储器设备128,发出命令108以使得远程计算设备140执行一个或多个操作和/或预加载从远程计算设备140接收的一个或多个应用程序组件122。
存储器128可以包括被配置为存储数据的任何类型的硬件,例如但不限于随机存取存储器或高速缓存,其允许应用程序比诸如硬盘驱动器、固态驱动器等的长期存储设备124更快地访问数据。通过预加载选择的一组应用程序组件122,它可以包括可执行代码和应用程序要使用的数据两者,当用户选择任何UI元素并启动使用该应用程序组件122的功能时,应用程序130可以快速访问这些组件。在用户选择UI元素之前能够访问加载在存储器中的应用程序组件122允许应用程序130与响应于用户对相关联的UI元素的选择而反应性地将应用程序组件122加载到存储器中相比更快地做出响应。
在一些配置中,应用程序组件122可以包括将由软件应用接收、显示、处理、管理、编辑或传送的任何类型的数据。例如,应用程序组件可以包括与一群人有关的联系人信息,包括但不限于姓名、电话号码、电子邮件地址、办公室地址、头衔、等级、优先级、角色等。应用程序组件122还可以包括用于执行预执行操作的可执行代码。例如,应用程序组件122的执行可以使客户端计算设备101启动与远程计算机140的连接,从远程计算机140请求信息,或者启动复杂的命令,例如用于通信服务管理多方通信会话的远程静音命令。提供这些示例是为了说明的目的,不应被解释为限制性的。
在一些配置中,检测区域的位置、大小和/或形状可以基于相关联的应用程序组件的属性来修改。例如,应用程序组件可以包括将由应用程序使用的地址簿。在一些配置中,可以响应于确定地址簿的大小超过特定阈值而扩大检测区域的大小。较大的地址簿可能需要更长的时间以加载到存储器中。因此,通过具有更大的检测区域,计算系统可以提供更多的时间来预加载地址簿的至少一部分,该时间可以是毫秒级。
在另一个说明性示例中,应用程序组件可以包括执行多个操作的可执行代码。在一些配置中,可以响应于确定操作的数量或指示操作的数量的复杂程度的值超过特定阈值而扩大检测区域的大小。因此,通过具有更大的检测区域,计算系统可以提供更多时间来完成由任何相关联的应用程序组件执行的操作。
现在参考图2A-2E,提供包括围绕多个UI元素120的检测区域119和相对应的命中区域121的示例用户界面117以说明本公开的方面。如图2A所示,用户界面包括与个体命中区域(121A-121F)相关联的六个UI元素(120A-120F),每个命中区域都围绕个体UI元素。检测区域119位于UI元素120UI元素120附近并且有时位于UI元素120周围。用户界面117被配置为使得当输入目标111位于检测区域119内时,可以发起一个或多个预加载或预执行动作。用户界面117还被配置为使得当在用户输入动作(例如语音命令或鼠标点击)期间输入目标位于命中区域121内时,可以发起与相对应的命中区域121相关联的应用程序的功能。应用程序的选定功能然后可以利用预加载或预执行的应用程序组件。
在一些配置中,计算设备可以接收指示输入目标111在显示设备118上显示的图形用户界面117上的位置的输入数据116。计算设备然后可以分析输入目标111的姿势属性,例如移动的方向、速度和移动姿势的起始位置、结束位置,以确定输入目标111的方向、速度或输入目标111的位置是否满足关于检测区域119的一个或多个标准。响应于确定输入目标111的方向、速度和/或位置满足关于检测区域119的一个或多个标准,计算设备可以调整检测区域119的至少一个维度,或检测区域119的任何其他物理特性。
在图2A所示的示例中,计算设备接收输入数据,该输入数据将输入目标111定位在用户界面中心附近,在检测区域119的边界之外。基于这种类型的用户输入,计算设备不预加载或预执行应用程序组件。此外,计算设备不会调整检测区域118的大小、重塑或移动检测区域119。如图所示,基于该示例中的给定输入数据,检测区域119的维度136保持不变。
如图2B所示,计算设备接收输入数据,该输入数据将输入目标111定位在检测区域119之外,沿朝向检测区域119的方向移动。基于这样的用户输入,计算设备改变检测区域119的至少一个维度136以生成更新的检测区域119'。在这个特定示例中,宽度(W)136A和高度(H)136B被修改为调整后的宽度(W')和调整后的高度(H')。在一些配置中,可以响应于确定输入目标111正朝向检测区域移动而增加检测区域的大小。在另一配置中,响应于确定输入目标111正以至少阈值速度朝向检测区域移动,可以增加检测区域的大小。
这些示例是出于说明性目的而提供的,不应被解释为限制性的。可以意识到,输入目标111的任何类型的移动都可以导致计算设备改变维度的任何组合以增加检测区域119的大小。此外,检测区域的形状和/或位置可以是因多种因素而改变。例如,如果输入目标111正朝向检测区域119移动,则检测区域119可以移动到更靠近输入目标111的新位置。在另一示例中,如果输入目标正朝向检测区域119移动,则检测区域的一侧可以扩展成弧形或指向输入目标111的另一形状。检测区域的形状也可以基于其他因素。例如,如果特定检测区域内只有一个或两个UI元素,则检测区域可以具有圆形形状。在这样的实施例中,当用户输入满足关于检测区域的一个或多个标准时,计算设备可以增加检测区域的半径。
在图2C所示的示例中,计算设备接收将输入目标111定位在检测区域119内的输入数据。基于这样的用户输入,计算设备可以执行或加载与位于检测区域119内的用户界面元素相关联的任何应用程序组件。例如,诸如第一UI元素的用户界面元素可以与用于使得显示联系人信息的功能相关联。在这样的实施例中,响应于确定输入目标在检测区域内,计算设备可以建立与存储联系人信息的服务器的连接。在另一示例中,响应于确定输入目标在检测区域内,计算设备向服务发送请求以取回联系人信息以存储到存储器中。
在图2D所示的示例中,计算设备接收输入数据,该输入数据指示在输入目标111位于第一UI元素120A的命中区域121A内时发生输入动作(例如鼠标点击或语音命令)。基于这样的用户输入,计算设备可以执行应用程序130的功能,该应用程序130利用预加载或预执行的应用程序组件122。例如,如图2E所示,在继续涉及联系人信息的示例中,用户界面117可以转换到包括具有在预加载/预执行过程中取回的他们的联系人信息的人员列表的显示。
现在参考图3A-3E,以下示出和描述了涉及用于识别特定类型的输入姿势的速度阈值和/或距离阈值的若干示例场景。在图3A所示的示例中,示例输入数据指示输入目标111和相对应的光标112位于检测区域119之外。在该示例中,输入目标111与检测区域119相距距离(D)114。此外,输入数据指示输入目标111正以给定速度朝向检测区域移动,如移动矢量113所示。在此示例中,输入目标111正以小于速度阈值(V.Th.)的速度朝向检测区域移动。此外,输入目标与检测区域之间的距离大于距离阈值(D.Th.)。给定从输入数据生成的这些参数,计算设备控制检测区域119的大小以保持在当前大小、位置和/或形状。
在图3B所示的示例中,输入数据指示输入目标111和相对应的光标112位于检测区域119之外。在该示例中,输入目标111与检测区域119相距超出阈值距离的距离(D)114。此外,输入数据指示输入目标111正以给定速度朝向检测区域移动,如移动矢量113所示。在该示例中,输入目标111正以大于速度阈值的速度朝向检测区域移动。此外,输入目标与检测区域之间的距离大于距离阈值。给定从输入数据生成的这些参数,计算设备增加检测区域119的大小以生成更新的检测区域119'。
在图3C所示的示例中,输入数据指示输入目标111和对应的光标112位于检测区域119之外。在该示例中,输入目标111与检测区域119相距距离(D)114。此外,输入数据指示输入目标111正以给定速度朝向检测区域移动,如移动矢量113所示。在该示例中,输入目标与检测区域之间的距离小于距离阈值。给定从输入数据生成的这些参数,计算设备增加检测区域119的大小以生成更新的检测区域119'。
在一些备选实施例中,响应于确定当输入目标111正以大于第一速度阈值或调整的速度阈值的速度朝向检测区域移动时输入目标和检测区域之间的距离小于距离阈值,计算设备可以增加检测区域119的大小。当输入目标111在检测区域119的阈值距离内时,系统可以使用调整后的速度阈值,该调整后的阈值可以低于第一速度阈值。对阈值的这种调整可以允许当输入目标111接近检测区域119时系统对较慢的光标移动更具反应性。
在图3D所示的示例中,输入数据指示输入目标111和相对应的光标112位于检测区域119之外。在该示例中,输入目标111与检测区域119相距距离(D)114。此外,输入数据指示输入目标111正以给定速度远离检测区域移动,如移动矢量113所示。在该示例中,输入目标111的位置在距检测区域119的阈值距离(D Th.)内。给定从输入数据生成的这些参数,计算设备控制检测区域119的大小以保持在特定大小、位置和/或形状。
在图3D所示的实施例中也可以使用速度阈值。例如,响应于确定输入目标111的位置在距检测区域119的阈值距离(D Th.)内同时以超过阈值速度的速度远离检测区域移动,计算设备可以维持检测区域的参数。在另一示例中,响应于确定输入目标111的位置在距检测区域119的阈值距离(D Th.)内同时以低于阈值速度的速度远离检测区域移动,计算设备可以维持检测区域的参数。
在图3E所示的示例中,输入数据指示输入目标111和相对应的光标112位于检测区域119之外。在该示例中,输入目标111与检测区域119相距超过阈值距离的距离(D)。此外,输入数据指示输入目标111正在以给定速度远离检测区域移动,如移动矢量113所示。在该示例中,输入目标111的位置超出了距离检测区域119的阈值距离。给定从输入数据生成的这些参数,计算设备减小检测区域119的大小。检测区域可以减小到任何大小,可以可选地将其限制为基于相关联的应用程序组件的复杂性和/或大小的预定最小大小。
在图3E所示的实施例中也可以使用速度阈值。例如,响应于确定输入目标111的位置在距检测区域119的阈值距离(D Th.)之外同时以超过阈值速度的速度远离检测区域移动,计算设备可以减小检测区域的大小。在另一示例中,响应于确定输入目标111的位置在距检测区域119的阈值距离(D Th.)之外同时以低于阈值速度的速度远离检测区域移动,计算设备可以减小检测区域的大小。
现在转向图4A到图4D中所示的示例,下面示出并描述了涉及选择性取消过程的实施例。一般而言,该实施例可以响应于检测到预定输入姿势而取消预先执行的操作或清除预先加载到存储器中的存储数据。该示例开始于图4A,其中输入目标111位于检测区域119之外。基于该输入姿势,计算设备不针对任何应用程序组件启动任何类型的加载或执行操作。接下来,如图4B所示,当输入目标111位于检测区域内并且还超过到任何UI元素120的阈值距离时,计算设备可以加载和/或执行与位于检测区域119内的UI元素相关联的一个或多个应用程序组件。
在该实施例中,一旦应用程序组件被加载或执行,响应于检测到输入目标111满足关于一个或多个命中区域121和/或相对应的UI元素120的一个或多个标准,计算设备可以选择性地取消应用程序组件的执行或从存储器中清除应用程序组件。图4C中示出了一个说明性示例。在该示例中,响应于确定输入目标111位于距特定UI元素120的阈值距离内,计算设备可以取消应用程序组件的执行或从存储器中清除应用程序组件。响应于确定输入目标位于距特定UI元素或特定命中区域的阈值距离内,系统可以取消应用程序组件的选择预执行操作和/或从存储器中清除选择应用程序组件。
具体到图4C的说明性示例,输入目标111在第一UI元素120A的阈值距离内。响应于确定输入目标在第一UI元素的阈值距离内,系统可以取消或清除与其他UI元素相关联的应用程序组件,在该示例中其他UI元素包括第二UI元素120B至第六UI元素120F。例如,可以从存储器中清除任何预加载信息,例如与第五UI元素121E的共享功能相关联的共享文件。在另一示例中,可以终止用于建立连接的任何预执行操作,例如与关联于第二UI元素121B的消息显示功能的数据资源的连接。因此,通过仅关注最有可能被选择的应用程序组件的存储和执行,计算设备可以在存储器资源和其他计算资源方面更有效。如图4D所示,一旦第一UI元素120A被选择执行,系统就可以利用与第一UI元素120A相关联的功能所使用的预加载或预执行的应用程序组件。
在一些实施例中,计算设备可以基于各个UI元素相对于彼此的位置对它们进行排名。排名可用于取消或清除选择的应用程序组件。例如,当输入目标111靠近第一UI元素120A时,系统可以选择最远的UI元素,例如第六UI元素120F,用于在取消或清除与其他UI元素(120B-120E)相关联的应用程序组件之前,清除或取消与第六UI元素120F相关联的相关应用程序组件的执行。随着输入目标1111移动更靠近第一UI元素,系统可以确定用户具有更高级别的选择第一UI元素的意图。因此,随着输入目标移动更靠近第一UI元素,计算设备然后可以通过首先排列和选择最远的剩余UI元素,然后根据排名处理其他组件,来清除或取消与附加UI元素相关联的应用程序组件的执行。
现在转向图5A到图5D,下面示出并描述了涉及多阶段选择过程的实施例。一般而言,该实施例可以响应于检测到预定输入姿势而阶段选择要执行或加载的组应用程序组件。在一些配置中,同心配置的检测区域可以围绕多个UI元素排列。随着输入目标进入检测区域的每一层,计算设备可以加载和/或执行与检测区域的每一层相关联的应用程序组件的选择阶段。
在图5A所示的示例中,用户界面117可以配置有任意数量的同心配置的检测区域119,例如第一检测区域119A和第二检测区域119B。检测区域119可以围绕多个UI元素120和对应的命中区域121。当输入目标111位于检测区域119之外时,例如图5A所示的这种场景,计算设备不加载或执行任何相关的应用程序组件。
如图5B所示,当输入目标111移动到第一检测区域119A中时,计算设备调用加载和/或执行操作的第一阶段。例如,关于第一UI元素,计算设备可以发起与存储联系人信息的服务的一个或多个连接。对于第二UI元素,计算设备可以发起与存储消息传递信息的服务的一个或多个连接。对于第三UI元素,计算设备可以采取一个或多个动作来准备硬件设备。在此示例中,作为第一阶段操作的一部分,计算设备可以对相机的CCD进行预充电。
对于第四UI元素,计算设备可以建立与用于管理远程静音功能的一个或多个通信服务的连接。出于说明目的,远程静音功能可以涉及用于控制通信会话参与者的麦克风连接的多个复杂操作。在与第四UI元素120D相关联的功能中,计算设备101可以需要采取多个步骤,例如,与管理通信会话的服务建立连接,在服务器级别发出用于使远程参与者静音的命令,然后执行多个操作以在设备级别使参与者静音。任何数量的这些操作可以是第一阶段的一部分,其可以响应于检测到预定输入姿势(例如,关于第一检测区域119A的预定姿势输入)而启动。
为了继续图5A的示例,第五UI元素可以涉及用于使计算设备能够共享内容的任意数量的操作,例如共享桌面、文件或视频流。因此,作为第一阶段操作的一部分,计算设备可以建立与存储内容文件的远程服务的连接。第六UI元素可以涉及用于使计算机能够关闭通信会话的任意数量的操作。例如,会话记录或共享的内容可以保存到频道,连接统计信息可以保存到存储器,等等。
如图5C所示,当输入目标111移动到第二检测区域119B中时,计算设备调用加载和/或执行操作的第二阶段。例如,关于第一UI元素,计算设备可以将联系人信息加载到存储器中。对于剩余的UI元素,计算设备可以分别将消息传递信息加载到存储器中、打开相机、执行静音功能的附加操作、将共享的内容文件加载到存储器中以及执行用于关闭通信会话的附加操作。
接下来,如图5D所示,当输入目标在特定命中区域内移动时,例如第三UI元素120C的命中区域,计算设备可以清除和/或取消一个或多个应用程序组件的执行。在该说明性示例中,当输入目标111在第三UI元素120C的命中区域内移动时,计算设备可以从存储器中清除预加载的联系人信息、消息传递信息和共享文件。
现在转向图6A到图6C,下面示出并描述了涉及多个检测区域的实施例。一般而言,该实施例涉及用户界面配置,其中各个检测区域均被配置为围绕单独的UI元素集。图6A示出了具有一个检测区域的第一UI布置中的用户输入姿势的若干状态,图6B示出了具有两个检测区域的第二UI布置中的用户输入姿势的附加状态,并且图6C是示出了可以响应于检测到关于每个检测区域的特定输入姿势来执行的不同动作的图表。
如图6A所示,在时间0(T0),输入目标111位于第一检测区域119A之外。参考图6C所示的动作,计算设备基于输入目标111的位置在时间0(T0)不采取任何动作。接下来,在时间1(T1),输入目标111位于第一检测区域119A内。参考图6C,计算设备基于输入目标111的位置针对与第一检测区域119A相关联的应用程序组件启动第一阶段的操作。接下来,在时间2(T2),在诸如鼠标点击、语音命令或触摸姿势之类的用户动作期间,输入目标111位于第一UI元素120A上。作为响应,计算设备可以启动与第一UI元素相关联的功能,例如显示联系人信息。这种显示的示例如图6B所示。
在一些配置中,响应于输入目标位于第一UI元素上,计算设备可以针对与剩余的UI元素(120B-120F)相关联的应用程序组件启动一个或多个取消或清除操作。然而,如图6C所示,计算设备配置有策略,该策略指示计算设备在基于时间2(T2)的输入姿势取消预加载和预执行的应用程序组件时不采取任何行动。
接下来,如图6B所示,在时间3(T3),计算设备跟踪输入目标111的移动并检测到输入目标111离开第一检测区域119A,并朝向第二检测区域119B移动。作为响应,计算设备启动与第一检测区域119A的UI元素(120A-120F)相关联的应用程序组件的取消和/或清除操作。在说明性示例中,如图6C所示,在时间3(T3),计算设备清除任何预加载的消息信息,并执行可以关闭任何预执行的硬件功能的其他操作。
接下来,在时间4(T4),计算设备检测到输入目标111进入第二检测区域119B。作为响应,计算设备针对与第二检测区域119B相关联的应用程序组件启动第一阶段的操作。在此示例中,系统可以执行多个应用程序组件来启用通信应用程序的“静音”、“锁定(pin)”和“丢弃(drop)”功能。如图6C所示,在时间4(T4),计算设备启动与被配置为管理静音功能的远程服务的连接。此外,在时间4(T4),计算设备可以取回所选用户的联系人信息以启用锁定功能。然后,当用户在时间5(T5)选择静音UI元素时,计算设备可以通过使用在时间4(T4)建立的连接发送新命令来执行静音功能。此外,计算设备在时间5(T5)可以清除存储的联系人信息以释放资源用于其他功能。
现在转向图7,例程500的方面用于利用预测姿势来预加载和/或执行应用程序组件以在软件应用程序中提供改进的响应性和加载时间。应当理解,本文公开的方法的操作不是以任何特定顺序呈现的,并且以替代顺序执行一些或所有操作是可能的并且是预期的。为了便于描述和说明,操作已按演示顺序呈现。在不脱离所附权利要求的范围的情况下,可以重新安排、添加、省略和/或同时执行操作。
还应该理解,所示方法可以在任何时候结束,并且不需要全部执行。可以通过执行包括在计算机存储介质上的计算机可读指令来执行这些方法的一些或所有操作,和/或基本上等效的操作,如下文所定义。如在描述和权利要求中使用的术语“计算机可读指令”及其变体在本文中广泛使用以包括例程、应用程序、应用程序模块、程序模块、程序、组件、数据结构、算法等。计算机可读指令可以在各种系统配置上实现,包括单处理器或多处理器系统、小型计算机、大型计算机、个人计算机、手持计算设备、基于微处理器的可编程消费电子产品、它们的组合等。
因此,应当意识到,这里描述的逻辑操作被实现为(1)作为在计算系统上运行的计算机实现的动作或程序模块的序列和/或(2)作为互连的机器逻辑电路或计算系统内部的电路模块。实现方式是取决于计算系统的性能和其他要求的选择问题。因此,这里描述的逻辑操作被不同地称为状态、操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可以用软件、固件、专用数字逻辑以及它们的任何组合来实现。
例如,例程500的操作在本文中被描述为至少部分地由运行本文公开的特征的模块实现,模块可以是动态链接库(DLL)、静态链接库、由应用程序编程接口(API)产生的功能性、编译程序、解译程序、脚本或任何其他可执行指令集。数据可以存储在一个或多个存储器组件中的数据结构中。通过寻址链接或对数据结构的引用,可以从数据结构中取回数据。
尽管以下说明涉及用于执行本文公开的技术的预测姿势引擎134,但是可以意识到,例程500的操作也可以以许多其他方式实现。例如,例程500可以至少部分地由另一个远程计算机的处理器或本地电路来实现。此外,例程500的一个或多个操作可以替代地或附加地至少部分地由单独工作或与其他软件模块结合工作的芯片组来实施。在下面描述的示例中,计算系统的一个或多个模块可以接收和/或处理本文公开的数据。适合于提供本文所公开的技术的任何服务、电路或应用程序都可以用于本文所描述的操作中。
参考图7,例程500开始于操作502,其中预测姿势引擎134接收输入数据116,该输入数据116指示在显示设备118上渲染的图形用户界面117上的输入目标111的姿势特性。输入数据116可以由用于检测和/或测量一个或多个用户姿势的任何类型的输入设备105生成,该输入设备例如是但不限于指点设备105A(例如鼠标、轨迹球、触摸板、数字笔、触摸屏幕等)、用于接收语音输入132的麦克风105B、用于跟踪凝视姿势131或手势133的头戴式显示器(HMD)设备105C或相机105D。输入数据116的生成可以来自输入设备105或任何单个设备105的任何组合。可以解译输入数据116以确定输入目标111的位置、速度和方向。输入目标111可以由适合于生成输入目标111在用户界面117的渲染内的坐标的任何形式的用户输入设备控制。
接下来,在操作504,预测姿势引擎134可以基于输入数据来调整检测区域119的至少一个物理特性。在一些配置中,预测姿势引擎134可以分析输入数据116以确定姿势特性是否满足关于检测区域119的一个或多个标准,该检测区域119位于与一个或多个应用程序组件122相关联的一个或多个能够选择的图形元素120附近。另外或替代地,预测姿势引擎134可以分析一个或多个应用程序组件122的一个或多个属性,例如一个或多个相关联的应用程序组件122的大小或复杂度。响应于确定一个或多个应用程序组件122的一个或多个属性或姿势特性满足一个或多个标准,预测姿势引擎134可以调整检测区域119的至少一个物理特性,例如检测区域119的大小、形状和/或位置。
接下来,在操作506,预测姿势引擎134可以监测输入数据以确定输入目标111的位置在检测区域119内或已经在检测区域119内移动。虽然这个示例涉及在检测区域119内的输入目标111,输入目标111与检测区域119之间的其他类型的预定关系可以用于启动任何类型的预加载或预执行操作。
接下来,在操作508,预测姿势引擎134使得计算设备101将一个或多个应用程序组件122加载到存储器中或使得计算设备101执行一个或多个应用程序组件122以改进应用程序使用一个或多个应用程序组件122的响应时间。在一些配置中,预加载或预执行的应用程序组件与通过对位于检测区域119内的能够选择的图形元素120的选择而启动的功能相关联。在说明性示例中,预加载或预执行的应用程序组件将由通过对位于检测区域119内的能够选择的图形元素120的选择而启动的功能来使用。在另一说明性示例中,预加载或预执行的应用程序组件执行改变以下项的一个或多个操作:计算系统的状态、网络连接或要由通过对位于检测区域119内的能够选择的图形元素120的选择而启动的功能使用的其他数据结构。
接下来,在操作510,预测姿势引擎134可以为预加载或预执行的应用程序组件应用后续动作。后续动作可以包括取消应用程序组件的执行。后续动作还可以包括从存储器中清除和应用程序组件。后续动作可以基于对指示用户不太可能选择与被配置为利用被取消或清除的应用程序组件的功能相关的UI元素的预定姿势的检测。
在操作512处,预测姿势引擎134可以处理来自一个或多个用户输入的结果,以生成机器学习数据以在例程500的未来迭代中使用。例如,如果用户选择特定UI元素达到阈值次数或多于另一个UI元素阈值次数,则操作512可以增加或减少对于该特定UI元素的阈值距离。因此,当用户增加或减少对特定UI元素的使用时,系统可以使用调整的距离阈值清除或取消其他UI元素的应用程序组件。
在另一示例中,如果用户选择特定UI元素或一组UI元素达到阈值次数,则计算设备也可以改变检测区域的大小、形状或位置。在一些实施例中,当系统分别检测到相关联的UI元素相对于其他UI元素被选择阈值次数或未被选择阈值次数时,可以放大或缩小检测区域。这样,特定用户更常用的功能在选定时更有可能被预加载。当通过用户输入选择与检测区域相关联内的UI元素时,也可以增加或减少与检测区域相关联的阈值距离和阈值速度。一旦操作512完成,例程500可以返回操作502以使用任何调整的阈值、检测区域等重复例程。
图8示出了用于诸如文档服务器120(图1)之类的能够执行本文描述的程序组件的计算机的示例计算机体系结构600的附加细节。因此,图8所示的计算机体系结构600图示了用于服务器计算机、移动电话、PDA、智能电话、台式计算机、上网本计算机、平板计算机和/或膝上型计算机的体系结构。计算机体系结构600可用于执行本文呈现的软件组件的任何方面。
图8所示的计算机体系结构600包括中央处理单元602(“CPU”)、系统存储器604,包括随机存取存储器606(“RAM”)和只读存储器(“ROM”)608,以及将存储器604耦合到CPU 602的系统总线610。包含基本例程的基本输入/输出系统存储在ROM 608中,该基本例程有助于诸如在启动期间在计算机体系结构600内的元件之间传输信息。计算机体系结构600还包括大容量存储设备612,用于存储操作系统607、其他数据和一个或多个应用程序,例如可以执行本文公开的技术的预测姿势引擎134。
大容量存储设备612通过连接到总线610的大容量存储控制器(未示出)连接到CPU602。大容量存储设备612及其相关联的计算机可读介质为计算机体系结构提供非易失性存储600。虽然此处包含的计算机可读介质的描述指的是大容量存储设备,例如固态驱动器、硬盘或CD-ROM驱动器,但是本领域技术人员应该意识到,计算机可读介质可以是计算机体系结构600可以访问的任何可用的计算机存储介质或通信介质。
通信介质包括计算机可读指令、数据结构、程序模块或调制数据信号中的其他数据,例如载波或其他传输机制,并且包括任何传递介质。术语“调制数据信号”是指以某种方式改变或设置其一个或多个特性以便在信号中编码信息的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接的有线介质,以及诸如声学、RF、红外线和其他无线介质的无线介质。上述任何一项的组合也应包括在计算机可读介质的范围内。
作为示例而非限制,计算机存储介质可包括以用于存储例如计算机可读指令、数据结构、程序模块或其他数据之类的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。例如,计算机介质包括但不限于RAM、ROM、EPROM、EEPROM、闪存或其他固态存储技术、CD-ROM、数字多功能磁盘(“DVD”)、HD-DVD、BLU-RAY,或其他光学存储、磁带、磁带、磁盘存储或其他磁存储设备,或可用于存储所需信息并且可由计算机体系结构600访问的任何其他介质。在权利要求中,短语“计算机存储介质”、“计算机可读存储介质”及其变体本身不包括波、信号和/或其他暂时和/或无形的通信介质。
根据各种配置,计算机体系结构600可以使用通过网络656和/或另一个网络(未示出)到远程计算机的逻辑连接在联网环境中操作。计算机体系结构600可以通过连接到总线610的网络接口单元614连接到网络656。应当意识到,网络接口单元614也可以用于连接到其他类型的网络和远程计算机系统。计算机体系结构600还可以包括输入/输出控制器616,用于接收和处理来自许多其他设备的输入,包括键盘、鼠标或电子笔(图8中未示出)。类似地,输入/输出控制器616可以将输出提供给显示屏、打印机或其他类型的输出设备(也未在图8中示出)。
应当意识到,本文描述的软件组件可以在加载到CPU 602中并被执行时,将CPU602和整个计算机体系结构600从通用计算系统变换为定制以促进此处介绍的功能的专用计算系统。CPU 602可以由任意数量的晶体管或其他分立电路元件构成,它们可以单独地或共同地呈现任意数量的状态。更具体地说,CPU 602可以作为有限状态机操作,以响应包含在本文公开的软件模块内的可执行指令。这些计算机可执行指令可以通过指定CPU 602如何在状态之间转换来变换CPU 602,从而变换构成CPU 602的晶体管或其他离散硬件元件。
对本文呈现的软件模块进行编码还可以变换本文呈现的计算机可读介质的物理结构。在本描述的不同实施方式中,物理结构的具体变换可能取决于各种因素。这样的因素的示例可以包括但不限于用于实现计算机可读介质的技术、计算机可读介质是否被表征为初级或次级存储,等等。例如,如果计算机可读介质被实现为基于半导体的存储器,则本文公开的软件可以通过变换半导体存储器的物理状态而被编码在计算机可读介质上。例如,软件可以变换构成半导体存储器的晶体管、电容器或其他分立电路元件的状态。该软件还可以变换这些组件的物理状态,以便在其上存储数据。
作为另一示例,本文公开的计算机可读介质可以使用磁性或光学技术来实现。在这样的实施方式中,当软件被编码在其中时,本文呈现的软件可以转换磁性或光学介质的物理状态。这些变换可以包括改变给定磁介质内特定位置的磁特性。这些变换还可以包括改变给定光学介质内特定位置的物理特性或特性,以改变那些位置的光学特性。在不背离本描述的范围和精神的情况下,物理介质的其他变换是可能的,提供前述示例只是为了便于讨论。
鉴于上述情况,应当意识到,许多类型的物理变换发生在计算机体系结构600中以便存储和执行在此呈现的软件组件。还应当意识到,计算机体系结构600可以包括其他类型的计算设备,包括手持计算机、嵌入式计算机系统、个人数字助理和本领域技术人员已知的其他类型的计算设备。还设想计算机体系结构600可以不包括图8中所示的所有组件,可以包括图8中未明确示出的其他组件,或者可以使用与图8中所示的体系结构完全不同的体系结构。
图9描绘了能够执行本文描述的软件组件的说明性分布式计算环境700。因此,图9中所示的分布式计算环境700可用于执行本文呈现的软件组件的任何方面。例如,分布式计算环境700可以用于执行这里描述的软件组件的各个方面。
根据各种实施方式,分布式计算环境700包括在网络704上操作、与网络704通信或作为网络704的一部分的计算环境702。网络704可以是或可以包括以上参考图8描述的网络656。网络704还可以包括各种接入网络。一个或多个客户端设备706A-706N(在下文中统一和/或一般地称为“客户端706”并且在本文中也称为计算设备106)可以通过网络704和/或其他连接(图9中未示出)与计算环境702进行通信。在一种图示配置中,客户端706包括计算设备706A,例如膝上型计算机、台式计算机或其他计算设备;平板或平板计算设备(“平板计算设备”)706B;移动计算设备706C,例如移动电话、智能电话或其他移动计算设备;服务器计算机706D;和/或其他设备706N。应当理解,任意数量的客户端706可以与计算环境702通信。这里参照图5和图7示出和描述了客户端706的两个示例计算体系结构。应当理解,所示客户端706和在此说明和描述的计算体系结构是说明性的,不应被解释为以任何方式受到限制。
在所示配置中,计算环境702包括应用服务器708、数据存储装置710和一个或多个网络接口712。根据各种实施方式,应用服务器708的功能可以由作为网络704的一部分执行或与网络704通信的一个或多个服务器计算机提供。应用服务器708可以托管各种服务、虚拟机、门户和/或其他资源。在所示配置中,应用服务器708托管一个或多个虚拟机714,用于托管应用程序或其他功能。根据各种实施方式,虚拟机714托管一个或多个应用程序和/或软件模块以实现本文公开的有效测试。应当理解,这种配置是说明性的,并且不应被解释为以任何方式进行限制。应用服务器708还托管或提供对一个或多个门户、链接页面、网站和/或其他信息(“Web门户”)716的访问。
根据各种实施方式,应用服务器708还包括一个或多个邮箱服务718和一个或多个消息传递服务720。邮箱服务718可以包括电子邮件(“email”)服务。邮箱服务718还可以包括各种个人信息管理(“PIM”)和存在服务,包括但不限于日历服务、联系人管理服务、协作服务和/或其他服务。消息传递服务720可以包括但不限于即时消息服务、聊天服务、论坛服务和/或其他通信服务。
应用服务器708还可以包括一个或多个社交网络服务722。社交网络服务722可以包括各种社交网络服务,包括但不限于用于共享或发布状态更新、即时消息、链接、照片、视频和/或其他信息的服务;评论或显示对文章、产品、博客或其他资源的兴趣的服务;和/或其他服务。在一些配置中,社交网络服务722由FACEBOOK社交网络服务、LINKEDIN专业网络服务、MYSPACE社交网络服务、FOURSQUARE地理网络服务、YAMMER办公室同事网络服务等提供或包括这些。在其他配置中,社交网络服务722由其他服务、站点和/或可能或可能不被明确称为社交网络提供商的提供商提供。例如,一些网站允许用户在各种活动和/或上下文中通过电子邮件、聊天服务和/或其他方式相互交互,例如阅读已发表的文章、评论商品或服务、发布、协作、游戏和类似的。此类服务的示例包括但不限于来自华盛顿州雷德蒙德的微软公司的WINDOWS LIVE服务和XBOX LIVE服务。其他服务是可能的并且被考虑。
社交网络服务722还可以包括评论、博客和/或微博服务。此类服务的示例包括但不限于YELP评论服务、KUDZU评论服务、OFFICETALK企业微博服务、TWITTER消息服务、GOOGLE BUZZ服务和/或其他服务。应当意识到,上述服务列表并非详尽无遗,并且为了简洁起见,本文未提及众多附加和/或替代的社交网络服务722。因此,上述配置是说明性的,不应被解释为以任何方式受到限制。根据各种实施方式,社交网络服务722可以托管一个或多个应用程序和/或软件模块以提供这里描述的功能。例如,应用服务器708中的任何一个都可以通信或促进这里描述的功能和特征。例如,在电话或任何其他客户端706上运行的社交网络应用程序、邮件客户端、消息传递客户端或浏览器可以与网络服务722通信并且促进功能,甚至部分地,如上文关于图9所描述的。此处描述的设备或服务可用作补充数据的资源,包括电子邮件服务器、存储服务器等。
如图9所示,应用服务器708还可以托管其他服务、应用、门户和/或其他资源(“其他资源”)724。其他资源724可以包括但不限于文档共享、渲染或任何其他功能。因此可以意识到,计算环境702可以提供本文公开的概念和技术与各种邮箱、消息传递、社交网络和/或其他服务或资源的集成。
如上所述,计算环境702可以包括数据存储装置710。根据各种实施方式,数据存储装置710的功能由在网络704上操作或与网络704通信的一个或多个数据库提供。数据存储装置710的功能还可以由配置成为计算环境702托管数据的一台或多台服务器计算机提供。数据存储装置710可包括、托管或提供一个或多个真实或虚拟数据存储库726A-726N(下文称为统称为“数据存储库726”)。数据存储库726被配置为托管由应用服务器708使用或创建的数据和/或其他数据。尽管图9中未示出,数据存储库726还可以托管或存储网页文档、word文档、演示文档、数据结构、推荐引擎执行的算法和/或任何应用程序或另一个模块使用的其他数据。数据存储库726的方面可以与用于存储文件的服务相关联。
计算环境702可以与网络接口712通信或被网络接口712访问。网络接口712可以包括用于支持两个或更多个计算设备之间的通信的各种类型的网络硬件和软件,包括但不限于,计算设备和服务器。应当意识到,网络接口712也可以用于连接到其他类型的网络和/或计算机系统。
应当理解,本文描述的分布式计算环境700可以向本文描述的软件元素的任何方面提供任何数量的虚拟计算资源和/或可以被配置为执行本文公开的软件组件的任何方面的其他分布式计算功能。根据本文公开的概念和技术的各种实施方式,分布式计算环境700将本文描述的软件功能作为服务提供给计算设备。应当理解,计算设备可以包括真实机或虚拟机,包括但不限于服务器计算机、网络服务器、个人计算机、移动计算设备、智能电话和/或其他设备。因此,本文所公开的概念和技术的各种配置使得被配置为访问分布式计算环境700的任何设备能够利用本文所描述的功能来提供本文所公开的技术,以及其他方面。在具体示例中,如上所概述的,本文描述的技术可以至少部分地通过与图9的应用服务器708结合工作的网络浏览器应用来实现。
现在转向图10,用于计算设备的说明性计算设备体系结构800能够执行在此描述的各种软件组件以实现在此公开的技术。计算设备体系结构800适用于促进移动计算的计算设备,部分原因是形状因数、无线连接和/或电池供电的操作。在一些配置中,计算设备包括但不限于移动电话、平板设备、板式设备、便携式视频游戏设备等。计算设备体系结构800适用于图中所示的任何计算设备。此外,计算设备体系结构800的各方面可以适用于传统的台式计算机、便携式计算机(例如,电话、膝上型计算机、笔记本电脑、超便携式计算机和上网本)、服务器计算机和其他计算机系统,例如本文参考图1所描述的。例如,下文公开的单点触摸和多点触摸方面可以应用于利用触摸屏或一些其他启用触摸的设备(例如启用触摸的触控板或启用触摸的鼠标)的台式计算机。
图10所示的计算设备体系结构800包括处理器802、存储器组件804、网络连通性组件806、传感器组件808、输入/输出组件810和电源组件812。在所示配置中,处理器802是与存储器组件804、网络连通性组件806、传感器组件808、输入/输出(“I/O”)组件810和电源组件812通信。尽管示出了在图10中示出的各个组件之间没有连接,组件可以交互以执行设备功能。在一些配置中,组件被布置成通过一个或多个总线(未示出)进行通信。
处理器802包括中央处理单元(“CPU”),其被配置为处理数据、执行一个或多个应用程序的计算机可执行指令以及与计算设备体系结构800的其他组件通信以执行本文描述的各种功能。处理器802可用于执行本文呈现的软件组件的各方面,特别是至少部分地利用启用触控输入的那些方面。
在一些配置中,处理器802包括图形处理单元(“GPU”),其被配置为加速由CPU执行的操作,包括但不限于通过执行通用科学和/或工程计算应用程序执行的操作,以及图形密集型计算应用程序,例如高分辨率视频(例如,720P、1080P和更高分辨率)、视频游戏、三维(“3D”)建模应用程序等。在一些配置中,处理器802被配置为与分立GPU(未示出)通信。在任何情况下,CPU和GPU可以根据协同处理CPU/GPU计算模型来配置,其中应用程序的顺序部分在CPU上执行并且计算密集部分由GPU加速。
在一些配置中,处理器802是片上系统(“SoC”)或连同下文描述的一个或多个其他组件一起包含在片上系统(“SoC”)中。例如,SoC可以包括处理器802、GPU、网络连通性组件806中的一个或多个以及传感器组件808中的一个或多个。在一些配置中,处理器802部分地利用封装封装上(“PoP”)集成电路封装技术来制造。处理器802可以是单核或多核处理器。
处理器802可以根据ARM体系结构来创建,该体系结构可从英国剑桥的ARMHOLDINGS获得许可。可替代地,处理器802可以根据x86体系结构来创建,例如可从加利福尼亚州山景城的英特尔公司等处获得。在一些配置中,处理器802是可从加利福尼亚州圣地亚哥的QUALCOMM获得的SNAPDRAGON SoC、可从加利福尼亚州圣克拉拉的NVIDIA获得的TEGRASoC、可从韩国首尔的SAMSUNG获得的HUMMINGBIRD SoC、可从德克萨斯州达拉斯的TEXASINSTRUMENTS获得的开放多媒体应用平台(“OMAP”)SoC,上述任何SoC的定制版本,或专有SoC。
存储器组件804包括随机存取存储器(“RAM”)814、只读存储器(“ROM”)816、集成存储存储器(“集成存储”)818和可移动存储存储器(““可移动存储”)820。在一些配置中,RAM814或其一部分、ROM 816或其一部分、和/或RAM 814和ROM 816的某种组合被集成在处理器802中。在一些配置中,ROM 816被配置为存储固件、操作系统或其一部分(例如,操作系统内核)和/或引导加载程序以从集成存储818和/或可移动存储820加载操作系统内核。
集成存储818可以包括固态存储器、硬盘或者固态存储器和硬盘的组合。集成存储818可以焊接或以其他方式连接到逻辑板上,处理器802和本文所述的其他组件也可以连接在该逻辑板上。这样,集成存储818被集成在计算设备中。集成存储818被配置为存储操作系统或其部分、应用程序、数据和本文描述的其他软件组件。
可移动存储820可以包括固态存储器、硬盘或者固态存储器和硬盘的组合。在一些配置中,提供可移动存储820代替集成存储818。在其他配置中,提供可移动存储820作为附加的可选存储。在一些配置中,可移动存储820与集成存储818逻辑组合,使得总可用存储作为总组合存储容量可用。在一些配置中,向用户展示集成存储818和可移动存储820的总组合容量,而不是集成存储818和可移动存储820的单独存储容量。
可移动存储820被配置为插入到可移动存储存储器插槽(未示出)或可移动存储装置820被插入和固定以促进可移动存储820可通过其与计算设备的其他组件(诸如处理器802)通信的连接的其他机构中。可移动存储820可以体现在各种存储卡格式中,包括但不限于PC卡、CompactFlash卡、记忆棒、安全数字(“SD”)、miniSD、microSD、通用集成电路卡(“UICC”)(例如,订户身份模块(“SIM”)或通用SIM(“USIM”))、专有格式等。
可以理解,一个或多个存储器组件804可以存储操作系统。根据各种配置,操作系统包括但不限于来自雷德蒙顿微软公司的WINDOWS MOBILE OS、微软公司的WINDOWS PHONEOS、微软公司的WINDOWS、加利福尼亚州帕洛阿托的惠普公司PALM WEBOS、加拿大安大略省滑铁卢的Research In Motion Limited的BLACKBERRY OS、加利福尼亚州库比蒂诺的苹果公司的IOS和加利福尼亚州山景城的谷歌公司的ANDROID OS。其他操作系统也是可以考虑的。
网络连通性组件806包括无线广域网组件(“WWAN组件”)822、无线局域网组件(“WLAN组件”)824和无线个域网组件(“WPAN组件”)826。网络连通性组件806促进进出网络856或另一个网络的通信,该另一个网络可以是WWAN、WLAN或WPAN。尽管仅示出了网络856,但是网络连通性组件806可以促进与多个网络的同时通信,包括图8的网络604。例如,网络连通性组件806可以促进通过WWAN、WLAN或WPAN中的一个或多个网络与多个网络的同时通信。
网络856可以是或可以包括WWAN,例如利用一种或多种移动电信技术通过WWAN组件822利用计算设备体系结构800向计算设备提供语音和/或数据服务的移动电信网络。移动电信技术可以包括但不限于全球移动通信系统(“GSM”)、码分多址(“CDMA”)ONE、CDMA7000、通用移动电信系统(“UMTS”)、长期演进(“LTE”)和全球微波接入互操作性(“WiMAX”)。此外,网络856可以利用各种信道接入方法(上述标准可以使用或不使用),包括但不限于时分多址(“TDMA”)、频分多址(“FDMA”)、CDMA、宽带CDMA(“W-CDMA”)、正交频分复用(“OFDM”)、空分多址(“SDMA”)等。可以使用通用分组无线服务(“GPRS”)、全球演进增强数据速率(“EDGE”)、高速分组接入(“HSPA”)协议族(包括高速下行链路分组接入(“HSDPA”)、增强上行链路(“EUL”)或以其他方式称为高速上行链路分组接入(“HSUPA”))、演进HSPA(“HSPA+”)、LTE以及各种其他当前和未来的无线数据接入标准来提供数据通信。网络856可以被配置为使用上述技术的任何组合来提供语音和/或数据通信。网络856可以被配置为或适用于根据下一代技术提供语音和/或数据通信。
在一些配置中,WWAN组件822被配置为提供到网络856的双多模连接。例如,WWAN组件822可以被配置为提供到网络856的连接,其中网络856通过GSM和UMTS技术或通过其他一些技术组合提供服务。可替代地,多个WWAN组件822可用于执行此类功能,和/或提供附加功能以支持其他非兼容技术(即,单个WWAN组件无法支持)。WWAN组件822可以促进与多个网络(例如,UMTS网络和LTE网络)的类似连接。
网络856可以是根据一个或多个电气和电子工程师协会(“IEEE”)802.11标准操作的WLAN,例如IEEE 802.11a、802.11b、802.l lg、802.11h和/或未来的802.11标准(在此统称为WI-FI)。还设想了802.11标准草案。在一些配置中,WLAN是利用一个或多个无线WI-FI接入点来实现的。在一些配置中,一个或多个无线WI-FI接入点是连接到用作WI-FI热点的WWAN的另一计算设备。WLAN组件824被配置为通过WI-FI接入点连接到网络856。这样的连接可以通过各种加密技术来保护,包括但不限于WI-FI保护访问(“WPA”)、WPA2、有线等效保密(“WEP”)等。
网络856可以是根据红外数据协会(“IrDA”)、蓝牙、无线通用串行总线(“USB”)、Z-Wave、ZIGBEE或一些其他短程无线技术操作的WPAN。在一些配置中,WPAN组件826被配置为促进经由WPAN与诸如外围设备、计算机或其他计算设备等其他设备的通信。
传感器组件808包括磁力计828、环境光传感器830、接近传感器832、加速度计834、陀螺仪836和全球定位系统传感器(“GPS传感器”)838。预期其他传感器,例如如但不限于温度传感器或震动检测传感器,也可以并入计算设备体系结构800中。
磁力计828被配置为测量磁场的强度和方向。在一些配置中,磁力计828向存储在存储器组件804之一内的罗盘应用程序提供测量值,以便向用户提供参考系中的准确方向,包括基本方向、北、南、东和西。类似的测量可以提供给包括罗盘组件的导航应用程序。考虑了由磁力计828获得的测量的其他用途。
环境光传感器830被配置为测量环境光。在一些配置中,环境光传感器830向存储在存储器组件804之一内的应用程序提供测量值,以便自动调整显示器的亮度(如下所述)以补偿低光和高光环境。预期由环境光传感器830获得的测量值的其他用途。
接近传感器832被配置为在没有直接接触的情况下检测接近计算设备的物体或事物的存在。在一些配置中,接近传感器832检测用户身体(例如,用户的面部)的存在并将该信息提供给存储在存储器组件804之一内的应用程序,该应用程序利用接近信息来启用或禁用计算设备的某些功能。例如,电话应用程序可以响应接收到接近信息而自动禁用触摸屏(如下所述),以便用户的面部不会在通话期间无意中结束通话或启用/禁用电话应用程序内的其他功能。预期由接近传感器832检测到的接近的其他用途。
加速度计834被配置为测量适当的加速度。在一些配置中,来自加速度计834的输出被应用程序用作输入机制来控制应用程序的一些功能。例如,应用程序可以是视频游戏,其中角色、角色的一部分或对象响应于通过加速度计834接收的输入而被移动或以其他方式操纵。在一些配置中,来自加速度计834的输出被提供给用于在横向模式和纵向模式之间切换、计算坐标加速度或检测跌倒的应用程序。预期加速度计834的其他用途。
陀螺仪836被配置为测量和保持取向。在一些配置中,来自陀螺仪836的输出被应用程序用作输入机制来控制应用程序的一些功能。例如,陀螺仪836可用于准确识别视频游戏应用程序或一些其他应用程序的3D环境内的运动。在一些配置中,应用程序利用来自陀螺仪836和加速度计834的输出来增强对应用程序的某些功能的控制。预期陀螺仪836的其他用途。
GPS传感器838被配置为从GPS卫星接收信号以用于计算位置。由GPS传感器838计算的位置可以被任何需要或受益于位置信息的应用程序使用。例如,由GPS传感器838计算的位置可以与导航应用程序一起使用,以提供从该位置到目的地的方向或从目的地到该位置的方向。此外,GPS传感器838可用于将位置信息提供给外部基于位置的服务,例如E911服务。GPS传感器838可以获得经由利用一个或多个网络连接性组件806来帮助GPS传感器838获得定位的WI-FI、WIMAX和/或蜂窝三角测量技术生成的位置信息。GPS传感器838也可以用在辅助GPS(“A-GPS”)系统中。GPS传感器838还可以与诸如处理器802之类的其他组件一起操作,以生成用于计算设备800的定位数据。
I/O组件810包括显示器840、触摸屏842、数据I/O接口组件(“数据I/O”)844、音频I/O接口组件(“音频I/O”)846、视频I/O接口组件(“视频I/O”)848和相机850。在一些配置中,显示器840和触摸屏842被组合。在一些配置中,数据I/O组件844、音频I/O组件846和视频I/O组件848中的两个或更多个被组合。I/O组件810可以包括被配置为支持下面描述的各种接口的分立处理器,或者可以包括内置到处理器802中的处理功能。
显示器840是被配置为以视觉形式呈现信息的输出设备。特别地,显示器840可以呈现图形用户界面(“GUI”)元素、文本、图像、视频、通知、虚拟按钮、虚拟键盘、消息数据、互联网内容、设备状态、时间、日期、日历数据、偏好、地图信息、位置信息以及能够以视觉形式呈现的任何其他信息。在一些配置中,显示器840是利用任何有源或无源矩阵技术和任何背光技术(如果使用)的液晶显示器(“LCD”)。在一些配置中,显示器840是有机发光二极管(“OLED”)显示器。其他显示器类型也是可以考虑的。
触摸屏842,在本文中也称为“启用触摸的屏幕”,是被配置为检测触摸的存在和位置的输入设备。触摸屏842可以是电阻式触摸屏、电容式触摸屏、表面声波触摸屏、红外触摸屏、光学成像触摸屏、色散信号触摸屏、声脉冲识别触摸屏,或者可以利用任何其他触摸屏技术。在一些配置中,触摸屏842作为透明层并入显示器840的顶部,以使用户能够使用一个或多个触摸来与在显示器840上呈现的对象或其他信息交互。在其他配置中,触摸屏842是结合在不包括显示器840的计算设备的表面上的触摸板。例如,计算设备可以具有结合在显示器840顶部的触摸屏和在与显示器840相对的表面上的触摸板。
在一些配置中,触摸屏842是单点触摸触摸屏。在其他配置中,触摸屏842是多点触摸触摸屏。在一些配置中,触摸屏842被配置为检测离散触摸、单点触摸姿势和/或多点触摸姿势。为方便起见,这些在本文中统称为姿势。现在将描述几个姿势。应该理解,这些姿势是说明性的,并不旨在限制所附权利要求的范围。此外,所描述的姿势、附加姿势和/或替代姿势可以在用于与触摸屏842一起使用的软件中实现。因此,开发者可以创建特定于特定应用程序的姿势。
在一些配置中,触摸屏842支持轻敲姿势,其中用户在显示器840上呈现的项目上轻敲触摸屏842一次。轻敲姿势可以用于各种原因,包括但不限于打开或启动用户点击的任何内容。在一些配置中,触摸屏842支持双轻敲姿势,其中用户在显示器840上呈现的项目上轻敲触摸屏842两次。双轻敲姿势可以用于各种原因,包括但不限于分阶段放大或缩小。在一些配置中,触摸屏842支持轻敲并保持姿势,其中用户轻敲触摸屏842并保持接触至少达预定时间。可以出于各种原因使用轻敲并保持姿势,包括但不限于打开上下文特定菜单。
在一些配置中,触摸屏842支持平移姿势,其中用户将手指放在触摸屏842上并保持与触摸屏842的接触,同时在触摸屏842上移动手指。可以出于各种原因使用平移姿势,包括但不限于以受控的速度在屏幕、图像或菜单中移动。还设想了多个手指平移姿势。在一些配置中,触摸屏842支持轻弹姿势,其中用户在用户希望屏幕移动的方向上滑动手指。可以出于各种原因使用轻弹姿势,包括但不限于水平或垂直滚动菜单或页面。在一些配置中,触摸屏842支持捏拉姿势,其中用户在触摸屏842上用两根手指(例如,拇指和食指)进行捏拉动作或将两根手指移开。可以出于各种原因使用捏拉姿势,包括但不限于逐渐放大或缩小网站、地图或图片。
尽管已经参照使用一根或多根手指来执行姿势描述了上述姿势,但是可以使用诸如脚趾之类的其他附件或诸如触笔之类的物体来与触摸屏842交互。因此,以上姿势应被理解为说明性的并且不应被解释为以任何方式进行限制。
数据I/O接口组件844被配置为促进向计算设备输入数据和从计算设备输出数据。在一些配置中,数据I/O接口组件844包括连接器,该连接器被配置为提供计算设备和计算机系统之间的有线连接,例如,用于同步操作目的。连接器可以是专有连接器或标准化连接器,例如USB、微型USB、迷你USB等。在一些配置中,连接器是对接连接器,用于将计算设备与诸如对接站、音频设备(例如,数字音乐播放器)或视频设备的另一设备对接。
音频I/O接口组件846被配置为向计算设备提供音频输入和/或输出能力。在一些配置中,音频I/O接口组件846包括被配置为收集音频信号的麦克风。在一些配置中,音频I/O接口组件846包括被配置成为耳机或其他外部扬声器提供连接的耳机插孔。在一些配置中,音频I/O接口组件846包括用于输出音频信号的扬声器。在一些配置中,音频I/O接口组件846包括光学音频电缆输出。
视频I/O接口组件848被配置为向计算设备提供视频输入和/或输出能力。在一些配置中,视频I/O接口组件848包括视频连接器,该视频连接器被配置为从另一设备(例如,诸如DVD或蓝光播放器的视频媒体播放器)接收视频作为输入,或将视频作为输出发送到另一设备(例如,监测器、电视机或其他一些外部显示器)。在一些配置中,视频I/O接口组件848包括高清多媒体接口(“HDMI”)、迷你HDMI、微型HDMI、DisplayPort或用于输入/输出视频内容的专有连接器。在一些配置中,视频I/O接口组件848或其部分与音频I/O接口组件846或其部分组合。
相机850可以被配置为捕捉静止图像和/或视频。相机850可以利用电荷耦合器件(“CCD”)或互补金属氧化物半导体(“CMOS”)图像传感器来捕捉图像。在一些配置中,相机850包括闪光灯以帮助在弱光环境中拍照。相机850的设置可以实现为硬件或软件按钮。
尽管未示出,一个或多个硬件按钮也可包括在计算设备体系结构800中。硬件按钮可用于控制计算设备的一些操作方面。硬件按钮可以是专用按钮或多用途按钮。硬件按钮可以是机械的或基于传感器的。
所示出的功率组件812包括一个或多个电池852,其可以连接到电池量表854。电池852可以是可充电的或一次性的。可充电电池类型包括但不限于锂聚合物、锂离子、镍镉和镍金属氢化物。每个电池852可以由一个或多个电池单元制成。
电池量表854可以被配置为测量电池参数,例如电流、电压和温度。在一些配置中,电池量表854被配置为测量电池的放电率、温度、使用年限和其他因素的影响,以在一定的误差百分比内预测剩余寿命。在一些配置中,电池量表854向应用程序提供测量结果,该应用程序被配置为利用测量结果向用户呈现有用的功率管理数据。电源管理数据可包括已用电池百分比、电池剩余百分比、电池状况、剩余时间、剩余容量(例如,以瓦特小时为单位)、电流消耗和电压中的一项或多项。
电源组件812还可以包括电源连接器,其可以与上述I/O组件810中的一个或多个组合。电源组件812可以通过I/O组件与外部电源系统或充电设备接口。
本文呈现的公开内容还涵盖以下条款中阐述的主题:
示例条款1:一种用于在计算设备101上执行的计算机实现的方法,该方法包括:接收指示在显示设备118上渲染的图形用户界面117上的输入目标111的方向或位置的输入数据116;分析所述输入数据116以确定所述输入目标111的方向或所述输入目标111的位置是否满足关于位于与一个或多个应用程序组件122相关联的一个或多个能够选择的图形元素120附近的检测区域119的一个或多个标准;响应于确定所述输入目标111的方向或所述输入目标111的位置满足关于所述检测区域119的一个或多个标准,调整所述检测区域119的至少一个维度;监测所述输入数据116以确定所述输入目标111的位置在所述检测区域119内;并且响应于确定所述输入目标111的位置在所述检测区域119内,使所述计算设备101将所述一个或多个应用程序组件122加载到存储器中或使所述计算设备101执行所述一个或多个应用程序组件122以改善对于利用一个或多个应用程序组件122的应用程序130的响应时间。
示例条款2.条款1的计算机实现的方法,其中当所述输入目标正以至少阈值速度朝向所述检测区域移动时,所述输入目标的方向满足关于所述检测区域的所述一个或多个标准,并且其中调整所述检测区域的至少一个维度包括增加所述检测区域的大小。
示例条款3.条款1和2的计算机实现的方法,其中当所述输入目标正以至少阈值速度朝向所述检测区域移动而所述输入目标与所述检测区域相距远于阈值距离时,所述输入目标的方向或所述输入目标的位置满足关于所述检测区域的所述一个或多个标准,并且其中调整所述检测区域的至少一个维度包括增加所述检测区域的大小。
示例条款4.条款1-3的计算机实现的方法,其中当所述输入目标正朝向所述检测区域移动而所述输入目标在所述检测区域的阈值距离内时,所述输入目标的方向或所述输入目标的位置满足关于所述检测区域的所述一个或多个标准,并且其中调整所述检测区域的至少一个维度包括增加所述检测区域的大小。
示例条款5.条款1-4的计算机实现的方法,其中当所述输入目标正朝向所述检测区域移动而所述输入目标在所述检测区域的阈值距离内并且所述输入目标的速度超过速度阈值时,所述输入目标的方向或所述输入目标的位置满足关于所述检测区域的所述一个或多个标准,其中调整所述检测区域的至少一个维度包括增加所述检测区域的大小。
示例条款6.条款1-5的计算机实现的方法,其中当所述输入目标正移动远离所述检测区域而所述输入目标超出所述检测区域的阈值距离时,所述输入目标的方向或所述输入目标的位置满足关于所述检测区域的所述一个或多个标准,并且其中调整所述检测区域的至少一个维度包括减小所述检测区域的大小。
示例条款7.条款1-6的计算机实现的方法,还包括:监测所述输入数据以确定所述输入目标的位置在所述一个或多个能够选择的图形元素中的第一能够选择的图形元素的阈值距离内;并且响应于确定所述输入目标的位置在距所述第一能够选择的图形元素的阈值距离内,从所述存储器中清除至少一个应用程序组件或取消所述至少一个应用程序组件的执行,其中所述至少一个应用程序组件与所述一个或多个能够选择的图形元素中的至少一个其他能够选择的图形元素相关联。
示例条款8.条款1-7的计算机实现的方法,还包括:监测所述输入数据以确定所述输入目标的位置在第二检测区域内;并且响应于确定所述输入目标的位置在所述第二检测区域内,使所述计算设备处理所述一个或多个应用程序组件的第二阶段。
示例条款9.条款1-8的计算机实现的方法,还包括:监测所述输入数据以确定所述输入目标已经移出所述检测区域并且正朝向第二检测区域移动;并且响应于确定所述输入目标已经移出所述检测区域并且正朝向所述第二检测区域移动,从所述存储器中清除至少一个应用程序组件或取消所述至少一个应用程序组件的执行,其中所述至少一个应用程序组件与所述一个或多个能够选择的图形元素相关联。
示例条款10.一种计算设备800,包括:一个或多个处理单元802;以及计算机可读存储介质804,其上编码有计算机可执行指令,以使所述一个或多个处理单元802执行一种方法,该方法包括,接收指示在显示设备118上渲染的图形用户界面117上的输入目标111的姿势特性的输入数据116;分析所述一个或多个应用程序组件122的一个或多个属性和所述输入数据116以确定所述姿势特性是否满足关于位于与一个或多个应用程序组件122相关联的一个或多个能够选择的图形元素120附近的检测区域119的一个或多个标准;响应于确定所述一个或多个应用程序组件122的一个或多个属性或姿势特性满足所述一个或多个标准,调整所述检测区域119的至少一个物理特性;监测所述输入数据116以确定所述输入目标111的位置在所述检测区域119内;并且响应于确定所述输入目标111的位置在所述检测区域119内,使所述计算设备101将所述一个或多个应用程序组件122加载到存储器中或使所述计算设备101执行所述一个或多个应用程序组件122以改善对于利用一个或多个应用程序组件的应用程序的响应时间。
示例条款11.条款10的计算设备,其中当所述一个或多个应用程序组件的大小超过大小阈值时,所述一个或多个应用程序组件的所述一个或多个属性满足所述一个或多个标准,其中调整所述检测区域的至少一个物理特性包括增加所述检测区域的大小。
示例条款12.条款10和11的计算设备,其中当所述一个或多个应用程序组件的复杂度级别超过复杂度阈值时,所述一个或多个应用程序组件的所述一个或多个属性满足所述一个或多个标准,其中调整所述检测区域的至少一个物理特性包括增加所述检测区域的大小。
示例条款13.条款10-12的计算设备,其中当所述输入目标正以至少阈值速度朝向所述检测区域移动而所述输入目标距所述检测区域远于阈值距离时,所述姿势特性满足所述一个或多个标准,并且其中调整所述检测区域的所述至少一个物理特性包括增加所述检测区域的大小。
示例条款14.条款10-13的计算设备,其中当所述输入目标正朝向所述检测区域移动而所述输入目标在所述检测区域的阈值距离内时,所述姿势特性满足一个或多个标准,并且其中调整所述至少一个物理特性包括增加所述检测区域的大小。
示例条款15.一种系统800,包括:用于接收输入数据116的装置,该输入数据116指示在显示设备118上渲染的图形用户界面117上的输入目标111的姿势特性;用于分析一个或多个应用程序组件122和输入数据116的一个或多个属性以确定姿势特性是否满足关于位于与一个或多个应用程序组件122相关联的一个或多个能够选择的图形元素120附近的检测区域119的一个或多个标准的装置;用于响应于确定一个或多个应用程序组件122的一个或多个属性或姿势特性满足一个或多个标准而调整检测区域119的至少一个物理特性的装置;用于监测输入数据116以确定输入目标111的位置在检测区域119内的装置;以及用于响应于确定输入目标111的位置在检测区域119内而使计算设备101将一个或多个应用程序组件122加载到存储器中或使计算设备101执行一个或多个应用程序组件122以改进对于利用一个或多个应用程序组件122的应用程序的响应时间的装置。
示例条款16.根据条款15所述的系统,其中当输入目标正朝向检测区域移动而输入目标在检测区域的阈值距离内同时所述输入目标的速度超过速度阈值时,姿势特性满足关于检测区域的一个或多个标准,其中调整检测区域的至少一个物理特性包括增加检测区域的大小。
示例条款17.条款15和16的系统,其中当输入目标正移动远离检测区域移动而输入目标超出检测区域的阈值距离时,姿势特性满足关于检测区域的一个或多个标准,并且其中调整所述检测区域的所述至少一个物理特性包括增加所述检测区域的大小。
示例条款18.条款15-17的系统,还包括:用于监测输入数据以确定输入目标的位置在距一个或多个能够选择的图形元素中的第一能够选择的图形元素的阈值距离内的装置;以及用于响应于确定输入目标的位置在距第一能够选择的图形元素的阈值距离内而从存储器清除至少一个应用程序组件或取消至少一个应用程序组件的执行的装置,其中在至少一个应用程序组件与一个或多个能够选择的图形元素中的至少一个其他能够选择的图形元素相关联。
示例条款19.条款15-18的系统,还包括:用于监测输入数据以确定输入目标的位置在第二检测区域内的装置;以及用于响应于确定输入目标的位置在第二检测区域内而使计算设备处理一个或多个应用程序组件的第二阶段的装置。
示例条款20.条款15-19的系统,还包括:用于监测输入数据以确定输入目标已经移出检测区域并且正朝向第二检测区域移动的装置;以及用于响应于确定输入目标已经移出检测区域并且正朝向第二检测区域移动而从存储器中清除至少一个应用程序组件或取消至少一个应用程序组件的执行的装置,其中,至少一个应用程序组件与一个或多个能够选择的图形元素相关联。
最后,尽管已经以结构特征和/或方法行为特定的语言对各种配置进行了描述,但应理解,在所附表示中定义的主题不一定限于所描述的特定特征或动作。相反,特定特征和动作被公开为实现要求保护的主题的示例形式。

Claims (14)

1.一种用于在计算设备上执行的计算机实现的方法,所述方法包括:
接收指示在显示设备上渲染的图形用户界面上的输入目标的方向或位置的输入数据;
分析所述输入数据以确定所述输入目标的方向或所述输入目标的位置是否满足关于检测区域的一个或多个标准,所述检测区域位于与一个或多个应用程序组件相关联的一个或多个能够选择的图形元素附近;
响应于确定所述输入目标的方向或所述输入目标的位置满足关于所述检测区域的一个或多个标准,调整所述检测区域的至少一个维度;
监测所述输入数据以确定所述输入目标的位置在所述检测区域内;以及
响应于确定所述输入目标的位置在所述检测区域内,使得所述计算设备将所述一个或多个应用程序组件加载到存储器中或使得所述计算设备执行所述一个或多个应用程序组件以改善对于利用所述一个或多个应用程序组件的应用程序的响应时间。
2.如权利要求1所述的计算机实现的方法,其中,当所述输入目标正以至少阈值速度朝向所述检测区域移动时,所述输入目标的方向满足关于所述检测区域的所述一个或多个标准,并且其中,调整所述检测区域的至少一个维度包括增加所述检测区域的大小。
3.如权利要求1所述的计算机实现的方法,其中,当所述输入目标正以至少阈值速度朝向所述检测区域移动而所述输入目标与所述检测区域相距远于阈值距离时,所述输入目标的方向或所述输入目标的位置满足关于所述检测区域的所述一个或多个标准,并且其中,调整所述检测区域的至少一个维度包括增加所述检测区域的大小。
4.如权利要求1所述的计算机实现的方法,其中,当所述输入目标正朝向所述检测区域移动而所述输入目标在所述检测区域的阈值距离内时,所述输入目标的方向或所述输入目标的位置满足关于所述检测区域的所述一个或多个标准,并且其中,调整所述检测区域的至少一个维度包括增加所述检测区域的大小。
5.如权利要求1所述的计算机实现的方法,其中,当所述输入目标正朝向所述检测区域移动而所述输入目标在所述检测区域的阈值距离内并且所述输入目标的速度超过速度阈值时,所述输入目标的方向或所述输入目标的位置满足关于所述检测区域的所述一个或多个标准,并且其中,调整所述检测区域的至少一个维度包括增加所述检测区域的大小。
6.如权利要求1所述的计算机实现的方法,其中,当所述输入目标正移动远离所述检测区域而所述输入目标超出所述检测区域的阈值距离时,所述输入目标的方向或所述输入目标的位置满足关于所述检测区域的所述一个或多个标准,并且其中,调整所述检测区域的至少一个维度包括减小所述检测区域的大小。
7.如权利要求1所述的计算机实现的方法,还包括:
监测所述输入数据以确定所述输入目标的位置在所述一个或多个能够选择的图形元素中的第一能够选择的图形元素的阈值距离内;以及
响应于确定所述输入目标的位置在距所述第一能够选择的图形元素的阈值距离内,从所述存储器中清除至少一个应用程序组件或取消所述至少一个应用程序组件的执行,其中,所述至少一个应用程序组件与所述一个或多个能够选择的图形元素中的至少一个其他能够选择的图形元素相关联。
8.如权利要求1所述的计算机实现的方法,还包括:
监测所述输入数据以确定所述输入目标的位置在第二检测区域内;以及
响应于确定所述输入目标的位置在所述第二检测区域内,使得所述计算设备处理所述一个或多个应用程序组件的第二阶段。
9.如权利要求1所述的计算机实现的方法,还包括:
监测所述输入数据以确定所述输入目标已经移出所述检测区域并且正朝向第二检测区域移动;以及
响应于确定所述输入目标已经移出所述检测区域并且正朝向所述第二检测区域移动,从所述存储器中清除至少一个应用程序组件或取消所述至少一个应用程序组件的执行,其中,所述至少一个应用程序组件与所述一个或多个能够选择的图形元素相关联。
10.一种计算设备,包括:
一个或多个处理单元;以及
计算机可读存储介质,其上编码有计算机可执行指令,以使得所述一个或多个处理单元执行一种方法,所述方法包括,
接收指示在显示设备上渲染的图形用户界面上的输入目标的姿势特性的输入数据;
分析所述一个或多个应用程序组件的一个或多个属性和所述输入数据以确定所述姿势特性是否满足关于检测区域的一个或多个标准,所述检测区域位于与一个或多个应用程序组件相关联的一个或多个能够选择的图形元素附近;
响应于确定所述一个或多个应用程序组件的一个或多个属性或所述姿势特性满足所述一个或多个标准,调整所述检测区域的至少一个物理特性;
监测所述输入数据以确定所述输入目标的位置在所述检测区域内;以及
响应于确定所述输入目标的位置在所述检测区域内,使得所述计算设备将所述一个或多个应用程序组件加载到存储器中或使得所述计算设备执行所述一个或多个应用程序组件以改善对于利用所述一个或多个应用程序组件的应用程序的响应时间。
11.如权利要求10所述的计算设备,其中,当所述一个或多个应用程序组件的大小超过大小阈值时,所述一个或多个应用程序组件的所述一个或多个属性满足所述一个或多个标准,其中,调整所述检测区域的至少一个物理特性包括增加所述检测区域的大小。
12.如权利要求10所述的计算设备,其中,当所述一个或多个应用程序组件的复杂度级别超过复杂度阈值时,所述一个或多个应用程序组件的所述一个或多个属性满足所述一个或多个标准,其中,调整所述检测区域的至少一个物理特性包括增加所述检测区域的大小。
13.如权利要求10所述的计算设备,其中,当所述输入目标正以至少阈值速度朝向所述检测区域移动而所述输入目标与所述检测区域相距远于阈值距离时,所述姿势特性满足一个或多个标准,并且其中,调整所述检测区域的至少一个物理特性包括增加所述检测区域的大小。
14.如据权利要求10所述的计算设备,其中,当所述输入目标正朝向所述检测区域移动而所述输入目标在所述检测区域的阈值距离内时,所述姿势特性满足一个或多个标准,并且其中,调整所述至少一个物理特性包括增加所述检测区域的大小。
CN202180030494.6A 2020-04-24 2021-02-18 利用预测姿势分析预加载和执行应用程序组件 Pending CN115461713A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/858,541 2020-04-24
US16/858,541 US11481111B2 (en) 2020-04-24 2020-04-24 Utilization of predictive gesture analysis for preloading and executing application components
PCT/US2021/018437 WO2021216175A1 (en) 2020-04-24 2021-02-18 Utilization of predictive gesture analysis for preloading and executing application components

Publications (1)

Publication Number Publication Date
CN115461713A true CN115461713A (zh) 2022-12-09

Family

ID=74871815

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180030494.6A Pending CN115461713A (zh) 2020-04-24 2021-02-18 利用预测姿势分析预加载和执行应用程序组件

Country Status (4)

Country Link
US (1) US11481111B2 (zh)
EP (1) EP4139793A1 (zh)
CN (1) CN115461713A (zh)
WO (1) WO2021216175A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117421084B (zh) * 2023-11-07 2024-03-22 泰思物联网科技(广州)有限公司 一种基于云平台的软件数据智能分析系统及方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6182133B1 (en) 1998-02-06 2001-01-30 Microsoft Corporation Method and apparatus for display of information prefetching and cache status having variable visual indication based on a period of time since prefetching
US6025871A (en) 1998-12-31 2000-02-15 Intel Corporation User interface for a video conferencing system
US7616191B2 (en) * 2005-04-18 2009-11-10 Avago Technologies Ecbu Ip (Singapore) Pte. Ltd. Electronic device and method for simplifying text entry using a soft keyboard
KR100882937B1 (ko) 2006-03-20 2009-02-10 주식회사 케이티프리텔 사용자 인터페이스 메뉴 제어 방법 및 이를 적용한 이동통신 단말과 응용 서비스 제공 장치
US7688967B2 (en) 2006-05-31 2010-03-30 Cisco Technology, Inc. Dynamic speed dial number mapping
WO2008056359A2 (en) 2006-11-09 2008-05-15 Israel Aerospace Industries Ltd. Mission training center instructor operator station apparatus and methods useful in conjunction therewith
GB0811946D0 (en) 2008-06-30 2008-07-30 Symbian Software Ltd Computing device
JP5210229B2 (ja) * 2009-03-31 2013-06-12 株式会社コナミデジタルエンタテインメント 情報処理装置、情報処理装置の制御方法及びプログラム
US8334842B2 (en) 2010-01-15 2012-12-18 Microsoft Corporation Recognizing user intent in motion capture system
TWI476665B (zh) 2010-02-03 2015-03-11 Chi Mei Comm Systems Inc 提升電容式觸摸屏輸入準確度的系統及方法
AU2011291549B2 (en) 2010-08-19 2015-03-19 Google Llc Predictive query completion and predictive search results
US8732569B2 (en) 2011-05-04 2014-05-20 Google Inc. Predicting user navigation events
US9318129B2 (en) 2011-07-18 2016-04-19 At&T Intellectual Property I, Lp System and method for enhancing speech activity detection using facial feature detection
US8826153B2 (en) * 2011-10-04 2014-09-02 Google Inc. Speculative actions based on user dwell time over selectable content
JP2014026588A (ja) * 2012-07-30 2014-02-06 Fujitsu Ltd 情報処理装置、方法、及びプログラム
US9886177B2 (en) 2012-10-11 2018-02-06 Industry-Academic Cooperation Foundation, Yonsei University Method for increasing GUI response speed of user device through data preloading, and said user device
US9769030B1 (en) * 2013-02-11 2017-09-19 Amazon Technologies, Inc. Page prefetching
US10169481B2 (en) 2015-02-18 2019-01-01 Adobe Systems Incorporated Method for intelligent web reference preloading based on user behavior prediction
WO2016144657A1 (en) 2015-03-06 2016-09-15 Sony Computer Entertainment America Llc Predictive instant play for an application over the cloud
US11194398B2 (en) * 2015-09-26 2021-12-07 Intel Corporation Technologies for adaptive rendering using 3D sensors
US10852913B2 (en) 2016-06-21 2020-12-01 Samsung Electronics Co., Ltd. Remote hover touch system and method
US10356200B2 (en) 2016-12-28 2019-07-16 Google Llc Optimizing user interface data caching for future actions
KR102411283B1 (ko) 2017-08-23 2022-06-21 삼성전자주식회사 사용자 인터페이스의 입력 검출 영역을 설정하기 위한 방법 및 그 전자 장치

Also Published As

Publication number Publication date
WO2021216175A1 (en) 2021-10-28
US11481111B2 (en) 2022-10-25
EP4139793A1 (en) 2023-03-01
US20210333987A1 (en) 2021-10-28

Similar Documents

Publication Publication Date Title
US10896284B2 (en) Transforming data to create layouts
US10521251B2 (en) Hosting application experiences within storage service viewers
US11327928B2 (en) Dynamic display of file sections based on user identities
EP3740865B1 (en) Contextually-aware recommendations for assisting users with task completion
US9460416B2 (en) Reading mode for interactive slide presentations with accompanying notes
US10346498B2 (en) Presenting and interacting with a hyperlink dialog for generating hyperlinks
EP2807549B1 (en) Presenting data driven forms
US20160092406A1 (en) Inferring Layout Intent
US20180006983A1 (en) Enhanced search filters for emails and email attachments in an electronic mailbox
US20130177295A1 (en) Enabling copy and paste functionality for videos and other media content
US20190087391A1 (en) Human-machine interface for collaborative summarization of group conversations
US11487512B2 (en) Generating a services application
US11138211B2 (en) Determining key contributors for documents
US11269818B2 (en) Smart versioning for files
US11481111B2 (en) Utilization of predictive gesture analysis for preloading and executing application components
US10565028B2 (en) Resumption of activities using activity data collected by an operating system
US20150026291A1 (en) Context affinity in a remote scripting environment
US20160379226A1 (en) Intelligent identification of multidimensional insights from process data

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination