触控响应方法及装置与流程

文档序号:11133601阅读:526来源:国知局
触控响应方法及装置与制造工艺

本发明涉及软件开发领域,特别涉及一种触控响应方法及装置。



背景技术:

随着科学技术的快速发展,触摸屏已经被广泛应用于终端中,这些终端包括手机、电脑、电视、可穿戴电子设备等,当用户对触摸屏进行触控操作时,终端可以响应用户的触控操作,并将响应的结果在触摸屏上显示出来,以达到用户进行该触控操作的目的。

现有技术中,对安卓系统下的终端而言,用户对触摸屏进行触控操作后,终端的驱动进程对触控操作进行解析,解析后的触控事件所对应的触控数据(包括触控操作,触控点的坐标,触控点的面积等触控数据)被写入设备节点集,系统输入(input)线程在设备节点集中读取触控操作并将解析后的触控数据发送至系统事件分发线程(系统input线程和系统事件分发线程同属于一个系统进程),系统事件分发线程查找当前窗口系统中需要接收触控数据的窗口,与该窗口对应的客户端进行进程间通信,并将触控数据传输给该窗口对应的客户端,客户端响应该触控事件。

在实现本发明的过程中,发明人发现现有技术至少存在以下问题:

现有的安卓系统下的客户端在响应触控事件时,需要等待系统input线程和系统事件分发线程的数据传输,当系统线程之间的传输时间较长,客户端等待的时间也会相应较长,从而导致触控响应时延较长。



技术实现要素:

为了解决现有技术中当系统线程之间的传输时间较长,客户端等待的时间也会相应较长,从而导致触控响应时延较长的问题,本发明实施例提供了一种触控响应方法。所述技术方案如下:

一方面,提供了一种触控响应方法,所述方法包括:

监听设备节点集;

在所述设备节点集中有数据时,判断所述数据是否为触控操作产生的触控数据;

在所述数据为触控操作产生的触控数据时,获取与所述触控数据属于同一触控事件的所有数据;

根据所述所有数据通过用户界面(UI)响应触控事件。

另一方面,提供了一种触控响应装置,所述装置包括:

监听模块,用于监听设备节点集;

判断模块,用于在所述设备节点集中有数据时,判断所述数据是否为触控操作产生的触控数据;

获取模块,用于在所述数据为触控操作产生的触控数据时,获取与所述触控数据属于同一触控事件的所有数据;

响应模块,用于根据所述所有数据通过UI响应触控事件。

本发明实施例提供的技术方案带来的有益效果是:

本发明实施例提供了一种触控响应方法及装置,该方法可以应用于采用安卓系统的终端,该终端中包括客户端,客户端可以监听设备节点集并判断设备节点集中的数据是否为触控操作产生的触控数据,当该数据是触控数据时,客户端可以获取与该触控数据属于同一触控事件的所有数据并通过UI响应该触控事件,这一触控响应过程均在客户端中完成,客户端可以主动监听设备节点集,在获得触控数据后可以通过UI实时响应触控事件,无需等待系统线程的数据传输,因此可以减小触控响应时延。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种触控响应方法的流程图;

图2是本发明实施例提供的一种触控响应方法的流程图;

图3是本发明实施例提供的一种触控响应方法的示意图;

图4-1是本发明实施例提供的一种触控响应装置的结构示意图;

图4-2是本发明实施例提供的一种触控响应装置的结构示意图;

图4-3是本发明实施例提供的一种触控响应装置的部分结构示意图;

图4-4是本发明实施例提供的一种触控响应装置的部分结构示意图;

图4-5是本发明实施例提供的一种触控响应装置的部分结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

图1是本发明实施例提供的一种触控响应方法的流程图,该方法可以应用于采用安卓系统的终端,该终端中安装有客户端,如图1所示,该方法可以包括:

步骤101、监听设备节点集。

步骤102、在该设备节点集中有数据时,判断该数据是否为触控操作产生的触控数据。

步骤103、在该数据为触控操作产生的触控数据时,获取与触控数据属于同一触控事件的所有数据。

步骤104、根据所有数据通过UI响应触控事件。

