数据上报方法、装置、终端和存储介质与流程

文档序号:18141929发布日期:2019-07-10 11:10阅读:276来源:国知局
数据上报方法、装置、终端和存储介质与流程

本申请实施例涉及终端技术领域,特别涉及一种数据上报方法、装置、终端和存储介质。



背景技术:

目前,用户通过终端的触摸显示屏、物理按键实现与终端的人机交互。具体地,用户对触摸显示屏执行触摸操作,触摸显示屏通过两线式串行总线(inter-integratedcircuit,i2c)将上述触摸操作的触摸位置、触摸时长等触摸数据上报至中央处理单元(centralprocessingunit,cpu),之后cpu对上述触摸操作做出响应。

当cpu在空闲时长达到一定时长后,cpu会进入休眠状态。休眠状态可以根据空闲时长划分为不同的休眠等级,空闲时长越长,则休眠等级越高。cpu所处的休眠等级越高,则唤醒cpu所需的时间越长。而触摸显示屏在cpu处于唤醒状态下通过i2c总线向cpu上报数据。



技术实现要素:

本申请实施例提供一种数据上报方法、装置、终端和存储介质。所述技术方案如下:

一方面,本申请实施例提供一种数据上报方法,所述方法包括:

接收触摸事件,所述触摸事件是指终端的触摸显示屏被触摸的事件;

根据所述触摸事件将服务质量qos调度请求的值设置为第一目标值,所述qos调度请求用于对所述终端的中央处理单元cpu的唤醒时长进行调度,所述第一目标值用于指示所述cpu退出第一目标休眠状态的时长;

将所述触摸事件对应的触摸数据上报至所述cpu。

另一方面,本申请实施例提供一种数据上报装置,所述装置包括:

事件接收模块,用于接收触摸事件,所述触摸事件是指终端的触摸显示屏被触摸的事件;

设置模块,用于根据所述触摸事件将服务质量qos调度请求的值设置为第一目标值所述qos调度请求用于对所述终端的中央处理单元cpu的唤醒时长进行调度,所述第一目标值用于指示所述cpu退出第一目标休眠状态的时长;

数据上报模块,用于将所述触摸事件对应的触摸数据上报至所述cpu。

又一方面,本申请实施例提供一种终端,所述终端包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现上述方面所述的数据上报方法。

又一方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现上述方面所述的数据上报方法。

本申请实施例提供的技术方案可以带来如下有益效果:

通过在接收到触摸事件后,将qos调度请求设置为目标值,以使得cpu在一定时长后退出指定休眠状态,该指定休眠状态对应的唤醒时长较短,使得cpu在空闲时长较长时只会维持在指定休眠状态;通过上述方式,可以避免cpu在空闲时长过长时进入较高的休眠等级,减小唤醒cpu所需的时长,减小从接收到触摸事件到cpu响应触摸事件所需的时长,提高响应效率。

附图说明

图1是本申请一个实施例提供的数据上报方法的流程图;

图2是本申请一个实施例提供的创建qos调度请求的流程图;

图3是本申请另一个实施例提供的数据上报方法的流程图;

图4是本申请一个实施例提供的数据上报装置的框图;

图5是本申请一个实施例示出的终端的框图。

具体实施方式

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

下面将对本申请实施例涉及的相关名词进行介绍。

服务质量(qualityofservice,qos)调度请求:网络的一种安全机制,用来解决网络延迟和阻塞等问题的一种技术。在本申请实施例中,qos调度请求用于对cpu的唤醒时长进行控制,以避免触摸显示屏在上报触摸数据时需要唤醒cpu的时间过长的问题。qos调度请求的取值用于指示cpu响应退出休眠状态的最大时长。例如,当qos调度请求的取值为200ms,则cpu在200ms后会退出入c1级休眠,在调度过程中,cpu的休眠等级始终维持在c1级,而不会继续增长。

qos请求添加接口:pm-qos-add-request,用于创建qos调度请求。

qos请求更新接口:pm-qos-update-request,用于对qos调度请求的值进行更新。

第一默认值:pm_qos_default_value。

第二默认值:pm_qos_cpu_dma_latency。

