一种用于处理用户级事件以编制应用程序的方法与流程

文档序号:19858956发布日期:2020-02-08 00:02阅读:261来源:国知局
一种用于处理用户级事件以编制应用程序的方法与流程

本发明涉及对编制应用程序的事件的处理。更具体地,其涉及比低级的输入事件更容易管理的用户级事件的定义和使用。



背景技术:

事件管理是计算机科学中一个非常重要的领域。当一些异步的外部操作需要由程序或应用程序进行处理时会使用事件引擎和系统。例如,如果程序需要对用户按下鼠标作出反应,则事件“鼠标按下”可以被创建。另外,当机器通过网络发送消息/事件给计算机时,它可以作为事件而由计算机进行处理。在典型的事件引擎中,当事件在系统中发生时其被发起(fire)。一旦事件被发起,可以实现处理函数以用于监听事件,并且根据事件来适应程序的行为。

事件可以包含链接到事件类型的参数。例如,鼠标事件可以嵌入表示用户在屏幕上已点击鼠标的位置的x、y参数。这些参数可以由处理函数取回,以便进一步适应程序的行为。例如,用户点击鼠标的位置可以用于寻找在该位置的按钮,并触发该按钮的点击。

事件的使用在如c、c++或java的编程语言中是很常见的。在通常的事件引擎中,事件由系统发起,并且开发人员能够开发出从通用处理函数派生的处理函数。该方法给管理事件带来极大的灵活性,因为任何行为均可以用处理函数来定义。在此情况下,事件通常是比较低级别的事件,其直接依赖于平台和执行语言。此类事件是由具有相关联的参数的机器可以直接检测的事件。此类事件例如可以是:

-当用户手指按压在触控设备屏幕的x、y位置时,与x、y坐标相关联的“指压”事件;

-当用户手指从触控设备屏幕的x、y位置释放时,与x、y坐标相关联的“手指释放”事件;

-当指针位置在x、y坐标时当用户点击鼠标时,与x、y坐标相关联的“点击”事件;

-当设备的陀螺仪检测围绕轴线的定向时,与围绕轴的角度相关联的“定向”事件;

-更一般地,设备传感器事件,例如具有地理区域位置的gps事件、加速度计的事件、等等……

-“时间滴答”事件,其与时钟滴答的时间相关联;

-等等……

这些事件通常针对一个环境而定义。例如,“指压”事件可以在由java虚拟机执行的java中存在、“指压”事件自然地存在用于编程ipad、windowsphone等等……。在每个执行环境上的事件都有其自身的定义:在每一个执行环境中编程时,如果没有不同的参数,“指压”事件将具有不同的名称。

因此,即便不是不可能,由非开发者使用此类事件处理方法也是非常困难的。事实上,不具有开发和计算科学工程技能的人员将很难理解每个执行环境中的低级别或本地事件的含义,并且很难开发相关联的处理函数。

同时,交互式应用程序的设计者通常对高级别事件感兴趣。例如,交互式应用程序的设计者对处理可直接理解为交互式应用程序的用户的自然行为的高级别事件感兴趣。例如,设计者可能对处理诸如当用户在触屏表面同一区域快速敲击两次的“双击”事件感兴趣。对于采用传统方法处理此类事件,人必须检测连续的事件,例如“手指按压”和“手指释放”,检测此类事件发生在同一区域并且在时间上接近。这需要复杂的编程技能,对致力于构建功能性交互式应用程序的设计师而言,这通常不容易达到。

本申请目的在于使交互式应用程序的设计更容易,特别是通过允许不具有软件开发技能的设计者操纵更广泛的各种事件使得在以设计者级别容易理解。



技术实现要素:

为此,本发明公开了一种用于生成用户级事件集合以编制应用程序的方法,所述方法包括:列出来自至少两个不同通道的输入事件的序列,每个输入事件由至少一个位模式定义;针对输入事件的至少一个序列定义所述输入事件的至少一个序列到用户级事件的变换,每个用户级事件生成应用程序的输入;将相应的用户级事件关联应用程序的每个输入。

本发明还公开了一种使用用户级事件集合以编制应用程序的方法,所述方法包括,对于待进入到应用程序的每个应用程序事件:从用户级事件的集合中,取回相应的用户级事件以及两个不同通道的输入事件的至少一个序列到相应的用户级事件的变换;获取该变换的可执行形式;将该变换的所述可执行形式链接到应用程序;配置应用程序和该应用程序的环境中的至少一个,以用于向所述变换发送一系列的位模式以作为被期望作为变换的输入的输入事件的序列。