综上所述,本发明实施例提供了一种触控响应方法,该方法可以应用于采用安卓系统的终端,该终端中包括客户端,客户端可以监听设备节点集并判断设备节点集中的数据是否为触控操作产生的触控数据,当该数据是触控数据时,客户端可以获取与该触控数据属于同一触控事件的所有数据并通过UI响应该触控事件,这一触控响应过程均在客户端中完成,客户端可以主动监听设备节点集,在获得触控数据后可以通过UI实时响应触控事件,无需等待系统线程的数据传输,因此可以减小触控响应时延。

图2是本发明实施例提供的一种触控响应方法的流程图,该方法可以应用于采用安卓系统的终端,该终端安装有客户端,该客户端可以为第三方客户端,如绘图客户端,如图2所示,该方法可以包括:

步骤201、驱动进程解析触控操作的触摸点坐标得到数据。

具体的,当用户对触控屏进行触控操作时,即用户用手指或触控笔等对触控屏进行触控操作时,示例的,对电阻式触控屏而言,电阻式触控屏分为两层,中间以隔离物进行分离,当由于触控动作引起电阻式触控屏的两层之间的互相碰撞时,电阻式触控屏的两层之间的电流和电压会发生变化,驱动进程可以获取该触控操作引起的电流和电压变化,并解析触控屏所受的压力点与电流和电压之间的关系,从而得到触控操作的触摸点坐标。

步骤202、驱动进程将数据存储至设备节点集。

需要说明的是,终端中设置有多个输入输出设备,其中对应于一个显示屏的输入设备称为一个设备节点,一个或多个设备节点对应配置有一个设备节点集,也即是一个设备节点集可以存储有对应至少两个显示屏的输入设备的文件,设备节点集可以包括多个文件,设备节点集用于存储终端中的驱动进程获取的数据,该设备节点集可以为一个终端中的驱动进程的存储模块。

示例的,一个设备节点可以包括键盘、鼠标、遥控器、触控屏等。设备节点集中除了保存触控操作的触摸点坐标数据之外,还可以保存包括触控屏的大小、触控操作的具体动作(触摸点按下或触摸点抬起)、触摸点的触摸区域面积等与触控协议相关的数据。

步骤203、在一次触控操作结束后,驱动进程将同步数据存储至设备节点集。

需要说明的是,同步数据用于指示一次触控操作结束,是一个预先设置的数据。例如,当用户在触控屏上同时触控两个触摸点,为了区分描述,两个触摸点分别称为触摸点1和触摸点2,驱动进程解析触摸点1的坐标得到数据,存储至设备节点集,然后驱动进程再解析触摸点2的坐标得到数据,存储至设备节点集,同时触控的两个触摸点都被驱动进程解析坐标得到数据,驱动进程将得到的数据存储至设备节点集之后,表示一次触控操作结束,驱动进程将同步数据存储至设备节点集,即在触控屏上同时触控两个触摸点属于一次触控操作。又例如,当用户在触控屏上先后触控两个触摸点,根据触控的先后将两个触摸点分为触摸点1和触摸点2,驱动进程解析触摸点1的坐标得到数据,存储至设备节点集,表示一次触控操作结束,驱动进程将同步数据存储至设备节点集;驱动进程解析触摸点2的坐标得到数据,存储至设备节点集,表示一次触控操作结束,驱动进程将同步数据存储至设备节点集,即在触控屏上先后触控两个触摸点属于两次触控操作。

步骤204、客户端监听设备节点集。

具体的,客户端通过遍历设备节点集中的多个文件中的所有内容,监控设备节点集中是否有数据,实际应用中,键盘、鼠标、遥控器、触控屏等任一输入设备对显示屏有操作时,会产生相应的数据,则客户端能够监听到设备节点集中有数据。

步骤205、在设备节点集中有数据时,客户端判断该数据是否为触控操作产生的触控数据。当客户端判断该数据是触控操作产生的触控数据时,执行步骤206,当客户端判断该数据不是触控操作产生的触控数据时,执行步骤204。

需要说明的是,触控操作产生的触控数据可以是手指或触控笔等物体对触控屏进行触控操作时产生的数据。

具体的,客户端判断该数据是否为触控操作产生的触控数据的方法有多种,本发明实施例以以下判断方法为例进行说明。

示例的,客户端可以检测数据中是否包含有预设的触控标识,当该数据中包含有触控标识,确定该数据为触控操作产生的触控数据。