cpu电源状态(c-states):cpu在空闲时长达到一定时长后会进入相应的休眠状态。在一个示例中,cpu的休眠状态包括c0、c1、c2、c3和c4等五个由低到高的休眠等级。休眠等级可以根据空闲时长实际确定,空闲时长越长,则休眠等级越高;空闲时间越短,则休眠等级越短。需要说明的是,c0等级对应的空闲时长为0,也即cpu处于运行状态。另外,当cpu处于不同的休眠等级时,唤醒cpu所需的唤醒时长也不相同。休眠等级越高,则唤醒cpu所需的唤醒时长越长;休眠等级越低,则唤醒cpu所需的唤醒时长越短。

相关技术中,当cpu所处的休眠等级较高时,唤醒cpu所需的时间越长,此时触摸显示屏在接收到触摸操作到向cpu上报数据之间的时间增大,cpu响应触摸操作的时间也增大,处理效率较低。

基于此,本申请实施例提供了一种数据上报方法。在本申请实施例提供的技术方案中,通过在接收到触摸事件后,将qos调度请求设置为目标值,以使得cpu在一定时长后退出指定休眠状态,该指定休眠状态对应的唤醒时长较短,使得cpu在空闲时长较长时只会维持在指定休眠状态;通过上述方式,可以避免cpu在空闲时长过长时进入较高的休眠等级,减小唤醒cpu所需的时长,减小从接收到触摸事件到cpu响应触摸事件所需的时长,提高响应效率。

请参考图1,其示出了本申请实施例示出的请求设置方法的流程图。该方法可以包括如下步骤:

步骤101,接收触摸事件。

触摸事件是指触摸显示屏被触摸的事件。触摸显示屏是一种可接收触头等输入讯号的感应式液晶显示装置。以电容式触摸显示屏为例,当用户触摸该电容式触摸显示屏时,由于人体电场的存在,用户手指与工作面形成耦合电容,由于工作面上接有高频信号,于是手指吸收一个很小的电流,这个电流分别从触摸屏四个角上的电极中流出,此时终端接收到触摸事件。

可选地,终端在接收到触摸事件时,终端中的中断处理函数接收到中断。

步骤102,根据触摸事件将服务质量qos调度请求的值设置为第一目标值。

qos调度请求是网络的一种安全机制,用来解决网络延迟和阻塞等问题的一种技术。在本申请实施例中,qos调度请求用于对cpu的唤醒时长进行控制,以避免触摸显示屏在上报触摸数据时需要唤醒cpu的时间过长的问题。qos调度请求的取值用于指示cpu响应退出休眠状态的最大时长。例如,当qos调度请求的取值为200ms,则cpu在200ms后会退出入c1级休眠,在调度过程中,cpu的休眠等级始终维持在c1级,而不会继续增长。

所述第一目标值用于指示cpu退出第一目标休眠状态的时长。第一目标休眠状态对应的唤醒时长小于第一阈值,第一阈值可以根据实际需求设定,本申请实施例对此不作限定。示例性地,第一目标值为400ms,第一目标休眠状态为c2级。

可选地,终端根据触摸事件,调用qos请求刷新接口将qos调度请求的值设置为第一目标值。可选地,上述qos请求刷新接口为pm_qos_update_request。

触摸显示屏需要将触摸事件通过i2c总线将触摸事件对应的触摸位置上报给cpu,以使得终端能够响应该触摸事件。当cpu的空闲时长较长时,终端所处的睡眠等级较高,此时唤醒cpu所需的时间较长,也即终端需要在较长时间后才能够响应触摸事件,处理效率较低。

在本申请实施例中,通过设置qos调度请求为目标值,以使得cpu进入的睡眠等级较低,唤醒cpu所需的时间较短,从而使触摸事件对应的触摸数据能够及时上报给cpu,减小cpu从接收到触摸事件到响应上述触摸事件所需的时间,提高处理效率。

可选地,在步骤102之前,终端需要先创建qos调度请求。该过程具体如下:调用qos请求添加接口添加qos调度请求;将qos调度请求的值设置为第二默认值,第二默认值用于指示不处理qos调度请求。