有利的是,输入事件是原始输入事件。

有利的是,输入事件是标准化形式,并且该方法进一步包括转换标准化形式的事件中的至少一个原始输入事件。

本发明还公开了一种计算机程序,其存储在非临时性介质上,所述计算机程序包括用于使得处理器执行上面公开的方法的步骤的计算机代码指令。

本发明还公开了一种用于过滤用户级事件集合的方法,所述集合包括对于每个用户级事件,应用程序的相应输入、输入事件的序列以及用于将所述输入事件的序列变换成用户级事件的相应变换,所述方法包括:从集合中取回用户级事件;分析该应用程序以确定对应用程序中该用户级事件的调用的上下文参数;将对至少所述用户级事件的调用的上下文参数关联到相应的变换。

本发明还公开了一种使用用户级事件集合的方法,对于待进入到计算机应用程序的每一个应用程序事件,所述方法包括:从用户级事件集合中,取回相应的用户级事件以及从输入事件的序列到相应的用户级事件的变换,所述变换具有与其相关联的、与所述变换相对应的用户级事件的调用的上下文参数;每当所述变换的上下文参数定义所述变换应该被调用时,获取该变换的可执行形式;配置应用程序和该应用程序的环境中的至少一个,以用于向该变换发送一系列的位模式以作为被期望作为变换的输入的输入事件的序列。

本发明还公开一种配备有处理能力的设备,其被配置为执行本发明所述的方法中的一种。

本发明还公开了一种应用程序,其存储于非暂时性介质上,所述应用程序包括用于使处理器执行本发明的方法的代码指令。

本发明还公开了一种用于执行应用程序的设备,包括:输入事件的至少两个不同的通道;到服务器的通信通道;处理功能,其配置为:取回应用程序的上下文;通过通信通道向服务器发送应用程序的上下文;从服务器接收从输入事件的序列到相应的用户级事件的变换;获取该变换的可执行形式;配置计算机应用程序和该计算机应用程序的环境中的至少一个,以用于向该变换发送一系列的位模式以作为被期望作为变换的输入的输入事件的序列。

本发明的方法允许不具有编程技能的应用程序的设计人员来管理用户级事件。

在多个实施例中,本发明的方法允许使用不依赖平台或操作系统的事件。

本发明的方法简化了交互式应用程序的开发。

在多个实施例中,本发明的方法减少了用于生成用户级事件的cpu的使用率,并且使得交互式应用程序的执行更具有反应性。

在多个实施例中,本发明的方法允许交互式设备的终端用户以最长电池寿命而享受更具反应性的应用程序。

本发明的方法使得更易于管理用户级事件的生成条件,更具成本效益,并且更适于原型设计。

附图说明

通过以下对多个示例性实施例及其附图的描述,本发明将得以更好的理解,并且其各种特征和优点得到显示,其中:

图1显示了用于生成用户级事件集合以编制应用程序的方法的流程图;

图2显示了在本发明的该实施例中用于使用用户级事件集合来编制应用程序的方法的流程图;

图3显示了用于在本发明的多个实施例中执行应用程序的功能架构;

图4a至4f显示了在本发明的多个实施例中的用于执行应用程序的6种不同的功能架构;

图5显示了一种在本发明的多个实施例中用于过滤用户级事件集合的方法;

图6显示了一种在本发明的多个实施例中用于使用用户级事件集合的方法;

图7显示了在本发明的多个实施例中的与服务器进行通信的设备的示例;

图8a至8b显示了在本发明实施例中的在应用程序的两种不同上下文中对变换以及输入事件通道的激活和去激活的两种示例。

具体实施方式

在本说明书中,本发明将通过与交互式设备的事件的定义,以及所述交互式设备上事件的使用相关的示例来进行描述。然而,应该注意的是,本发明可以在任何事件驱动的环境中使用,如在一个多装置环境中。

图1根据本发明显示了用于生成用户级事件160、161的集合以编制应用程序的方法100的流程图。

通过非限制性示例的方式,该方法用于为交互式设备编制应用程序。根据本发明的方法包括列出来自至少两个不同的事件通道110、111的输入事件的序列。所述两个不同的通道可以是指不同类型的事件,如轻击(tap)和点击事件,或者是使用两种不同的逻辑或物理模态接收的相同类型的事件。例如,轻击事件可以在交互式设备本地地发起后被接收到,或通过连接第二设备的通信链路来接收。