可选的,该触控标识为输入设备的标识,例如,在设备节点集中保存的数据中,可以包含有产生数据的输入设备的标识(例如输入设备的名称和/或编号)等信息,客户端可以根据检测该输入设备的标识来判断数据是否为触控操作产生的触控数据,示例的,键盘的标识可以定义为“Hisense Smart TV Keypad”,鼠标的标识可以定义为“MCE IR Mouse”,遥控器的标识可以定义为“Hisense Smart TV IR Receiver”,触控屏的标识(即触控标识)可以定义为“Hisense Smart TV Touch Screen”,当客户端检测到数据信息中有“Hisense Smart TV Touch Screen”标识时,判断该数据为触控操作产生的触控数据。

实际应用中,触控标识也可以为触控编码,则客户端可以监控数据的编码是否是预设的触控编码,当监控到数据的编码为触控编码时,确定该数据为触控操作产生的触控数据。具体的,在设备节点集中对数据进行编码定义。示例的,定义键盘名称为EV_KEY,键盘对应的数据编码为0x01,定义鼠标名称为EV_MOS,鼠标对应的数据编码为0x02,定义遥控器名称为EV_IR_REV,遥控器对应的数据编码为0x03,定义触控屏名称为EV_ABS,触控屏对应的数据编码(即触控编码)为0x04,定义同步数据名称为EV_SYNC,同步数据对应的数据编码为0x05,将输入设备对应的数据编码保存在数据中某一特定位置,当客户端在保存输入设备对应的数据编码的该特定位置监控到触控编码0x04,则判断该数据为触控操作产生的触控数据。

步骤206、客户端获取触控数据,判断该触控数据是否是同步数据。当触控数据是同步数据时,执行步骤207;当触控数据不是同步数据时,执行步骤208。

需要说明的是,同步数据用于指示一次触控操作结束。当客户端确定触控数据是同步数据时,说明一次触控操作结束,当客户端确定触控数据不是同步数据时,说明一次触控操作还未结束,后续可能还存在触控操作产生的数据。

步骤207、客户端获取缓存中的所有数据并清空缓存,该缓存中的所有数据为与触控数据属于同一触控事件的所有数据。

具体的,同一触控事件的所有数据可以是在客户端获取一次同步数据之前缓存中的所有数据,客户端在获取缓存中的所有数据的同时,缓存中的所有数据都被清空,即缓存中缓存的数据为同一触控事件的数据。需要说明的是,本发明实施例所述的缓存可以用来存储客户端获取的触控事件的数据,可以为客户端对应的一个存储模块。

步骤208、客户端将触控数据存储在缓存中,继续执行步骤204。

示例的,触控数据可以包括当前同一触控事件的触摸点坐标数据、触控屏的大小、触控操作的具体动作(触摸点按下或触摸点抬起)、触摸点的触摸区域面积等与触控协议相关的数据。如步骤203中所述,当用户在触控屏上同时触控两个触摸点,驱动进程解析触摸点1的坐标得到数据,存储至设备节点集,客户端将该触控数据存储在缓存中,然后驱动进程再解析触摸点2的坐标得到数据,存储至设备节点集,客户端将该触控数据存储在缓存中,直至一次触控事件结束,即客户端接收到同步数据时,客户端获取缓存中的所有数据并清空缓存中的所有数据。

步骤209、客户端根据所有数据通过UI响应触控事件。

示例的,如图3所示的是一个绘图客户端的UI,用户正在触控屏G上绘制树木,当画一个线条时,现有技术中,在驱动进程解析触控操作得到触控数据并将触控数据存储至设备节点集之后,需要系统input线程读取触控操作,然后将解析得到的触控数据发送至系统事件分发线程,绘图客户端需要等待系统事件分发线程查找到绘图客户端对应的窗口之后,才能接收到系统事件分发线程传输的触控数据,绘图延迟时间大概为30毫秒,即在画下线条30毫秒后才能在触控屏G上显现出来该线条;本发明提供的实施例,由于绘图客户端主动监听设备节点集并对数据进行判断,然后在绘图客户端响应触控事件,通过绘图客户端完成了系统input线程和系统分发线程需要完成的任务,不仅绘图客户端无需等待触控数据在系统线程之间的传输,而且减少了一个触控数据传输过程中跨进程的步骤,即省略了触控数据从系统线程传输至客户端的步骤,可以使得绘图延迟时间减少至10毫秒,极大的改善了用户体验。