可选地,上述qos请求添加接口是指pm-qos-add-request。可选地,第二默认值是指pm_qos_cpu_dma_latency。

在一种可能的实现方式中,终端在开机后,对触摸显示屏进行初始化,之后通过上述qos请求添加接口创建qos调度请求。结合参考图2,其示出了本申请一个实施例示出的创建qos调度请求。终端在开机后,对tp驱动进行初始化,之后通过pm-qos-add-request创建qos调度请求,之后将建qos调度请求的值设置为默认值,不作调度。

步骤103,将触摸事件对应的触摸数据上报至cpu。

触摸事件对应的触摸位置可以包括触摸事件的持续时长、触摸事件的触摸位置等等,本申请实施例对此不作限定。可选地,终端在接收到触摸数据后,响应上述触摸事件。

可选地,在步骤103之后,该数据上报方法还包括:将qos调度请求的值更新为第一默认值;第一默认值用于指示退出qos调度请求。可选地,终端通过qos请求刷新接口将qos调度请求的值设置为第一默认值。通过上述方式,可以避免终端的cpu始终处于低级休眠状态,节省终端的功耗。

结合参考图3,其示出了本申请一个实施例示出的数据上报方法的流程图。手指在触摸显示屏上点击或滑动,此时tp驱动收到报点,终端通过pm-qos-update-request接口设置为特定值,开始调度,cpu不会进入深度休眠,tp驱动处理报点信息,并将报点信息传递给应用层,处理完毕后,通过pm-qos-update-request接口设置为默认值,退出调度,之后终端检测是否还有报点,若有报点,则从tp驱动收到报点的步骤重新开始执行,若没有报点,则结束流程。

综上所述,本申请实施例提供的技术方案,通过在接收到触摸事件后,将qos调度请求设置为目标值,以使得cpu在一定时长后退出指定休眠状态,该指定休眠状态对应的唤醒时长较短,使得cpu在空闲时长较长时只会维持在指定休眠状态;通过上述方式,可以避免cpu在空闲时长过长时进入较高的休眠等级,减小唤醒cpu所需的时长,减小从接收到触摸事件到cpu响应触摸事件所需的时长,提高响应效率。

在图1所示实施例中提到,终端在响应触摸操作后将qos调度请求的取值更新为第一默认值,若终端在此之后接收到触摸操作后,则会重新将qos调度请求的取值设为目标值。当终端处于操作频次较高的场景时,则用户需要频繁设置qos调度请求的取值,造成终端的处理资源被浪费。

基于此,本申请实施例还提供了一种技术方案,以解决在操作频次较高的场景下,终端需要频繁设置qos调度请求的取值的问题。下面对该技术方案进行讲解。

在基于图1所示实施例提供的一个可选实施例中,该请求设置方法还可以包括如下步骤:在终端处于预设场景的过程中,将qos调度请求的值设置为第二目标值。

预设场景是指对触摸显示屏的操作频次符合预设条件的场景。上述预设条件可以是终端的操作频次大于预设阈值,预设阈值可以根据实际需求确定,本申请实施例对此不作限定。在一种可能的实现方式中,预设场景是输入法使用场景,用户通过点击虚拟键盘以在输入框中输入英文、汉字、数字等字符;在另一种可能的实现方式中,预设场景是指游戏应用程序中的竞技场景,用户通过触摸触摸显示屏以控制虚拟角色完成跑动、打斗、射击等动作。

可选地,当终端进入预设场景时,终端将qos调度请求的值设置为第二目标值。具体地,终端在检测到触摸事件对应的触摸位置位于目标位置时,确定终端进入预设场景。当预设场景为输入法使用场景时,上述目标位置可以是输入框所在的区域,也可以是虚拟键盘所在的区域。当预设场景为游戏应用程序中的竞技场景时,上述目标位置是指定虚拟控件所处的区域。可选地,上述指定虚拟控件为“开始游戏”按钮。

第二目标值用于指示cpu响应延迟的第二时长。cpu在空闲时长达到第二时长后进入第二目标休眠状态。第二目标值与第一目标值可以相同,也可以不同。当第二目标值与第一目标值不同时,则第一目标休眠状态与第二目标休眠状态不同;当第二目标值与第一目标值相同时,则第一目标休眠状态与第二目标休眠状态相同。示例性地,第二目标值为200ms,第二目标休眠状态为c1状态。第二目标值的确定过程可以包括如下几个步骤:

步骤1,获取终端中在前台运行的应用程序对应的运行场景;

在一种可能的实现方式中,操作系统通过预设数据通道获取在前台运行的应用程序的运行信息,之后根据上述运行信息确定运行场景。

预设数据通道是指操作系统与应用程序之间预先建立的数据通道。在一种可能的实现方式中,数据通道由第一应用程序通过调用内嵌sdk与操作系统之间以binder方式建立。可选地,数据通道由目标应用程序在启动运行时通过调用内嵌sdk与操作系统提供的sdk接口之间以binder方式建立。在另一种可能的实现方式中,数据通道是由第一应用程序采用套接字socket方式与操作系统之间建立的长连接。可选地,数据通道是由目标应用程序在启动运行时采用socket方式与操作系统提供的socket接口之间建立的长连接。上述运行信息可以包括应用程序标识、界面截图等等,本申请实施例对此不作限定。

在另一种可能的实现方式中,应用程序根据运行信息确定运行场景,之后将该运行场景对应的场景标识发送至操作系统。

步骤2,当运行场景为预设场景时,获取运行场景对应的操作频次;

终端先检测运行场景是否为预设场景,之后获取运行场景对应的操作频次。可选地,终端中保存有预设场景列表,终端在确定出运行场景后,检测该运行场景是否位于预设场景列表中。若该运行场景位于预设场景列表中,则该运行场景为预设场景;若该运行场景未位于预设场景列表中,则该运行场景不为预设场景。

预设场景列表中可以通过如下方式获取:终端统计每个运行场景对应的操作频次,并将操作频次超过预设阈值的运行场景记录在预设场景列表中。

步骤3,根据操作频次确定第二目标值。

可选地,操作频次与第二目标值之间呈负相关关系。也即,操作频次越高,第二目标值越小;此时cpu在空闲时长达到一定时长后所处的休眠等级越低,唤醒cpu所需的时间越短。操作频次越低,第二目标值越大。

在其它可能的实现方式中,终端中保存有预设场景与第二目标值之间的对应关系。终端在确定出预设场景后,查询上述对应关系,即可得到第二目标值。

当终端处于预设场景的过程中,终端可以在如下情况下通过qos请求刷新接口将qos调度请求的值设置为第一默认值。

在一种可能的实现方式中,终端在退出预设场景后,通过qos请求将qos调度请求的值更新为第一默认值。

可选地,终端每隔预设时间获取终端中在前台运行的应用程序的运行场景,若本次获取的运行场景不为预设场景时,则终端退出预设场景。

在另一种可能的实现方式中,在终端处于预设场景的过程中,若在预设时长内未接收到对应触摸事件,则通过qos请求刷新接口将qos调度请求的值更新为第一默认值。预设时长可以根据实际需求设定,本申请实施例对此不作限定。示例性地,预设时长为2秒。

下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。

请参考图4,其示出了本申请一个实施例提供的数据上报装置的框图。该装置具有实现上述方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以包括:

事件接收模块401,用于接收触摸事件,所述触摸事件是指终端的触摸显示屏被触摸的事件。

设置模块402,用于根据所述触摸事件将服务质量qos调度请求的值设置为第一目标值,所述qos调度请求用于对所述终端的中央处理单元cpu的唤醒时长进行调度,所述第一目标值用于指示所述cpu退出第一目标休眠状态的时长。

数据上报模块403,用于将所述触摸事件对应的触摸数据上报至所述cpu。

综上所述,本申请实施例提供的技术方案,通过在接收到触摸事件后,将qos调度请求设置为目标值,以使得cpu在一定时长后退出指定休眠状态,该指定休眠状态对应的唤醒时长较短,使得cpu在空闲时长较长时只会维持在指定休眠状态;通过上述方式,可以避免cpu在空闲时长过长时进入较高的休眠等级,减小唤醒cpu所需的时长,减小从接收到触摸事件到cpu响应触摸事件所需的时长,提高响应效率。