事件的通道可以包括,例如:

-机器事件,由交互式设备上的传感器输入导致的,如:

-单击鼠标;

-键盘按键的按压;

-键盘按键的释放;

-时钟的滴答;

-来自陀螺仪的代表设备的定向的事件;

-触屏表面的触摸;

-触摸的压力;

-电池充电的数值;

-可用存储器的值;

-设备温度值;

-使用网络摄像头的面向设备运动检测;

-在另一设备上发生或生成,通过通信链路接收的事件:

-设备位置处的天气信息;

-信息(通知)的可用性;

-来自设备上另一应用程序的事件;

-设备的操作系统的事件:

-应用程序的起动;

-wi-fi、3g或蓝牙连接的建立/中止。

事件的位模式是其在存储器中的、允许取回和解码该事件的表示。表示事件的位通常包括定义事件类型的位。对于一些事件,它们还包括表示事件的参数的位。例如陀螺事件可包括表示设备的定向的位;鼠标按压事件可以包括表示按压的时刻和/或持续时间的参数;触屏触摸事件可以包括表示在其上所发生的触摸的在触屏表面中的位置的参数。

因此事件会在非常不同的通道中发生并且以非常不同的形式发生,并且对于应用程序的设计者而言,高效的处理这些事件是非常困难的。与此相反,用户级事件是易于应用程序设计人员理解和使用的事件。用户级事件通常是指一种直观行为,其不与机器上的输入事件相对应,并且包括,例如:

-当用户短时间内在触屏表面的同一区域点击两次时的“双击”事件;

-当设备从水平位置变化到垂直位置时的“水平-垂直翻转”事件;

-当用户的手指在触屏表面上以近直线而平移时的“滑动”事件;

-任何单点或多点触摸手势;

-来自面向设备运动检测的人类(包括性别)检测;

等等。

所述方法100进一步包括列出输入事件的序列130、131的步骤120。输入事件的具体序列可以表示用户级事件。事件的序列包括至少相同类型或不同类型的两个事件,例如:

-两个连续的轻击事件;

-两个连续的陀螺仪定向事件;

-多个触屏表面的触摸事件;

-等等。

例如,可以针对每一个可能的用户级事件定义序列。该方法进一步包括步骤140:对于输入事件的至少一个序列,定义输入事件的所述至少一个序列到至少一个用户级事件的变换150、151,每一个用户级事件生成到计算机应用程序的输入。事件的序列到用户级事件的变换定义用于在序列发生时生成用户级事件的规则。这些规则可以包括参数。例如可以定义以下变换:

-在两次轻击事件发生时,如果两次轻击事件之间的持续时间低于阈值,例如250毫秒,则生成“双击”事件;

-在两次连续的陀螺仪定向事件发生时,如果第一次事件指示定向小于45度,而第二次事件指示定向大于45度,则生成“水平-垂直翻转”事件;

-在多个触屏表面的触摸事件发生时,如果至少5次连续的触屏触摸事件指示用户手指在直线方向的位移,则生成滑动事件;

-在触屏触摸事件发生时,如果检测到至少4个手指的渐进、并行和同时的移动,则生成“多指滑动”事件;

-在触屏触摸事件发生时,如果识别到至少4个手指的从中心点到虚拟圆的邻近边界点的渐进和同时的位移,则生成“关闭对象”事件;

-等等……

所述方法100进一步包括步骤170,其将相应的用户级事件关联到应用程序的每一个输入。

这允许应用程序的设计人员使用用户级事件,例如“双击”或“水平-垂直翻转”作为应用程序的输入。

在本发明的多个实施例中,输入事件是原始输入事件。原始输入事件是与特定的机器、平台或工具有关的。例如原始输入事件可以是windows平台的“点击”事件、指定设备的“轻击”事件,等等……这些实施例是有利的,因为它们允许在一个平台上直接使用所有可用的事件。

在本发明的其它实施例中,输入事件是标准化形式的事件。标准化形式的事件是独立于平台、设备或实现的事件。当至少一种类型的输入事件从原始、特定平台的事件转换到标准化的事件时,可以实现事件的标准化。由于原始的和标准化的事件可以具有不同的位模式及参数,因此这种转换可以包括对事件的参数进行转换。例如,平台上的“点击”事件在参数中可以具有垂直和水平的多个像素,其表示在屏幕上点击的位置,而标准化的点击事件可以使用相对的水平和垂直位置作为参数。因此需要将多个像素转换成在屏幕上点击的相对水平和垂直位置,以执行该转换。

