本申请属于数据处理技术领域,尤其涉及一种事件流处理方法、事件流处理装置、移动终端及计算机可读存储介质。
背景技术:
用户在触摸移动终端的屏幕时将产生事件流。通常来说,采用安卓(android)系统的移动终端会将该事件流分发给框架并逐级发送给需要处理该事件流的应用,这其中,手势导航应用会对该事件流进行拦截,并通过一定规则对该事件流进行判断,以决定事件流的分发方向。考虑到安卓系统中,事件流是单向且有顺序的,因而应用拦截事件流并重新分发的操作可能导致事件流的时序被破坏,引发兼容性问题。
技术实现要素:
本申请实施例提供了一种事件流处理方法、事件流处理装置、移动终端及计算机可读存储介质,可保障移动终端的兼容性。
第一方面,本申请实施例提供了一种事件流处理方法,包括:
当移动终端的驱动层获取到待处理事件流时,从上述待处理事件流中获取一个以上触摸点,其中,上述待处理事件流基于用户对上述移动终端的屏幕的触摸操作而生成;
将上述一个以上触摸点与预设的手势导航条件进行匹配;
根据匹配的结果对预设的事件标志位进行赋值;
上述移动终端的框架层基于赋值后的上述事件标志位确定上述待处理事件流所指示的事件,并根据上述待处理事件流所指示的事件确定上述待处理事件流的关联对象;
触发上述关联对象执行上述待处理事件流所指示的事件。
第二方面,本申请实施例提供了一种事件流处理装置,包括:
获取单元,用于当移动终端的驱动层获取到待处理事件流时,从上述待处理事件流中获取一个以上触摸点,其中,上述待处理事件流基于用户对上述移动终端的屏幕的触摸操作而生成;
匹配单元,用于将上述一个以上触摸点与预设的手势导航条件进行匹配;
赋值单元,用于根据匹配的结果对预设的事件标志位进行赋值;
确定单元,用于通过上述移动终端的框架层基于赋值后的上述事件标志位确定上述待处理事件流所指示的事件,并根据上述待处理事件流所指示的事件确定上述待处理事件流的关联对象;
触发单元,用于触发上述关联对象执行上述待处理事件流所指示的事件。
本申请的第三方面提供了一种移动终端,上述移动终端包括存储器、处理器以及存储在上述存储器中并可在上述处理器上运行的计算机程序,上述处理器执行上述计算机程序时实现如上述第一方面的方法的步骤。
本申请的第四方面提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现如上述第一方面的方法的步骤。
本申请的第五方面提供了一种计算机程序产品,上述计算机程序产品包括计算机程序,上述计算机程序被一个或多个处理器执行时实现如上述第一方面的方法的步骤。
由上可见,在本申请方案中,当移动终端的驱动层获取到待处理事件流时,从上述待处理事件流中获取一个以上触摸点,其中,上述待处理事件流基于用户对上述移动终端的屏幕的触摸操作而生成,然后将上述一个以上触摸点与预设的手势导航条件进行匹配,并根据匹配的结果对预设的事件标志位进行赋值,随后由上述移动终端的框架层基于赋值后的上述事件标志位确定上述待处理事件流所指示的事件,并根据上述待处理事件流所指示的事件确定上述待处理事件流的关联对象,最后触发上述关联对象执行上述待处理事件流所指示的事件。本申请方案在驱动层就完成对屏幕的事件流的判定,并基于判定结果触发框架层直接将事件流分发到对应的关联对象处进行处理,也即在根源上判断事件流的流向,不需要修改安卓系统本身对事件流的处理,避免引发兼容性问题,使得稳定性大大增强。可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的事件流处理方法的实现流程示意图;
图2是本申请实施例提供的事件流处理方法中,四组处于不同区域的触摸点的示意图;
图3是本申请实施例提供的事件流处理装置的结构框图
图4是本申请实施例提供的移动终端的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
为了说明本申请上述的技术方案,下面通过具体实施例来进行说明。
实施例一
下面对本申请实施例提供的一种事件流处理方法进行描述。请参阅图1,本申请实施例中的事件流处理方法包括:
步骤101,当移动终端的驱动层获取到待处理事件流时,从上述待处理事件流中获取一个以上触摸点;
在本申请实施例中,主要关注的是用户在触摸到移动终端的屏幕时,该屏幕所生成的事件流的分发,因而,上述待处理事件流指的是基于用户对上述屏幕的触摸操作而生成的事件流。具体地,在用户一次触摸屏幕到离开屏幕的过程中,上述屏幕会以固定的采样频率进行采样,得到与该次触摸操作相关联的多个触摸点,这些触摸点均被包含于上述待处理事件流中。其中,每个触摸点携带有其属性,该属性指的是触摸点在屏幕上的坐标以及触摸点的获取时间(也即屏幕采样获得该触摸点的时间)。对于采用安卓系统的移动终端来说,上述移动终端的驱动层,指的是移动终端的硬件抽象层(hardwareabstractionlayer,hal)。由于屏幕的采样频率通常较高,用户对屏幕的触摸操作持续时间越长,上述待处理事件流中所包含的触摸点越多,因而为了提升处理效率,此处仅从上述待处理时间流中提取预设数量个触摸点,上述预设数量为根据移动终端的性能而设置的经验值,例如,上述预设数量可以为3;也即,从上述待处理事件流中获取三个触摸点。
可选地,移动终端为了存储从上述待处理事件流中所获取到的一个以上触摸点,可以在移动终端上电启动时就在驱动层创建并初始化一缓存数组,该缓存数组的元素的个数基于上述预设数量而设置;则上述步骤101可具体表现为:当上述驱动层获取到上述待处理事件流时,从上述待处理事件流中获取一个以上触摸点存储于上述缓存数组中。
可选地,为了提高对上述待处理事件流的处理效率,上述当上述驱动层获取到上述待处理事件流时,从上述待处理事件流中获取一个以上触摸点存储于上述缓存数组中的步骤可包括:
a1、读取上述待处理事件流中所包含的各个触摸点的获取时间;
其中,前文已经说明了各个触摸点都有其属性,该属性指的是触摸点在屏幕上的坐标以及触摸点的获取时间。基于此,可以通过解析各个触摸点的属性,读取到上述待处理事件流中所包含的各个触摸点的获取时间。具体地,由于用户一触摸屏幕就会生成上述待处理事件流,此时驱动层就已经可以获取到上述待处理事件流,随后基于用户对屏幕持续的触摸操作,上述待处理事件流中的触摸点的个数会不断的增加;因而,驱动层所读取到的待处理事件流中的触摸点实际上也呈现的是数量由少至多的趋势。也即是说,驱动层最先读取到的触摸点通常是用户最早触摸的点。
a2、基于获取时间由早至晚的顺序,在上述待处理事件流中确定一个以上触摸点,并存储于上述缓存数组中。
其中,通过上述获取时间,驱动层可以快速确定当前所读取的待处理事件流中哪些触摸点是最早接收到的触摸点,这样一来即可基于获取时间由早至晚的顺序,在上述待处理事件流中确定一个以上触摸点,并存储于上述缓存数组中;也即,从待处理事件流中获取最早的一个以上(例如三个)触摸点,并将获取到的触摸点存储于缓存数组中。
步骤102,将上述一个以上触摸点与预设的手势导航条件进行匹配;
在本申请实施例中,在获取到待处理时间流中的一个以上触摸点之后,可以将上述一个以上触摸点与预设的手势导航条件进行匹配。具体地,根据用户触摸屏幕时的触摸位置的不同,移动终端会有不同的响应:例如,当移动终端触摸的是屏幕中间位置时,则正常执行触摸(例如点击、长按或滑动)所对应的操作(通常是对象选择或页面移动操作);当移动终端触摸的是屏幕边缘位置时,则根据该触摸操作与预设的收拾导航条件的匹配结果,执行手势导航触摸操作或触摸所对应的操作(通常是对象选择或页面移动操作)。基于此,上述步骤102具体可表现为:
b1、获取起始触摸点在屏幕上的位置;
其中,在将上述一个以上触摸点与预设的手势导航条件进行匹配时,首先应该确定用户的触摸操作在屏幕上所对应的位置。在这里,为了减轻计算量,可仅通过起始触摸点,也即上述一个以上触摸点中获取时间最早的触摸点进行触摸位置的判断。因而,可以先获取起始触摸点在屏幕上的位置,也即获取起始触摸点在屏幕上的坐标。
b2、若上述起始触摸点在屏幕上的位置属于预设的屏幕底部区域,则将上述一个以上触摸点与预设的第一手势导航条件进行匹配;
其中,移动终端可以针对屏幕边缘位置预先设定对应的屏幕区域,通过起始触摸点在屏幕上的位置是否落入预设的屏幕区域来判定用户的触摸操作在屏幕上所对应的位置。具体地,考虑到边缘底部是用户常用的触发手势导航的区域,因而,此处针对屏幕底部区域及屏幕其它边缘区域(例如屏幕顶部区域或屏幕侧边区域)分别设定了不同的手势导航条件。当上述起始触摸点在屏幕上的位置属于预设的屏幕底部区域时,将上述一个以上触摸点与预设的第一手势导航条件进行匹配,其中,上述第一手势导航条件为:上述一个以上触摸点的平均位移大于预设的位移阈值,上述位移阈值是预先设定的经验值,此处不作限定。具体地,上述一个以上触摸点的平均位移,指的是获取时间上相邻的两个触摸点的位移的平均值,该平均位移可用于表示用户触摸屏幕时的滑动速度,该平均位移越大,则代表用户进行的是触摸滑动操作,且滑动速度越快;也即,只要用户在屏幕底部区域进行了较快速的滑动触摸操作,则认为此时用户想要触发移动终端进行手势导航,此时,上述一个以上触摸点与预设的第一手势导航条件匹配成功。
b3、若上述起始触摸点在屏幕上的位置属于预设的屏幕顶部区域或屏幕侧边区域,则根据上述起始触摸点在屏幕上的位置,确定与上述一个以上触摸点相关联的屏幕边缘,并将上述一个以上触摸点与预设的第二手势导航条件进行匹配。
其中,当上述起始触摸点在屏幕上的位置属于预设的屏幕顶部区域或屏幕侧边区域时,可以先根据上述起始触摸点在屏幕上的位置,确定与上述一个以上触摸点相关联的屏幕边缘,例如,若起始触摸点在屏幕上的位置属于预设的屏幕顶部区域,则与上述一个以上触摸点相关联的屏幕边缘为屏幕顶部边缘;上述屏幕侧边区域包括屏幕左侧边区域及屏幕右侧边区域:若起始触摸点在屏幕上的位置属于预设的屏幕左侧边区域,则与上述一个以上触摸点相关联的屏幕边缘为屏幕左侧边缘;若起始触摸点在屏幕上的位置属于预设的屏幕右侧边区域,则与上述一个以上触摸点相关联的屏幕边缘为屏幕右侧边缘。在确定了与一个以上触摸点相关联的屏幕边缘后,可以将上述一个以上触摸点与预设的第二手势导航条件进行匹配,其中,上述第二手势导航条件为:上述一个以上触摸点的平均位移大于上述位移阈值,且上述一个以上触摸点与相关联的屏幕边缘所构成的夹角大于预设的角度阈值。也即,上述第二匹配条件不仅要求用户在屏幕上的滑动触摸操作的速度越快越好,而且要求该滑动触摸操作的滑动方向与相关联的屏幕边缘越垂直越好。具体地,上述一个以上触摸点与相关联的屏幕边缘所构成的夹角,指的是起始触摸点与末尾触摸点的连线与相关联的屏幕边缘所构成的夹角,上述末尾触摸点指的是上述一个以上触摸点中获取时间最晚的触摸点。
为了更好的说明上述手势导航条件,请参阅图2,图2示出了四组不同的触摸点:
其中,第一组触摸点a1、a2、a3的起始触摸点a1在屏幕底部区域,且a1、a2、a3的平均位移较大,因而,上述第一组触摸点与上述第一手势导航条件匹配成功;
第二组触摸点b1、b2、b3的起始触摸点b1在屏幕顶部区域,b1、b2、b3的平均位移较大,但b1与该组触摸点的末尾触摸点b3的连线和屏幕顶部边缘呈现的夹角∠1较小,因而,上述第二组触摸点与上述第二手势导航条件匹配失败;
第三组触摸点c1、c2、c3的起始触摸点c1在屏幕左侧边区域,c1与该组触摸点的末尾触摸点c3的连线和屏幕左侧边缘呈现的夹角∠2较大,但c1、c2、c3的平均位移较小,因而,上述第三组触摸点与上述第二手势导航条件也匹配失败;
第三组触摸点d1、d2、d3的起始触摸点d1在屏幕右侧边区域,d1与该组触摸点的末尾触摸点d3的连线和屏幕右侧边缘呈现的夹角∠3较大,且d1、d2、d3的平均位移也较大,因而,上述第四组触摸点与上述第二手势导航条件匹配成功。
步骤103,根据匹配的结果对预设的事件标志位进行赋值;
在本申请实施例中,移动终端在出厂时,就已经在本机的屏幕的空闲标志位中选定一标志位作为上述事件标志位。在经过上述步骤102之后,驱动层可以根据匹配的结果对上述预设的事件标志位进行赋值。可选地,上述步骤103具体包括:
c1、若上述匹配的结果为匹配成功,则将上述事件标志位赋值为第一数值,上述第一数值用于标志上述待处理事件流指示的是手势导航事件;
c2、若上述匹配的结果为匹配失败,则将上述事件标志位赋值为第二数值,上述第二数值用于标志上述待处理事件流指示的是选择/移动事件。
其中,上述第一数值可以被设定为“1”,上述第二数值可以被设定为“0”;当上述一个以上触摸点与预设的手势导航条件匹配成功时,认为该待处理事件流指示的是手势导航事件,此时可以将上述事件标志位赋值为第一数值;当上述一个以上触摸点与预设的手势导航条件匹配失败时,认为该待处理事件流指示的是选择/移动事件,此时可以将上述事件标志位赋值为第二数值,其中,上述选择/移动事件,具体指的是用户单击或长按时的点击选择事件,以及用户滑动触摸时的页面移动事件。
步骤104,上述移动终端的框架层基于赋值后的上述事件标志位确定上述待处理事件流所指示的事件,并根据上述待处理事件流所指示的事件确定上述待处理事件流的关联对象;
在本申请实施例中,由于上述事件标志位上的数值可用于标志待处理事件流所指示的事件,因而,移动终端的框架层可以直接通过读取上述事件标志位来确定上述待处理事件流所指示的事件,并根据上述待处理事件流所指示的事件确定上述待处理事件流的关联对象。具体地,当上述待处理事件流所指示的事件为手势导航事件时,可以将上述移动终端的系统界面(systemui)应用确定为上述待处理事件流的关联对象,当上述待处理事件流所指示的事件为选择/移动事件时,可以将上述移动终端的视图(view)组件确定为上述待处理事件流的关联对象。
步骤105,触发上述关联对象执行上述待处理事件流所指示的事件。
在本申请实施例中,上述待处理事件流将被分发到对应的关联对象处进行处理。具体来说,待处理事件流指示的是手势导航事件时,该待处理事件流会被分发至系统界面应用处,并执行对应的手势导航事件;待处理事件流指示的是选择/移动事件时,该待处理事件流会被分发至视图组件处,并根据待处理事件流中所携带的各个触摸点执行对应的选择/移动事件。
可选地,当监测到上述触摸操作消失时;也即,在用户抬手、结束触摸屏幕时,清空上述缓存数组,并重置上述事件标志位。这表明本次对用户的触摸操作的判定已结束。
可选地,针对某些支持界面翻转的全面屏移动终端来说,其并没有固定的顶部及底部之分。针对这种情况,可以通过加速度计及陀螺仪检测移动终端当前姿态,并确定当前姿态下的屏幕顶部区域(以及屏幕顶部边缘)及屏幕底部区域(以及屏幕底部边缘)。当然,针对普通的移动终端来说,可直接根据摄像头所在位置预设屏幕顶部区域及屏幕底部区域:与摄像头在同一侧的为屏幕顶部区域,与摄像头在相对侧的为屏幕底部区域。
由上可见,本申请实施例中,在驱动层就完成对屏幕的事件流的判定,并基于判定结果触发框架层直接将事件流分发到对应的关联对象处进行处理,也即在根源上判断事件流的流向,不需要修改安卓系统本身对事件流的处理,避免引发兼容性问题,使得稳定性大大增强。进一步地,由于边缘误触逻辑也是在驱动层就进行判断,也即,本申请实施例中将事件流是否为手势导航的判定提升至与边缘误触逻辑同级,这可提升手势导航功能的响应速度。
实施例二
本申请实施例二提供了一种事件流处理装置,上述事件流处理装置可集成于移动终端。如图3所示,本申请实施例中的事件流处理装置300包括:
获取单元301,用于当移动终端的驱动层获取到待处理事件流时,从上述待处理事件流中获取一个以上触摸点,其中,上述待处理事件流基于用户对上述移动终端的屏幕的触摸操作而生成;
匹配单元302,用于将上述一个以上触摸点与预设的手势导航条件进行匹配;
赋值单元303,用于根据匹配的结果对预设的事件标志位进行赋值;
确定单元304,用于由上述移动终端的框架层基于赋值后的上述事件标志位确定上述待处理事件流所指示的事件,并根据上述待处理事件流所指示的事件确定上述待处理事件流的关联对象;
触发单元305,用于触发上述关联对象执行上述待处理事件流所指示的事件。
可选地,上述事件流处理装置300还包括:
创建单元,用于创建并初始化缓存数组;
相应地,上述获取单元301,具体用于当上述驱动层获取到上述待处理事件流时,从上述待处理事件流中获取一个以上触摸点存储于上述缓存数组中。
可选地,上述事件流处理装置300还包括:
清空单元,用于当监测到上述触摸操作消失时,清空上述缓存数组;
重置单元,用于当监测到上述触摸操作消失时,重置上述事件标志位。
可选地,上述获取单元301,包括:
获取时间读取子单元,用于读取上述待处理事件流中所包含的各个触摸点的获取时间;
触摸点存储子单元,用于基于获取时间由早至晚的顺序,在上述待处理事件流中确定一个以上触摸点,并存储于上述缓存数组中。
可选地,上述匹配单元302,包括:
位置获取子单元,用于获取起始触摸点在屏幕上的位置,其中,上述起始触摸点为上述一个以上触摸点中获取时间最早的触摸点;
第一匹配子单元,用于若上述起始触摸点在屏幕上的位置属于预设的屏幕底部区域,则将上述一个以上触摸点与预设的第一手势导航条件进行匹配,其中,上述第一手势导航条件为:上述一个以上触摸点的平均位移大于预设的位移阈值;
第二匹配子单元,用于若上述起始触摸点在屏幕上的位置属于预设的屏幕顶部区域或屏幕侧边区域,则根据上述起始触摸点在屏幕上的位置,确定与上述一个以上触摸点相关联的屏幕边缘,并将上述一个以上触摸点与预设的第二手势导航条件进行匹配,其中,上述第二手势导航条件为:上述一个以上触摸点的平均位移大于上述位移阈值,且上述一个以上触摸点与相关联的屏幕边缘所构成的夹角大于预设的角度阈值。
可选地,赋值单元303,具体用于若上述匹配的结果为匹配成功,则将上述事件标志位赋值为第一数值,上述第一数值用于标志上述待处理事件流指示的是手势导航事件,若上述匹配的结果为匹配失败,则将上述事件标志位赋值为第二数值,上述第二数值用于标志上述待处理事件流指示的是选择/移动事件。
可选地,上述确定单元304,具体用于若上述待处理事件流所指示的事件为手势导航事件,则将上述移动终端的系统界面应用确定为上述待处理事件流的关联对象,若上述待处理事件流所指示的事件为选择/移动事件,则将上述移动终端的视图组件确定为上述待处理事件流的关联对象。
由上可见,在本申请实施例中,事件流处理装置在驱动层就完成对屏幕的事件流的判定,并基于判定结果触发框架层直接将事件流分发到对应的关联对象处进行处理,也即在根源上判断事件流的流向,不需要修改安卓系统本身对事件流的处理,避免引发兼容性问题,使得稳定性大大增强。进一步地,由于边缘误触逻辑也是在驱动层就进行判断,也即,本申请实施例中将事件流是否为手势导航的判定提升至与边缘误触逻辑同级,这可提升手势导航功能的响应速度。
实施例三
本申请实施例三提供了一种移动终端,请参阅图4,本申请实施例中的移动终端4包括:存储器401,一个或多个处理器402(图4中仅示出一个)及存储在存储器401上并可在处理器上运行的计算机程序。其中:存储器401用于存储软件程序以及单元,处理器402通过运行存储在存储器401的软件程序以及单元,从而执行各种功能应用以及数据处理,以获取上述预设事件对应的资源。具体地,处理器402通过运行存储在存储器401的上述计算机程序时实现以下步骤:
当移动终端的驱动层获取到待处理事件流时,从上述待处理事件流中获取一个以上触摸点,其中,上述待处理事件流基于用户对上述移动终端的屏幕的触摸操作而生成;
将上述一个以上触摸点与预设的手势导航条件进行匹配;
根据匹配的结果对预设的事件标志位进行赋值;
上述移动终端的框架层基于赋值后的上述事件标志位确定上述待处理事件流所指示的事件,并根据上述待处理事件流所指示的事件确定上述待处理事件流的关联对象;
触发上述关联对象执行上述待处理事件流所指示的事件。
假设上述为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第二种可能的实施方式中,处理器402通过运行存储在存储器401的上述计算机程序时实现还以下步骤:
创建并初始化缓存数组;
相应地,上述当移动终端的驱动层获取到待处理事件流时,从上述待处理事件流中获取一个以上触摸点,包括:
当上述驱动层获取到上述待处理事件流时,从上述待处理事件流中获取一个以上触摸点存储于上述缓存数组中。
在上述第二种可能的实施方式作为基础而提供的第三种可能的实施方式中,处理器402通过运行存储在存储器401的上述计算机程序时实现还以下步骤:
当监测到上述触摸操作消失时,清空上述缓存数组,并重置上述事件标志位。
在上述二种可能的实施方式作为基础而提供的第四种可能的实施方式中,上述从上述待处理事件流中获取一个以上触摸点存储于上述缓存数组中,包括:
读取上述待处理事件流中所包含的各个触摸点的获取时间;
基于获取时间由早至晚的顺序,在上述待处理事件流中确定一个以上触摸点,并存储于上述缓存数组中。
在上述第一种可能的实施方式作为基础,或者上述第二种可能的实施方式作为基础,或者上述第三种可能的实施方式作为基础,或者上述第四种可能的实施方式作为基础而提供的第五种可能的实施方式中,上述将上述一个以上触摸点与预设的手势导航条件进行匹配,包括:
获取起始触摸点在屏幕上的位置,其中,上述起始触摸点为上述一个以上触摸点中获取时间最早的触摸点;
若上述起始触摸点在屏幕上的位置属于预设的屏幕底部区域,则将上述一个以上触摸点与预设的第一手势导航条件进行匹配,其中,上述第一手势导航条件为:上述一个以上触摸点的平均位移大于预设的位移阈值;
若上述起始触摸点在屏幕上的位置属于预设的屏幕顶部区域或屏幕侧边区域,则根据上述起始触摸点在屏幕上的位置,确定与上述一个以上触摸点相关联的屏幕边缘,并将上述一个以上触摸点与预设的第二手势导航条件进行匹配,其中,上述第二手势导航条件为:上述一个以上触摸点的平均位移大于上述位移阈值,且上述一个以上触摸点与相关联的屏幕边缘所构成的夹角大于预设的角度阈值。
在上述第一种可能的实施方式作为基础,或者上述第二种可能的实施方式作为基础,或者上述第三种可能的实施方式作为基础,或者上述第四种可能的实施方式作为基础而提供的第六种可能的实施方式中,上述根据匹配的结果对预设的事件标志位进行赋值,包括:
若上述匹配的结果为匹配成功,则将上述事件标志位赋值为第一数值,上述第一数值用于标志上述待处理事件流指示的是手势导航事件;
若上述匹配的结果为匹配失败,则将上述事件标志位赋值为第二数值,上述第二数值用于标志上述待处理事件流指示的是选择/移动事件。
在上述第六种可能的实施方式作为基础而提供的第七种可能的实施方式中,上述根据上述待处理事件流所指示的事件确定上述待处理事件流的关联对象,包括:
若上述待处理事件流所指示的事件为手势导航事件,则将上述移动终端的系统界面应用确定为上述待处理事件流的关联对象;
若上述待处理事件流所指示的事件为选择/移动事件,则将上述移动终端的视图组件确定为上述待处理事件流的关联对象。
应当理解,在本申请实施例中,所称处理器402可以是中央处理单元(centralprocessingunit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器401可以包括只读存储器和随机存取存储器,并向处理器402提供指令和数据。存储器401的一部分或全部还可以包括非易失性随机存取存储器。例如,存储器401还可以存储设备类别的信息。
由上可见,在本申请实施例中,移动终端在驱动层就完成对屏幕的事件流的判定,并基于判定结果触发框架层直接将事件流分发到对应的关联对象处进行处理,也即在根源上判断事件流的流向,不需要修改安卓系统本身对事件流的处理,避免引发兼容性问题,使得稳定性大大增强。进一步地,由于边缘误触逻辑也是在驱动层就进行判断,也即,本申请实施例中将事件流是否为手势导航的判定提升至与边缘误触逻辑同级,这可提升手势导航功能的响应速度。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者外部设备软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关联的硬件来完成,上述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读存储介质可以包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机可读存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括是电载波信号和电信信号。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
1.一种事件流处理方法,其特征在于,包括:
当移动终端的驱动层获取到待处理事件流时,从所述待处理事件流中获取一个以上触摸点,其中,所述待处理事件流基于用户对所述移动终端的屏幕的触摸操作而生成;
将所述一个以上触摸点与预设的手势导航条件进行匹配;
根据匹配的结果对预设的事件标志位进行赋值;
所述移动终端的框架层基于赋值后的所述事件标志位确定所述待处理事件流所指示的事件,并根据所述待处理事件流所指示的事件确定所述待处理事件流的关联对象;
触发所述关联对象执行所述待处理事件流所指示的事件。
2.如权利要求1所述的事件流处理方法,其特征在于,所述事件流处理方法还包括:
创建并初始化缓存数组;
相应地,所述当移动终端的驱动层获取到待处理事件流时,从所述待处理事件流中获取一个以上触摸点,包括:
当所述驱动层获取到所述待处理事件流时,从所述待处理事件流中获取一个以上触摸点存储于所述缓存数组中。
3.如权利要求2所述的事件流处理方法,其特征在于,所述事件流处理方法还包括:
当监测到所述触摸操作消失时,清空所述缓存数组,并重置所述事件标志位。
4.如权利要求2所述的事件流处理方法,其特征在于,所述从所述待处理事件流中获取一个以上触摸点存储于所述缓存数组中,包括:
读取所述待处理事件流中所包含的各个触摸点的获取时间;
基于获取时间由早至晚的顺序,在所述待处理事件流中确定一个以上触摸点,并存储于所述缓存数组中。
5.如权利要求1至4任一项所述的事件流处理方法,其特征在于,所述将所述一个以上触摸点与预设的手势导航条件进行匹配,包括:
获取起始触摸点在屏幕上的位置,其中,所述起始触摸点为所述一个以上触摸点中获取时间最早的触摸点;
若所述起始触摸点在屏幕上的位置属于预设的屏幕底部区域,则将所述一个以上触摸点与预设的第一手势导航条件进行匹配,其中,所述第一手势导航条件为:所述一个以上触摸点的平均位移大于预设的位移阈值;
若所述起始触摸点在屏幕上的位置属于预设的屏幕顶部区域或屏幕侧边区域,则根据所述起始触摸点在屏幕上的位置,确定与所述一个以上触摸点相关联的屏幕边缘,并将所述一个以上触摸点与预设的第二手势导航条件进行匹配,其中,所述第二手势导航条件为:所述一个以上触摸点的平均位移大于所述位移阈值,且所述一个以上触摸点与相关联的屏幕边缘所构成的夹角大于预设的角度阈值。
6.如权利要求1至4任一项所述的事件流处理方法,其特征在于,所述根据匹配的结果对预设的事件标志位进行赋值,包括:
若所述匹配的结果为匹配成功,则将所述事件标志位赋值为第一数值,所述第一数值用于标志所述待处理事件流指示的是手势导航事件;
若所述匹配的结果为匹配失败,则将所述事件标志位赋值为第二数值,所述第二数值用于标志所述待处理事件流指示的是选择/移动事件。
7.如权利要求6任一项所述的事件流处理方法,其特征在于,所述根据所述待处理事件流所指示的事件确定所述待处理事件流的关联对象,包括:
若所述待处理事件流所指示的事件为手势导航事件,则将所述移动终端的系统界面应用确定为所述待处理事件流的关联对象;
若所述待处理事件流所指示的事件为选择/移动事件,则将所述移动终端的视图组件确定为所述待处理事件流的关联对象。
8.一种事件流处理装置,其特征在于,包括:
获取单元,用于当移动终端的驱动层获取到待处理事件流时,从所述待处理事件流中获取一个以上触摸点,其中,所述待处理事件流基于用户对所述移动终端的屏幕的触摸操作而生成;
匹配单元,用于将所述一个以上触摸点与预设的手势导航条件进行匹配;
赋值单元,用于根据匹配的结果对预设的事件标志位进行赋值;
确定单元,用于由所述移动终端的框架层基于赋值后的所述事件标志位确定所述待处理事件流所指示的事件,并根据所述待处理事件流所指示的事件确定所述待处理事件流的关联对象;
触发单元,用于触发所述关联对象执行所述待处理事件流所指示的事件。
9.一种移动终端,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的方法。
技术总结