在基于图4所示实施例提供的一个可选实施例中,所述设置模块402,用于根据所述触摸事件,调用qos请求刷新接口将所述qos调度请求的值设置为所述第一目标值。

在基于图4所示实施例提供的一个可选实施例中,所述设置模块402,还用于将所述qos调度请求的值更新为第一默认值;所述第一默认值用于指示退出所述qos调度请求。

在基于图4所示实施例提供的一个可选实施例中,所述设置模块402,还用于在终端处于预设场景的过程中,将所述qos调度请求的值设置为第二目标值,所述预设场景是指对所述触摸显示屏的操作频次符合预设条件的场景,所述第二目标值用于指示所述cpu退出第二目标休眠状态的时长。

可选地,所述预设场景为输入法使用场景,所述设置模块402,用于当检测到对应于作用在目标位置的触摸事件时,将所述qos调度请求的值设置为第二目标值;所述目标位置为输入框所处的位置或者虚拟键盘所处的区域;

所述设置模块402,用于所述预设场景为游戏应用程序的竞技场景,当检测到对应于作用在目标位置的触摸事件时,将所述qos调度请求的值设置为第二目标值;所述目标位置为目标虚拟控件所处的位置。

可选地,所述设置模块402,用于在终端退出所述预设场景后,通过所述qos请求刷新接口将所述qos调度请求的值更新为所述第一默认值。

可选地,所述设置模块402,用于在终端处于所述预设场景的过程中,若在预设时长内未接收到对应所述触摸事件,则通过所述qos请求刷新接口将所述qos调度请求的值更新为所述第一默认值。

可选地,所述装置还包括:

场景获取模块,用于获取所述终端中在前台运行的应用程序对应的运行场景。

频次获取模块,用于当所述运行场景为所述预设场景时,获取所述运行场景对应的操作频次。

目标值确定模块,用于根据所述操作频次确定所述第二目标值。

可选地,所述操作频次与所述第二目标值之间呈负相关关系。

在基于图4所示实施例提供的一个可选实施例中,所述装置还包括:

请求添加模块,用于调用qos请求添加接口添加所述qos调度请求。

所述设置模块402,还用于将所述qos调度请求的值设置为第二默认值,所述第二默认值用于指示不处理所述qos调度请求。

需要说明的是,上述实施例提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

参考图5,其示出了本申请一个示例性实施例提供的终端的结构方框图。本申请中的终端可以包括一个或多个如下部件:处理器510和存储器520。

处理器510可以包括一个或者多个处理核心。处理器510利用各种接口和线路连接整个终端内的各个部分,通过运行或执行存储在存储器520内的指令、程序、代码集或指令集,以及调用存储在存储器520内的数据,执行终端的各种功能和处理数据。可选地,处理器510可以采用数字信号处理(digitalsignalprocessing,dsp)、现场可编程门阵列(field-programmablegatearray,fpga)、可编程逻辑阵列(programmablelogicarray,pla)中的至少一种硬件形式来实现。处理器510可集成中央处理器(centralprocessingunit,cpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统和应用程序等;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器510中,单独通过一块芯片进行实现。

可选地,处理器510执行存储器520中的程序指令时实现下上述各个方法实施例提供的数据上报方法。

存储器520可以包括随机存储器(randomaccessmemory,ram),也可以包括只读存储器(read-onlymemory)。可选地,该存储器520包括非瞬时性计算机可读介质(non-transitorycomputer-readablestoragemedium)。存储器520可用于存储指令、程序、代码、代码集或指令集。存储器520可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令、用于实现上述各个方法实施例的指令等;存储数据区可存储根据终端的使用所创建的数据等。

上述终端的结构仅是示意性的,在实际实现时,终端可以包括更多或更少的组件,比如:显示屏等,本实施例对此不作限定。

本领域技术人员可以理解,图5中示出的结构并不构成对终端500的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。

在示例性实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序由终端的处理器加载并执行以实现上述方法实施例中的各个步骤。

在示例性实施例中,还提供了一种计算机程序产品,当该计算机程序产品被执行时,其用于实现上述方法实施例中的各个步骤的功能。

应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

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

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