根据本发明的方法100允许应用程序的设计人员使用用户级事件作为输入,同时控制触发每个用户级输入事件的生成的变换的规则以及输入事件的序列。

图2显示了在本发明的多个实施例中用于使用用户级事件集合以编制应用程序的方法200的流程图。

所述方法200适用于待输入到应用程序中的每个应用程序事件210。应用程序事件是作为应用程序的输入而生成并且使用的事件。

所述方法200包括步骤220,其从用户级事件的集合中,取回相应的用户级事件以及两个不同通道的输入事件的至少一个序列到该相应的用户级事件的变换。该相应的用户级事件在应用程序的上下文中表示应用程序事件的用户级事件。例如,双击或滑动可以表示在应用程序的给定上下文中的输入。

所述方法进一步包括步骤230,其获取该变换的可执行形式。例如,可以通过编译与针对目标机器或平台的该变换相对应的指令来获取该变换的可执行形式。在本发明的另一实施例中,该变换的可执行形式已经存在于程序库中,并且获取该变换的可执行形式在于识别该可执行形式的位置。

所述方法进一步包括步骤240,其将该变换的所述可执行形式链接到应用程序。将该变换的可执行形式链接到应用程序可以包括在应用程序或随应用程序而传递的程序库内封装该变换的可执行代码。其也可以包括确保该变换的可执行代码被应用程序正确地调用。

所述方法进一步包括步骤250,其配置应用程序和应用程序的执行环境中的至少一个以向该变换发送一系列的位模式,以作为被期望作为变换的输入的输入事件的序列。在本发明的多个实施例中,该步骤在于配置应用程序以向变换生成表示事件的序列的位模式。在本发明的其它实施例中,该步骤在于配置应用程序的执行环境以向变换生成表示事件序列的位模式。根据本发明的各个实施例,应用程序的执行环境可以是,例如,操作系统、网络浏览器或虚拟机。变换的可执行形式能够提取事件的参数,如果有的话,以及生成相关用户级事件。

与方法100类似,在方法200的多个实施例中,输入事件是原始输入事件,而在方法200的其它实施例中,输入事件是标准化形式的。

图3显示了用于在本发明的多个实施例中执行应用程序的功能架构300。所述功能架构300是用于在本发明的多个实施例中执行应用程序的可能的功能示例的非限制性示例。

图3中显示的模块是功能模块。它们可以,例如,以硬件或软件模块的形式来实现,可以在应用程序本身、播放器、网络浏览器或操作系统之内实现。更具体地,图4a至图4f提供了交互式设备中的模块的重新分区的示例。

原始输入事件320是通过多个事件通道310、311来进行接收的。架构300包括原始输入事件标准化模块330,其用于将原始输入事件转换成标准化的输入事件340。

架构300还包括用户级事件变换模块350,其用于应用输入事件的序列到用户级事件360的变换351、352的规则。如果满足变换的条件,则在每次检测到相应的输入事件的序列时,用户级事件变换模块350发起用户级事件。

在本发明的其他实施例中,变换的规则应用于原始输入事件的序列,并且用于执行应用程序的功能架构不包括用于标准化原始输入事件的原始输入事件标准化模块330。

该架构还包括用于处理用户级事件的用户级事件处理模块370。用户级事件可以由设计者使用,以用于修改应用程序的行为、状态和/或上下文。例如,“水平-垂直翻转”类型的用户级事件可以在应用程序的上下文中改变定向的值。其也可能会引起应用程序的布局的定向的改变、按钮和菜单的位置和定向的修改,等等……

用户级事件处理模块370能够发起应用程序事件390,应用程序事件390进而可以作为应用程序的标准化的输入事件。用户级事件处理模块370还可以将应用程序的上下文的变化传达给事件检测优化模块380。事件检测优化模块被设计为用于识别可以作为应用程序的执行的输入的用户级事件,以便在用户级事件变换模块350中激活或去激活变换351、352。

例如,如果应用程序在其实际的上下文中没有接收“双击”事件的可能性,则相应的变换可以被去激活。等待事件的功能是计算密集的,这允许通过将事件变换的激活限于那些有用的事件而保存计算的加载和/或电池。此外,其能在某些情况下使应用程序更具反应性。例如,当在少于250毫秒内,在邻近位置中发生两次轻击输入事件时,“双击”事件的变换规则生成“双击”事件,“双击”事件的变换的去激活规则允许“轻击”原始输入事件一旦发生就生成单击,而无需等待250毫秒来辨别是一次轻击还是两次轻击。