值得说明的是,上述步骤204至209中客户端执行的动作可以由客户端的一个线程来完成,无需跨线程执行,能够有效缩短客户端响应触控事件的时延。

需要说明的是,本发明实施例提供的触控响应方法步骤的先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本发明的保护范围之内,因此不再赘述。

综上所述,本发明实施例提供了一种触控响应方法,该方法可以应用于采用安卓系统的终端,该终端中包括客户端,客户端可以监听设备节点集并判断设备节点集中的数据是否为触控操作产生的触控数据,当该数据是触控数据时,客户端可以获取与该触控数据属于同一触控事件的所有数据并通过UI响应该触控事件,这一触控响应过程均在客户端中完成,客户端可以主动监听设备节点集,在获得触控数据后可以通过UI实时响应触控事件,无需等待系统线程的数据传输,而且减少了数据传输过程中跨进程的步骤,因此可以减小触控响应时延,极大改善了用户体验。

图4-1是本发明实施例提供的一种触控响应装置40的结构示意图,该装置可以应用于安卓系统的客户端,如图4-1所示,该装置可以包括:

监听模块401,用于监听设备节点集。

判断模块402,用于在设备节点集中有数据时,判断该数据是否为触控操作产生的触控数据。

获取模块403,用于在该数据为触控操作产生的触控数据时,获取与该触控数据属于同一触控事件的所有数据。

响应模块404,用于根据所有数据通过UI响应触控事件。

综上所述,本发明实施例提供了一种触控响应装置,该装置可以应用于采用安卓系统的终端,该终端中包括客户端,监听模块可以监听设备节点集,判断模块可以判断设备节点集中的数据是否为触控操作产生的触控数据,当该数据是触控数据时,获取模块可以获取与该触控数据属于同一触控事件的所有数据并由响应模块通过UI响应该触控事件,这一触控响应过程均在客户端中完成,客户端可以主动监听设备节点集,在获得触控数据后可以通过UI实时响应触控事件,无需等待系统线程的数据传输,因此可以减小触控响应时延。

图4-2本发明实施例提供的一种触控响应装置40的结构示意图,该装置可以应用于安卓系统的客户端,如图4-2所示,该装置可以包括:

监听模块401,用于监听设备节点集。

判断模块402,用于在设备节点集中有数据时,判断该数据是否为触控操作产生的触控数据。

获取模块403,用于在该数据为触控操作产生的触控数据时,获取与该触控数据属于同一触控事件的所有数据。

响应模块404,用于通过客户端根据所有数据通过UI响应触控事件。

可选的,获取模块403,如图4-3所示,可以包括:

第一获取子模块4031,用于在该数据为触控操作产生的触控数据时,通过客户端获取该触控数据。

判断子模块4032,用于通过客户端判断该触控数据是否为同步数据,该同步数据用于指示一次触控操作结束。

第二获取子模块4033,用于当触控数据是同步数据时,通过客户端获取缓存中的所有数据并清空缓存,缓存中的所有数据为与该触控数据属于同一触控事件的所有数据。

缓存模块405,用于当该触控数据不是同步数据,将触控数据存储在缓存中。

可选的,判断模块402,如图4-4所示,可以包括:

检测子模块4021,用于检测数据中是否包含有预设的触控标识。

确定子模块4022,用于当该数据中包含有触控标识,确定该数据为触控操作产生的触控数据。

可选的,设备节点集包括多个文件,监听模块401,如图4-5所示,可以包括:

遍历子模块4011,用于遍历设备节点集中的多个文件。

综上所述,本发明实施例提供了一种触控响应装置,该装置可以应用于采用安卓系统的终端,该终端中包括客户端,监听模块可以监听设备节点集,判断模块可以判断设备节点集中的数据是否为触控操作产生的触控数据,当该数据是触控数据时,获取模块可以获取与该触控数据属于同一触控事件的所有数据并由响应模块通过UI响应该触控事件,这一触控响应过程均在客户端中完成,客户端可以主动监听设备节点集,在获得触控数据后可以通过UI实时响应触控事件,无需等待系统线程的数据传输,而且减少了数据传输过程中跨进程的步骤,因此可以减小触控响应时延,极大改善了用户体验。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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