图4a至图4f显示了在本发明的多个实施例中用于执行应用程序的6种不同的功能架构。

图4a显示了在本发明的多个实施例中用于执行应用程序的第一种功能架构400a。架构400a包括架构300的功能模块。在架构400a中,原始输入事件标准化模块330是在其上执行应用程序的设备410a的硬件模块。用户级事件变换模块350是设备的操作系统420a的软件模块,并且用户级事件处理模块370和事件检测优化模块380是应用程序430a的软件模块。

该实施例允许创建在操作系统级检测用户级事件的共享的规则,用户级事件变得更易于由多个应用程序使用。同时,在应用程序本身中的事件检测的优化允许对应用程序的上下文的更好的访问,以便识别可以对应用程序的行为产生影响的事件。

图4b显示了在本发明的多个实施例中用于执行应用程序的第二种功能架构400b。架构400b包括架构300的功能模块。在架构400b中,原始输入事件标准化模块330和用户级事件变换模块350是设备的操作系统420b的软件模块,并且用户级事件处理模块370和事件检测优化模块380是应用程序430b的软件模块。

该实施例允许使用操作系统级标准化的事件,并且具有在操作系统级检测用户级事件的共享的规则,用户级事件变得更易于由多个应用程序使用。同时,在应用程序本身中的事件检测的优化允许对应用程序的上下文的更好的调用,以便识别可以对应用程序的行为产生影响的事件。

图4c显示了在本发明的多个实施例中用于执行应用程序的第三种功能架构400c。架构400c包括架构300的功能模块。在架构400c中,原始输入事件标准化模块330是设备的操作系统420c的软件模块,用户级事件变换模块350是设备的网络浏览器440c的软件模块,并且用户级事件处理模块370和事件检测优化模块380是应用程序430c的软件模块。

在该实施例中,应用程序430c例如是网络浏览器的扩展。其也可以是可以在网络浏览器上运行的脚本。该实施例有利地允许更容易的使用由网络浏览器在应用程序内生成的用户级事件或可以由网络浏览器运行的脚本内生成的用户级事件。同时,该应用程序或脚本能够为网络浏览器提供关于用户级事件的信息,该信息可以使用以便使得网络浏览器优化用户级事件检测。

图4d显示了在本发明的多个实施例中用于执行应用程序的第四种功能架构400d。架构400d包括架构300的功能模块。在架构400d中,原始输入事件标准化模块330是设备410d的硬件模块,用户级事件变换模块350是设备的网络浏览器440d的软件模块,并且用户级事件处理模块370和事件检测优化模块380是应用程序430d的软件模块。标准化的输入事件在操作系统420d中定义。原始输入事件标准化模块330的硬件模块将来自事件通道310、311的输入事件转换为操作系统级的标准化的输入事件340。

在该实施例中,应用程序430d例如是网络浏览器的扩展。其也可以是可以在网络浏览器上运行的脚本。该实施例有利地允许更容易的使用由网络浏览器在应用程序内生成的用户级事件或可以由网络浏览器运行的脚本内生成的用户级事件。同时,该应用程序或脚本能够为网络浏览器提供关于用户级事件的信息,该信息可以使用以便使得网络浏览器优化用户级事件检测。操作系统级的输入事件的标准化允许开发更容易生成用户级事件的网络浏览器。

图4e显示了在本发明的多个实施例中用于执行应用程序的第五种功能架构400e。架构400e包括架构300的功能模块。在架构400e中,原始输入事件标准化模块330是设备的操作系统420e的软件模块,用户级事件变换模块350、以及用户级事件处理模块370和事件检测优化模块380是应用程序430e的软件模块。标准化的输入事件在操作系统420e中定义。原始输入事件标准化模块330的软件模块将来自事件通道310、311的输入事件转换为操作系统级的标准化的输入事件340。

在该实施例中,输入事件的标准化由操作系统执行。对用户级事件的检测,和对事件的变换规则的优化是在应用程序中定义的。因此,该实施例为应用程序的开发人员定义、管理和优化用户级事件提供了很好的灵活性。

图4f显示了在本发明的多个实施例中用于执行应用程序的第六种功能架构400f。架构400f包括架构300的功能模块。在架构400f中,原始输入事件标准化模块330是设备410f的硬件模块,标准化的输入事件在设备的操作系统420f中定义,用户级事件变换模块350、以及用户级事件处理模块370和事件检测优化模块380是应用程序430f的软件模块。标准化的输入事件在操作系统420f中定义。原始输入事件标准化模块330的硬件模块将来自事件通道310、311的输入事件转换为操作系统级的标准化的输入事件340。

在该实施例中,输入事件的标准化是由操作系统执行的。对用户级事件的检测,和对事件的变换规则的优化,是在应用程序中定义的。因此,该实施例为应用程序的开发人员定义、管理和优化用户级事件提供了很好的灵活性。

图5显示了在本发明的多个实施例中用于过滤用户级事件的集合510的方法500。

在对于集合510和过滤的表述中的“用户级事件”的表述指的是用户级事件的类型。方法500的目的是过滤在给定的情况下可以由应用程序被期望的用户级事件的类型。方法500可以在应用程序的开发过程中以静态分析方式来使用,并且在运行时以动态分析方式使用。其目的在于过滤该应用程序的上下文事件,其中在该应用程序的上下文中可以由应用程序发起和/或期望用户级事件。例如,其可以在对应用程序前端进行配置的步骤250中实现,或在事件检测优化模块380中实现。在本发明的多个实施例中,该应用程序的所有可能的事件的列表是静态地生成的,并且通过过滤在应用程序的当前上下文中没有发生的可能性的事件,该列表是在运行时动态地更新的。

方法500进一步包括步骤520,其从用户级事件的集合中取回用户级事件。该方法在于取回索用户级事件以进行过滤。在本发明的实施例中,该方法连续的应用于每一个用户级事件。在本发明的其它实施例中,该方法仅能够应用于用户级事件的集合的一子集,例如应用于已知其变换为最计算机密集型的用户级事件。

方法500进一步包括步骤530,其分析应用程序来确定在计算机应用程序中对用户级事件的调用的上下文参数。此步骤可以在于识别导致发起用户级事件和/或等待用户级事件的连续功能调用,并且因此识别其中能够发起和/或期望该用户级事件的应用程序的上下文。

方法500进一步包括步骤540,其将至少该用户级事件的上下文参数关联到相应的变换。如果该方法在应用程序的开发期间被执行,则元数据能够被加入到应用程序的可执行代码中,并且与变换的可执行代码相关联,以便将其可以发生的条件关联到变换。如果该方法在运行时被执行,则信息能够被存储在分配给应用程序的存储区域中,这包含用户级事件可以在其中被发起和/或等待的上下文。在本发明的多个实施例中,这样的数据被存储在元数据、xml或json文件中、或者是更一般地存储在值对中。例如,可以存储包含生成事件所需的变换的名称和事件的列表的值对。

图6显示了一种在本发明的多个实施例中用于使用用户级事件的集合610的方法600。

所述方法600可以用于应用程序的开发、编译,或在应用程序运行时使用。其使用可以已经由用于过滤用户级事件集合的方法500所生成的上下文参数。在用户级事件的集合610的表述中的表述“用户级事件”指的是基于其类型而进行过滤的用户级事件。方法600的目的在于仅使用在给定的环境中可以由应用程序被期望的用户级事件的类型。

所述方法包括步骤620,其从用户级事件的集合中,取回相应的用户级事件和输入事件的序列到相应的用户级事件的变换,所述变换具有与其相关联的、用户级事件对相应变换的调用的上下文参数。对于用户级事件,此步骤通常在于取回其中能够发起和/或期望该用户级事件的应用程序的上下文。在应用程序的开发期间、或运行时,这些上下文参数通常可以已经由方法500来确定。

方法600进一步包括步骤630,其在每当变换的上下文参数定义所述变换应当被调用时,获取变换的可执行形式。获取变换的可执行形式可以在应用程序的开发阶段通过生成所述可执行形式来实现,例如通过编译相应的源代码。在运行时,这可以通过取回变换的可执行形式可以被调用的存储器地址来实现。变换应当被调用的定义可以根据不同规则来执行。在本发明的多个实施例中,如果相应的用户级事件是要由应用程序等待,则该变换应当被调用。在本发明的另一实施例中,如果应用程序的上下文和应用程序的环境的上下文使得生成由应用程序所使用的所有输入事件是可能的,则该变换应当被调用。

方法600进一步包括步骤640,其配置计算机应用程序和计算机应用程序的环境中的至少一个以用于向该变换发送一系列的位模式以作为被期望作为到至少一个变换的输入的输入事件的序列。

例如,可以通过更新激活的变换的列表、以及当相应的输入事件的序列发生时执行变换来执行该配置。在其中用户级事件由应用程序生成的实施例中,应用程序可以修改自身的上下文,以便仅执行该变换的一个子集。

在本发明的其它实施例中,由应用程序的环境来生成用户级事件,例如操作系统或网络浏览器。在这些实施例中,用户级事件可以由多个应用程序使用。每个应用程序可以指示在其上下文中等待的事件,并且应用程序的环境可以更新可由至少一个应用程序使用的用户级事件的变换的列表,以及仅执行在该列表中的变换。在本发明的多个实施例中,变换与执行该变换所需的事件之间的对应关系被存储在元数据中。从而在已知在给定的上下文中能够生成的事件的情况下,筛选可在所述上下文中执行的变换是可能的。

使用方法600是有利的。事实上,其允许应用程序或其环境仅执行可以生成至少一个应用程序所等待的事件的变换,因此节省cpu和呈现应用程序的执行。

执行方法600的应用程序是不同寻常的,这是因为所执行的输入事件到用户级事件的变换依赖于应用程序的上下文。例如,如果应用程序只在特定的菜单等待“双击”事件,则“轻击”输入事件到“双击”用户事件的变换仅在这些菜单被激活时执行:如果用户执行双击而菜单没有被激活时,则变换将不被执行。该应用程序可以在设备内执行。因此,该应用程序将通过不执行可能是cpu运转密集的无用变换来节省设备上的cpu和电池。同时,该应用程序可以更具反应性,这是因为在此情况中轻击将被直接解译为单击。

在本发明的多个实施例中,步骤640进一步包括激活和去激活与被期望作为变换的输入的输入事件相关的输入事件通道。更具体的,该步骤可以在于激活与由至少一个激活的变换被期望的输入事件对应的事件通道,并且去激活其它输入事件通道。如上所述,输入事件通道可以对应于一种类型的输入事件,或者用于接收一种类型的输入事件的物理模态。

该实施例是有利的,这是因为对事件通道的去激活进一步在执行应用程序时节省cpu和电池。例如,如果没有激活的变换正在等待与其上运行应用程序的设备的定向有关的输入事件,那么去激活相应的通道是可能的,例如通过关闭运动传感器。同样地,如果激活的变换没有在等待该类型的输入事件,则关闭gps、wi-fi等等……是可能的。该实施方案是有利的,因为它能在对应用程序的功能没有偏见的情况下导致大量的电源和电池增益。

此功能可以在不同层面、并以不同的方式执行。例如,在架构400a,和400b中,当激活或去激活变换时可以在操作系统级执行。在本发明的其它实施例中,该功能可以在网络浏览器中,或直接由应用程序执行。在本发明的一些实施例中,应用程序不断地更新激活的变换的集合,以及可以由应用程序所等待的所有事件的输入事件通道的集合。当在任何时刻变换被激活或去激活时,相关输入通道可以被激活或去激活。

在本发明的其它实施例中,应用程序不断更新其正在等待的输入事件通道的集合,并且操作系统能够访问该集合。操作系统被配置为基于应用程序正在等待的输入事件、以及在操作系统上运行的其它应用程序或服务正在等待的输入事件来激活和去激活输入事件通道。图8a和8b提供了对输入事件通道的激活或去激活的规则的示例。

在其中执行应用程序的设备,或是更一般地被配置为执行根据本发明的方法的设备,包括处理能力。作为本发明实施例的非限制性示例,该处理能力可以是一集成电路,如中央处理单元(cpu),其可以从冯·诺依曼体系结构、哈佛体系结构或修改后的哈佛架构中派生,微处理器,如专用集成电路(asic)、专用指令集处理器(asip)、或图形处理单元(gpu)、多核处理器,或它们的组合。

图7显示了在本发明的一些实施例中与服务器710进行通信的设备700的示例。

在这些实施例中,对激活的变换的过滤是由服务器来执行的。

该设备包括输入事件的至少两个不同的通道。其也包括到服务器710的通信通道720。该通信链路可以包括在设备和服务器之间的互联网连接。该设备可以例如通过3g或wi-fi连接与互联网进行连接。该设备还包括处理能力。

该处理能力被配置为取回应用程序的上下文,以及通过通信通道将应用程序的上下文发送给服务器,然后从服务器接收输入事件的序列到相应的用户级事件的变换。在本发明的这些实施例中,用户级事件的完整集合以及相对应的变换可以存储在服务器上而不是设备上。

该处理能力进一被步配置为获取变换的可执行形式。其可以通过直接从服务器接收的来获取该可执行形式。该变换的可执行形式也可以存储在设备上。接着,服务器发送对变换的引用(reference),并且该处理能力被配置为在设备上定位变换的可执行形式。

该处理能力进一步被配置为配置计算机应用程序和计算机应用程序的环境中的至少一个,以向变换发送一系列的位模式以作为被期望作为到至少一个变换的输入的输入事件的序列。

该实施例有利地允许直接在服务器上更新对变换进行更新的规则。在本发明的多个实施例中,服务器包括事件的上下文调用,并且因此能够确定在其中将执行不同的变换的应用程序的上下文。

图8a和8b显示了在本发明的实施例中的两个示例,分别为在应用程序的两个不同的上下文中对变换以及输入事件通道的激活和去激活。

该应用程序使用的三种不同模态的输入事件:来自陀螺仪的定向事件810:来自触摸板的轻击事件811,以及来自远端设备的轻击事件812。因此,当来自陀螺仪的定向事件810为激活时,从陀螺仪接收到信号时发起“定向事件”类型的输入事件。“定向事件”类型的输入事件包括例如与设备的定向角度相关的参数。当来自触摸板的轻击事件811为激活时,在触摸板被按压时发起“轻击事件”类型的输入事件。该类型的输入事件包括例如对应于光标在所述触摸板中被按压的位置的x、y两个参数。当来自远端设备的轻击事件812为激活时,当在与该设备相连接的远端设备上执行点击时,发起“轻击事件”类型的输入事件。在这种情况下,参数x、y的值对应于在远端设备上执行点击时刻的光标的位置。

该应用程序执行三个不同的变换:水平-垂直翻转变换820,双击变换821,和单击变换822。

在发生来自陀螺仪的定向事件810时,当定向的值定义该设备从水平位置翻转到垂直位置,或从垂直位置翻转到水平位置时,该水平-垂直翻转变换820发起水平-垂直翻转事件830。

在短时间内以及邻近的位置上发生两次连续的单击事件时,该双击变换821发起双击事件831。然而,该双击转化821被配置为仅在来自触摸板的轻击事件811的轻击事件,即来自触摸板的轻击事件发生时执行。

在发生来自触摸板(来自触摸板的轻击事件811)或来自远端设备(来自远端设备的轻击事件812)的轻击事件时,单击变换822发起单击事件832。

对变换的激活与去激活,例如,由方法600的步骤640来执行。

在上下文800a中,三个用户级事件类型830、831、832被期望作为应用程序的输入。同时,在上下文800b中,只有双击事件831被期望作为应用程序的输入。调用的上下文参数已先前被关联到变换,例如使用方法500。因此,例如当从上下文800a切换到上下文800b时,应用程序或应用程序的执行的环境中的一个检测水平-垂直翻转变换820,过去单击变换822不再发起被期望作为应用程序的输入的事件。

因此,在上下文800b中,应用程序仅执行双击变换821,并且节省设备上的cpu功率和电池。在本发明的多个实施例中。

在步骤640,方法进一步包括检测在给定的情况下由变换被期望的输入事件模态。来自陀螺仪的定向事件810的输入事件仅被水平-垂直翻转变换820所期望。因此,来自定向事件模态的输入事件在上下文800b中不被期望,并且来自陀螺仪的定向事件810可以被去激活。这进一步节省cpu功率和电池,这是由于接着可以关闭陀螺仪,并且就能量消耗而言,陀螺仪的运行是非常昂贵的。

来自远端设备的轻击事件812的轻击事件的输入事件仅被单击变换822所期望。因此,来自轻击事件(远端设备)模态的输入事件在上下文800b中不被期望,并且来自远端设备的轻击事件812可以被去激活。这进一步节省cpu功率和电池,因为将到远端设备的通信通道去激活是可能的。如果到远端设备的通信通道使用不由任何其它应用程序使用的通信链路,则关闭该链路是可能的,例如wi-fi关闭,并且因此进一步节省cpu功率或电池。

来自触摸板的轻击事件811的轻击事件的输入事件被双击变换821和单击变换822所期望。双击变换821在上下文800b中保持激活。因此,来自触摸板的轻击事件811将不被停用,以便成功地运行应用程序。

此示例说明了本发明的仅执行和运行使应用程序成功运行所需的变换的能力,而同时限制了其上运行应用程序的设备的cpu功率和电池的消耗。

上述示例是作为对本发明的实施例的示出而给出的。它们不以任何方式限制由所附权利要求限定的本发明的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1