CN107273130B - 加速界面绘制的方法、装置和终端 - Google Patents

加速界面绘制的方法、装置和终端 Download PDF

Info

Publication number
CN107273130B
CN107273130B CN201710472260.2A CN201710472260A CN107273130B CN 107273130 B CN107273130 B CN 107273130B CN 201710472260 A CN201710472260 A CN 201710472260A CN 107273130 B CN107273130 B CN 107273130B
Authority
CN
China
Prior art keywords
touch operation
event
input event
vertical synchronization
input
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.)
Active
Application number
CN201710472260.2A
Other languages
English (en)
Other versions
CN107273130A (zh
Inventor
肖小欢
何琳
向林
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.)
Oneplus Technology Shenzhen Co Ltd
Original Assignee
Oneplus Technology Shenzhen Co Ltd
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 Oneplus Technology Shenzhen Co Ltd filed Critical Oneplus Technology Shenzhen Co Ltd
Priority to CN201710472260.2A priority Critical patent/CN107273130B/zh
Publication of CN107273130A publication Critical patent/CN107273130A/zh
Priority to PCT/CN2018/092024 priority patent/WO2018233636A1/zh
Application granted granted Critical
Publication of CN107273130B publication Critical patent/CN107273130B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本发明提供了一种加速界面绘制的方法、装置和终端,涉及智能终端技术领域,该方法包括:当接收到触摸操作触发的输入事件时,记录输入事件的类型;当输入事件的类型为按下或滑动时,在禁用垂直同步功能的条件下,监听是否出现触摸操作的第一次绘制事件,如果是,调用第一次绘制事件的绘制流程;启用垂直同步功能,继续执行触摸操作后续的界面绘制。本实施例提供的加速界面绘制的方法、装置和终端,可以加快界面绘制,提高UI的响应速度,进而提升了终端的跟手性能。

Description

加速界面绘制的方法、装置和终端
技术领域
本发明涉及智能终端技术领域,尤其是涉及一种加速界面绘制的方法、装置和终端。
背景技术
对于Android智能终端来说触摸操作的跟手性至关重要,其直接影响用户触摸操作的体验。目前为了改善触摸操作的跟手性,主要有以下两种方式:一种是采用inputboost机制,当有input(输入)事件时,通过提高CPU主频的方式改善跟手性能;另一种是采用预判机制,该机制主要是根据触摸屏固件发送的input事件进行预判,提前上报input事件给应用。
对于上述input boost机制,如果频率提高不多或者提高时间太短时,跟手性能改善的效果不明显;如果频率提高得太多或者持续时间太长,功耗又会明显增加,影响手机的续航性能;而上述预判机制的准确性无法保证,存在一定的误判概率。由此可见,目前的处理机制的跟手性能均不理想。
发明内容
有鉴于此,本发明的目的在于提供一种加速界面绘制的方法、装置和终端,以加快触摸事件触发的界面绘制,提升终端的跟手性能。
本发明采用的第一技术方案是:一种加速界面绘制的方法,应用于支持Choreographer机制的Android终端,所述方法包括:当接收到触摸操作触发的输入事件时,记录所述输入事件的类型;当所述输入事件的类型为按下或滑动时,在禁用垂直同步功能的条件下,监听是否出现所述触摸操作的第一次绘制事件,如果是,调用所述第一次绘制事件的绘制流程;启用所述垂直同步功能,继续执行所述触摸操作后续的界面绘制。
进一步,所述方法还包括:预先设置所述垂直同步功能的默认状态为禁用状态;或者,当接收到触摸操作触发的首个输入事件时,设置所述垂直同步功能的状态为禁用状态。
进一步,所述垂直同步功能为禁用状态通过设置变量USE_VSYNC为无效实现。
进一步,所述监听是否出现所述触摸操作的第一次绘制事件的步骤,包括:当所述输入事件触发调用Choreographer类的postCallback函数,且所述postCallback函数的参数类型首次为CALLBACK_TRAVERSAL时,确定出现所述触摸操作的第一次绘制事件。
进一步,所述记录所述输入事件的类型的步骤,包括:当所述触摸操作的首个输入事件对应手指中心移动的距离大于第一距离阈值时,记录所述输入事件的类型为滑动,并设置所述第一距离阈值为第二距离阈值,所述第二距离阈值大于所述第一距离阈值。
进一步,所述方法还包括:将Input线程任务的优先级设置为-8至-16之间的数值;所述Input线程任务包括InputReader和InputDispatcher线程任务。
进一步,所述方法还包括:Input内核态驱动线程通过串行方式处理数据。
进一步,所述方法还包括:应用防抖过滤功能确定所述触摸操作的手指中心;其中,所述防抖过滤功能至少包括以下之一参数设置:触摸屏的空闲时间doze_mode的时长小于20ms,且大于10ms;触摸屏的抖动判断阈值在50至255之间;非侦测区域的误触判别计算为无效状态,其中,所述非侦测区域为预先设置的区域;报点率在110Hz至120Hz之间。
本发明采用的第二技术方案是:一种加速界面绘制的装置,应用于支持Choreographer机制的Android终端,所述装置包括:类型记录模块,用于当接收到触摸操作触发的输入事件时,记录所述输入事件的类型;第一次绘制模块,用于当所述输入事件的类型为按下或滑动时,在禁用垂直同步功能的条件下,监听是否出现所述触摸操作的第一次绘制事件,如果是,调用所述第一次绘制事件的绘制流程;继续绘制模块,用于启用所述垂直同步功能,继续执行所述触摸操作后续的界面绘制。
本发明采用的第三技术方案是:一种终端,包括处理器和用于存储处理器可执行指令的存储器;处理器用于:当接收到触摸操作触发的输入事件时,记录输入事件的类型;当输入事件的类型为按下或滑动时,在禁用垂直同步功能的条件下,监听是否出现触摸操作的第一次绘制事件,如果是,调用第一次绘制事件的绘制流程;启用垂直同步功能,继续执行触摸操作后续的界面绘制。
本发明公开的实施例提供的技术方案可以包括如下有益效果:
本实施例提供的加速界面绘制的方法、装置和终端,当输入事件的类型为按下或滑动时,监听到触摸操作的第一次绘制事件时,在禁用垂直同步功能的条件下执行第一次绘制事件的绘制流程,触摸操作后续的界面绘制在启用垂直同步功能的条件下进行,即第一次绘制流程不需要等待同步信号可以直接进行绘制,减少了触摸操作的绘制等待时间,从而可以加快界面绘制,提高UI的响应速度,进而提升了终端的跟手性能。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的Android Choreographer绘制流程图;
图2为本发明提供的一种加速界面绘制的方法的第一实施方式的流程示意图;
图3为本发明提供的一种加速界面绘制的方法的第二实施方式的流程示意图;
图4为本发明提供的一种加速界面绘制的装置的实施方式的结构示意图;
图5为本发明提供的一种加速界面绘制的装置的另一种实施方式的结构示意图;
图6为本发明提供的一种加速界面绘制的装置的另一种实施方式的结构示意图;
图7为本发明提供的一种加速界面绘制的装置的另一种实施方式的结构示意图;
图8为本发明提供的一种加速界面绘制的装置的另一种实施方式的结构示意图;
图9是本发明提供的一种终端的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中提到的跟手性能,通常指终端对触摸操作的响应性能,跟手性能越好,说明终端响应用户触摸操作进行显示越及时,提供的用户体验越好,如果跟手性能较差,则用户会感觉终端的显示响应慢,引起用户不必要的多次触摸操作,导致终端执行无意义的触摸事件,进一步影响用户的正常使用。
为便于对上述跟手性能进行直观地理解,本发明实施例提供了图1所示的AndroidChoreographer绘制流程示意图,对终端的绘制过程简单介绍如下:Android***中Choreographer类用来控制同步处理输入(Input)、动画(Animation)、绘制(Draw)三个UI操作。具体地,Android中的Choreographer机制,用于与Vsync机制配合,实现统一调度界面绘图。Choreographer主要注册了CALLBACK_INPUT、CALLBACK_ANIMATION、CALLBACK_TRAVERSAL三个callback,只有CALLBACK_TRAVERSAL与绘制直接联系。
参见图1所示,当监听到有触摸操作时,发起回调函数PostCallBack,以及依次执行函数PostCallBackDelayed、PostCallBackDelayedInternal;然后判断设定的执行时间是否在当前时间之后,若否(即图中标识的“N”),发送MSG_DO_SCHEDULE_CALLBACK消息到主线程Frame Handler请求执行回调(callback),安排执行函数doScheduleCallback,再在主线程调用函数scheduleFrameLocked;若是(即图中标识的“Y”),在主线程调用函数scheduleFrameLocked。
接着判断是否使用Vsync机制,变量USE_VSYNC用于表示***是否使用Vsync机制,该变量的值可以通过读取***属性debug.choreographer.vsync获取。若使用Vsync机制(即图中标识的“Y”),则判断当前线程是否具备消息循环(即当前线程是否是UI线程);若具备消息循环,则在主线程调用scheduleVsyncLocked,请求垂直同步信号;若不具备消息循环,则发送MSG_DO_SCHEDULE_VSYNC消息请求Vsync信号,并执行函数doScheduleVsync。在主线程调用scheduleVsyncLocked,收到垂直同步信号后,发送Runnable对象到主线程,请求执行函数doFrame。最后执行函数doFrame,渲染下一帧。
若未使用Vsync机制(即图中标识的“N”),发送MSG_DO_FRAME到Frame Handler,并请求执行函数doFrame。
其中,在使用vsync机制的情况下,当函数postCallback的参数类型为CALLBACK_TRAVERSAL且vsync信号到来时,才会在函数doFrame中执行真正的绘制动作。
在滑动手机时,触摸屏(TP)固件会上报很多输入事件(input event),用户态的input dispatcher线程将处理过的事件最终上报给App。APP由于显示(layout)、可见性(visibility)等发生改变,进而注册参数类型为CALLBACK_TRAVERSAL的postCallback,当下一个vsync信号到来时,进行绘制动作。因此存在以下问题:绘制必须要等待vsync的同步(Vsync信号的时间间隔为16.6ms),影响的UI的响应速度。基于此,本发明实施例提供的一种加速界面绘制的方法、装置和终端。以下首先对本发明实施例所公开的一种加速界面绘制的方法进行详细介绍。
实施例1
图2是本发明一种加速界面绘制的方法的第一实施方式的流程示意图。应用于支持Choreographer机制的Android终端,本实施方式示出的方法流程包括如下步骤:
步骤S21,当接收到触摸操作触发的输入事件时,记录输入事件的类型。
触摸操作触发的输入事件的类型包括三种,分别是按下(DOWN)、抬起(UP)或者滑动(MOVE)。在接收到触摸屏采集的输入事件时,记录该输入事件的类型,具体地在inputnative层记录当前input event的type类型。对于输入事件的属性,是在InputReader中的dispatchTouches()函数中定义的。
步骤S22,当输入事件的类型为按下或滑动时,在禁用垂直同步功能的条件下,监听是否出现触摸操作的第一次绘制事件,如果是,调用第一次绘制事件的绘制流程。
在上述三种类型的触摸事件中,类型为按下或滑动的触摸事件才可能触发绘制。该垂直同步功能即Vsync同步机制,在禁用垂直同步功能的条件下,不需要等待vsync信号到来时再进行绘制。***监听本次触摸操作的多个输入事件是否触发第一次绘制事件,当输入事件触发调用Choreographer类的postCallback函数,且postCallback函数的参数类型首次为CALLBACK_TRAVERSAL时,确定出现触摸操作的第一次绘制事件。其中标识是否是第一次绘制事件,可以通过计数器或者设置标识位的方式进行,例如未出现绘制事件时,计数器的值为0,当满足上述条件时,计数器加1,仅在计数器的值等于1时,确定出现触摸操作的第一次绘制事件。
在出现触摸操作的第一次绘制事件时,调用第一次绘制事件的处理流程,参见图1所示的绘制流程图,在禁用垂直同步功能的情况下,按照USE_VSYNC判断结果为NO的流程执行,直接调用doFrame,不需要等待vsync信号到来时再调用doFrame。因此减少了触摸操作的第一次绘制的等待时间,从而提高UI的响应速度。
步骤S23,启用垂直同步功能,继续执行触摸操作后续的界面绘制。
在第一次绘制事件的绘制流程执行后,启用垂直同步功能,即只有首次真正触发绘制流程的输入事件是在禁用垂直同步功能的条件下立即触发绘制流程调用doFrame,该触摸操作的其他后续的输入事件在启用垂直同步功能的条件下进行绘制,目的是通过使用vsync同步信号,避免显示画面抖动或撕裂(tearing)。
本实施例提供的上述方法,当输入事件的类型为按下或滑动时,监听到触摸操作的第一次绘制事件时,在禁用垂直同步功能的条件下执行第一次绘制事件的绘制流程,触摸操作后续的界面绘制在启用垂直同步功能的条件下进行,即第一次绘制流程不需要等待同步信号可以直接进行绘制,减少了触摸操作的绘制等待时间,从而可以加快界面绘制,提高UI的响应速度。
本实施例方法应用的Android终端,支持垂直同步功能,在正常情况下该功能被设置为有效(可用)状态,考虑到减少首次绘制的等待时间,需要将该功能设置为无效(禁用)状态,具体包括以下两种方式:
(1)预先设置垂直同步功能的默认状态为禁用状态;
(2)当接收到触摸操作触发的首个输入事件时,设置垂直同步功能的状态为禁用状态。
其中,在接收触摸操作触发的输入事件前,已经预先设置垂直同步功能的默认状态为禁用状态;或者,在接收到触摸操作触发的首个输入事件时设置,具体地,垂直同步功能为禁用状态通过设置变量USE_VSYNC为无效实现。
为了进一步加快绘制进程,加速UI响应,本实施例提供的方法还对首次滑动事件的判断进行了优化,其中记录输入事件的类型的步骤S21,具体包括:
当触摸操作的首个输入事件对应手指中心移动的距离大于第一距离阈值时,记录输入事件的类型为滑动,并设置第一距离阈值为第二距离阈值,第二距离阈值大于第一距离阈值。
其中,当触摸操作的输入事件中还未判断出现滑动事件时,降低输入事件判断为滑动操作的阈值,使输入事件更快地触发真正的滑动流程。因此,在识别输入事件时,使用第一距离阈值,在已经识别到第一个绘制的滑动事件后,将该第一距离阈值设置为第二距离阈值,其中第二距离阈值大于第一距离阈值,优选地第二距离阈值是触摸屏识别滑动操作的默认值。例如上述第一距离阈值为4.8,上述第二距离阈值为8(***的默认值)。
具体说来,android架构中通过如下config_viewConfigurationTouchSlop阀值来判断是点击还是滑动,即点击的灵敏度。上述touchSlop表示的是滑动距离值,即当手触摸在屏幕上滑动时,只有滑动距离超过touchSlop值时,才认为是滑动操作并去响应。在第一个绘制的滑动事件还没有到来时,降低上述阈值,一旦识别到第一个绘制的滑动事件后,立即恢复默认值。通过在首个滑动输入事件使用了较小的判断阈值,使事件更容易被识别为滑动,从而更快地触发真正的滑动动作对应的绘制。
为了进一步加快绘制进程,加速UI响应,本实施例提供的方法还对处理Input事件的线程进行了优化,具体如下:将Input线程任务的优先级设置为-8至-16之间的数值;Input线程任务包括InputReader和InputDispatcher线程任务。
其中,Input最主要有内核态的驱动线程和用户态的InputReader与InputDispatcher两个线程任务。内核态的驱动线程负责读取TP固件数据并派发到用户态,InputReader主要读取eventhub中的raw data,而InputDispatcher处理InputReader读取的事件并做进一步处理。
在现有技术中InputReader和InputDispatcher的优先级原本为ANDROID_PRIORITY_URGENT_DISPLAY级别,即-8,将该级别调整为ANDROID_PRIORITY_URGENT_DISPLAY和ANDROID_PRIORITY_AUDIO之间,即-8和-16之间(数值越小,代表优先级越高,如-16比-8高)。通过调整线程任务的优先级,保证其运行在cpu大核,任务处于实时优先级,可以提高任务被调度执行的时间片,使之更及时的处理input event。
进一步地,Input内核态驱动线程通过串行方式处理数据,可以规避异步开销,保持实时性。
现有的TP固件的land filter功能虽然保证了准确性,但影响性能,本实施例提供的方法还对land filter功能进行了改进,动态调整filter,部分动作移到AP端进行,具体如下:
应用防抖过滤功能确定触摸操作的手指中心。其中,防抖过滤功能至少包括以下之一参数设置:触摸屏的空闲时间doze_mode的时长小于20ms,且大于10ms;触摸屏的抖动判断阈值在50至255之间;非侦测区域的误触判别计算为无效状态,其中,非侦测区域为预先设置的区域;报点率在110Hz至120Hz之间。
上述改进包括两个方面的修改:第一部分减少TP触点到TP响应的延时,优化方法是通过减少TP的空闲时间(doze_mode)来实现;第二部分减少AP处理点的时间,优化方法通过减小抖动判断阀值,取消抖动判断对非侦测区域的计算和提高报点率三者综合修改来达到延时的要求。其中对doze_mode的时长的设置综合考虑TP对用户触摸操作的响应和功耗的平衡,在doze_mode时长小于10ms时,TP的功耗过大,不利于终端的续航性能;将非侦测区域的误触判别计算为无效状态,即对非侦测区域不进行抖动判断计算,非侦测区域为TP的中心区域(相对于TP四周的边缘区域而言);将报点率提高为110Hz至120Hz之间的数值,通过提高采集触摸操作的频率,从而加快速度。
本实施例提供的上述方法,通过动态调整filter,部分动作移到AP端进行;通过调整InputReader和InputDispatcher线程任务的优先级,达到提高处理优先级,从而改善input速度;通过识别按下和滑动的第一次绘制,不再等同步信号的到来,直接进行绘制,仅对第一次需要绘制的按下或者滑动的input进行处理;另外当还未触发第一个绘制的滑动事件,降低输入事件判断为滑动操作的阈值,使事件更容易被识别为滑动,从而更快地触发真正的滑动动作对应的绘制;从而可以加快界面绘制,提高UI的响应速度。
实施例2
图3是本发明一种加速界面绘制的方法的第二实施方式的流程示意图,本实施例的以带有触摸屏的Android移动终端为例进行说明,该实施方式示出的方法流程包括如下步骤:
步骤S31,移动终端开机。
步骤S32,接收触摸操作触发的输入事件。
步骤S33,判断触摸操作的输入事件对应的手指中心移动的距离是否首次大于第一距离阈值。如果是,执行步骤S34,如果否,执行步骤S35。
通过判断输入事件对应的手指中心移动的距离是否首次大于第一距离阈值,来判断该输入事件是否是本次触摸操作对应的多个输入事件中第一个被识别为滑动操作的输入事件,仅对该第一个被识别为滑动操作的输入事件的过程中使用第一距离阈值,该第一距离阈值小于默认值(用于识别其他输入事件)
步骤S34,记录该输入事件的类型为滑动,并设置第一距离阈值为第二距离阈值。
在将上述输入事件的类型记录为滑动后,恢复判断滑动操作的阈值,上述第二距离阈值大于第一距离阈值,优选地,第二距离阈值即***原保存的阈值默认值。
步骤S35,记录该输入事件的类型。
步骤S36,当输入事件的类型为按下或滑动时,在禁用垂直同步功能的条件下,判断该输入事件是否触发该触摸操作的第一次绘制事件。如果是,执行步骤S37;如果否,执行步骤S39。
对第一次真正触发绘制流程的输入事件,在禁用垂直同步功能的条件下,直接触发绘制流程,不需要等待vsync的同步。
步骤S37,调用该第一次绘制事件的绘制流程。
步骤S38,启用垂直同步功能,并继续执行触摸操作后续的界面绘制。
在执行第一次真正触发绘制流程的输入事件的绘制流程时,将垂直同步功能重新启用,即在该第一次真正触发绘制流程的输入事件之后的该触摸操作的其他输入事件均在垂直同步功能启动的条件下进行绘制,即经过vsync的同步,可以避免画面抖动的发生。
步骤S39,判断该输入事件是否触发绘制事件。如果是,执行步骤S40;如果否,结束流程。
在经过是否触发该触摸操作的第一次绘制事件的判断,得到判断结果为否的情况下,还需要判断该输入事件是否触发绘制事件:如果触发绘制事件,调用对应的绘制流程;如果不触发绘制事件,则结束流程。在此需要说明的是,在触发绘制事件的情况下(且该输入事件不是第一次触发绘制流程的输入事件),垂直同步功能已经被更改为启动状态(步骤S38)。
步骤S40,调用该输入事件对应的绘制流程。
本实施例提供的上述方法,当输入事件的类型为按下或滑动时,判断该输入事件是否触发第一次真正绘制流程,如果是则不再等同步信号的到来,直接进行该输入事件的绘制,并且仅对第一次类型为滑动的输入事件进行阈值优化,降低输入事件判断为滑动操作的阈值,使事件更容易被识别为滑动,从而更快地触发真正的滑动动作对应的绘制;从而可以加快界面绘制,提高UI的响应速度。
实施例3
本发明实施例3提供了一种加速界面绘制的装置,应用于支持Choreographer机制的Android终端,参见图4所示的结构示意图,包括类型记录模块410、第一次绘制模块420和继续绘制模块430,其中,各模块的功能如下:
类型记录模块410,用于当接收到触摸操作触发的输入事件时,记录输入事件的类型;
第一次绘制模块420,用于当输入事件的类型为按下或滑动时,在禁用垂直同步功能的条件下,监听是否出现触摸操作的第一次绘制事件,如果是,调用第一次绘制事件的绘制流程;
继续绘制模块430,用于启用垂直同步功能,继续执行触摸操作后续的界面绘制。
本实施例提供的上述装置,当输入事件的类型为按下或滑动时,监听到触摸操作的第一次绘制事件时,在禁用垂直同步功能的条件下执行第一次绘制事件的绘制流程,触摸操作后续的界面绘制在启用垂直同步功能的条件下进行,即第一次绘制流程不需要等待同步信号可以直接进行绘制,减少了触摸操作的绘制等待时间,从而可以加快界面绘制,提高UI的响应速度。
参见图5所示的加速界面绘制的装置的结构示意图,上述装置还包括:禁用模块510,用于预先设置垂直同步功能的默认状态为禁用状态;或者,当接收到触摸操作触发的首个输入事件时,设置垂直同步功能的状态为禁用状态。其中,垂直同步功能为禁用状态通过设置变量USE_VSYNC为无效实现。
具体地,上述第一次绘制模块420还用于:当输入事件触发调用Choreographer类的postCallback函数,且postCallback函数的参数类型首次为CALLBACK_TRAVERSAL时,确定出现触摸操作的第一次绘制事件。
上述类型记录模块410还用于:当触摸操作的首个输入事件对应手指中心移动的距离大于第一距离阈值时,记录输入事件的类型为滑动,并设置第一距离阈值为第二距离阈值,第二距离阈值大于第一距离阈值。
参见图6所示的加速界面绘制的装置的结构示意图,上述装置还包括:优先级设置模块610,用于将Input线程任务的优先级设置为-8至-16之间的数值;Input线程任务包括InputReader和InputDispatcher线程任务。
进一步,参见图7所示的加速界面绘制的装置的结构示意图,上述装置还包括:串行处理模块710,用于Input内核态驱动线程通过串行方式处理数据。
进一步,参见图8所示的加速界面绘制的装置的结构示意图,上述装置还包括:防抖模块810,用于应用防抖过滤功能确定触摸操作的手指中心;其中,防抖过滤功能至少包括以下之一参数设置:触摸屏的空闲时间doze_mode的时长小于20ms,且大于10ms;触摸屏的抖动判断阈值在50至255之间;非侦测区域的误触判别计算为无效状态,其中,非侦测区域为预先设置的区域;报点率在110Hz至120Hz之间。
本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
实施例4
本发明实施例4提供了一种终端,包括处理器和用于存储处理器可执行指令的存储器;上述处理器用于:当接收到触摸操作触发的输入事件时,记录输入事件的类型;当输入事件的类型为按下或滑动时,在禁用垂直同步功能的条件下,监听是否出现触摸操作的第一次绘制事件,如果是,调用第一次绘制事件的绘制流程;启用垂直同步功能,继续执行触摸操作后续的界面绘制。
图9示出了一种可应用于本发明实施例中的终端100的结构框图。如图9所示,移动终端100包括加速界面绘制的装置101、存储器102、存储控制器104,一个或多个(图中仅示出一个)处理器106、外设接口108、射频模块110、音频模块112、触控屏幕114等。这些组件通过一条或多条通讯总线/信号线116相互通讯。
存储器102可用于存储软件程序以及模块,如本发明实施例中的加速界面绘制的方法、装置对应的程序指令/模块,处理器106通过运行存储在存储器102内的软件程序以及模块,从而执行各种功能应用以及数据处理,如本发明实施例提供的加速界面绘制的方法。
存储器102可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。处理器106以及其他可能的组件对存储器102的访问可在存储控制器104的控制下进行。
外设接口108将各种输入/输出装置耦合至处理器106以及存储器102。在一些实施例中,外设接口108,处理器106以及存储控制器104可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
射频模块110用于接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通讯网络或者其他设备进行通讯。
音频模块112向用户提供音频接口,其可包括一个或多个麦克风、一个或者多个扬声器以及音频电路。
触控屏幕114在移动终端100与用户之间同时提供一个输出及输入界面。在本实施例中,上述触控屏幕114支持单点和多点触控操作,例如,该触控屏幕114可为支持单点和多点触控操作的电容式触摸屏或电阻式触摸屏等。支持单点和多点触控操作是触控屏幕114能感应到来自该触控屏幕114上一个或多个位置处同时产生的触控操作,并将该感应到的多点触控操作交由处理器106进行处理。
可以理解,图9所示的结构仅为示意,移动终端100还可包括比图9中所示更多或者更少的组件,或者具有与图9所示不同的配置。图9中所示的各组件可以采用硬件、软件或其组合实现。
本发明实施例还提供了一种计算机存储介质,用于储存为上述加速界面绘制的装置所用的计算机软件指令,其包含用于执行上述方面为加速界面绘制的装置所设计的程序。上述程序包括的指令可用于执行前面方法实施例中的方法,具体实现可参见方法实施例,在此不再赘述。
附图中的流程图和框图显示了根据本发明的多个实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,该模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法、***和装置,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明的保护范围应以所附权利要求为准。

Claims (10)

1.一种加速界面绘制的方法,其特征在于,应用于支持Choreographer机制的Android终端,所述方法包括:
当接收到触摸操作触发的输入事件时,记录所述输入事件的类型;
当所述输入事件的类型为按下或滑动时,在禁用垂直同步功能的条件下,监听是否出现所述触摸操作的第一次绘制事件;
如果是,调用所述第一次绘制事件的绘制流程,启用所述垂直同步功能,继续执行所述触摸操作后续的界面绘制。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
预先设置所述垂直同步功能的默认状态为禁用状态;或者,
当接收到触摸操作触发的首个输入事件时,设置所述垂直同步功能的状态为禁用状态。
3.根据权利要求2所述的方法,其特征在于,所述垂直同步功能为禁用状态通过设置变量USE_VSYNC为无效实现。
4.根据权利要求1所述的方法,其特征在于,所述监听是否出现所述触摸操作的第一次绘制事件的步骤,包括:
当所述输入事件触发调用Choreographer类的postCallback函数,且所述postCallback函数的参数类型首次为CALLBACK_TRAVERSAL时,确定出现所述触摸操作的第一次绘制事件。
5.根据权利要求1所述的方法,其特征在于,所述记录所述输入事件的类型的步骤,包括:
当所述触摸操作的首个输入事件对应手指中心移动的距离大于第一距离阈值时,记录所述输入事件的类型为滑动,并设置所述第一距离阈值为第二距离阈值,所述第二距离阈值大于所述第一距离阈值。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将Input线程任务的优先级设置为-8至-16之间的数值;所述Input线程任务包括InputReader和InputDispatcher线程任务。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
Input内核态驱动线程通过串行方式处理数据。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
应用防抖过滤功能确定所述触摸操作的手指中心;其中,所述防抖过滤功能至少包括以下之一参数设置:
触摸屏的空闲时间doze_mode的时长小于20ms,且大于10ms;
触摸屏的抖动判断阈值在50至255之间;
非侦测区域的误触判别计算为无效状态,其中,所述非侦测区域为预先设置的区域;
报点率在110Hz至120Hz之间。
9.一种加速界面绘制的装置,其特征在于,应用于支持Choreographer机制的Android终端,所述装置包括:
类型记录模块,用于当接收到触摸操作触发的输入事件时,记录所述输入事件的类型;
第一次绘制模块,用于当所述输入事件的类型为按下或滑动时,在禁用垂直同步功能的条件下,监听是否出现所述触摸操作的第一次绘制事件;
继续绘制模块,用于如果出现所述触摸操作的第一次绘制事件,调用所述第一次绘制事件的绘制流程,启用所述垂直同步功能,继续执行所述触摸操作后续的界面绘制。
10.一种终端,其特征在于,所述终端为Android终端,包括处理器和用于存储所述处理器可执行指令的存储器;所述处理器用于:当接收到触摸操作触发的输入事件时,记录输入事件的类型;当输入事件的类型为按下或滑动时,在禁用垂直同步功能的条件下,监听是否出现触摸操作的第一次绘制事件,如果是,调用第一次绘制事件的绘制流程;启用垂直同步功能,继续执行触摸操作后续的界面绘制。
CN201710472260.2A 2017-06-20 2017-06-20 加速界面绘制的方法、装置和终端 Active CN107273130B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201710472260.2A CN107273130B (zh) 2017-06-20 2017-06-20 加速界面绘制的方法、装置和终端
PCT/CN2018/092024 WO2018233636A1 (zh) 2017-06-20 2018-06-20 加速界面绘制的方法、装置和终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710472260.2A CN107273130B (zh) 2017-06-20 2017-06-20 加速界面绘制的方法、装置和终端

Publications (2)

Publication Number Publication Date
CN107273130A CN107273130A (zh) 2017-10-20
CN107273130B true CN107273130B (zh) 2020-08-04

Family

ID=60069330

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710472260.2A Active CN107273130B (zh) 2017-06-20 2017-06-20 加速界面绘制的方法、装置和终端

Country Status (2)

Country Link
CN (1) CN107273130B (zh)
WO (1) WO2018233636A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107273130B (zh) * 2017-06-20 2020-08-04 深圳市万普拉斯科技有限公司 加速界面绘制的方法、装置和终端
CN108829475B (zh) * 2018-05-29 2021-08-17 北京小米移动软件有限公司 Ui绘制方法、装置及存储介质
CN109558059B (zh) * 2018-11-12 2021-10-22 大陆汽车车身电子***(芜湖)有限公司 手写轨迹绘制方法及装置
CN110018874B (zh) * 2019-04-09 2021-07-13 Oppo广东移动通信有限公司 垂直同步方法、装置、终端及存储介质
CN110008027B (zh) * 2019-04-09 2021-08-20 Oppo广东移动通信有限公司 进程的运行方法、装置、终端及存储介质
CN110007803A (zh) * 2019-04-15 2019-07-12 深圳市万普拉斯科技有限公司 触摸屏报点方法、装置、触摸屏和电子设备
CN111460350B (zh) * 2020-04-07 2023-06-09 上海熙菱信息技术有限公司 一种防抖与节流封装方法及***
CN113535340B (zh) * 2020-04-13 2023-03-31 荣耀终端有限公司 一种任务调度方法、装置及电子设备
CN114327697B (zh) * 2020-09-30 2024-06-18 华为技术有限公司 一种事件处理方法及设备
CN112799805A (zh) * 2021-01-21 2021-05-14 惠州Tcl移动通信有限公司 基于终端设备的调度方法、装置、存储介质及终端设备
CN113986107A (zh) * 2021-10-22 2022-01-28 北京鲸鲮信息***技术有限公司 基于图形显示***的触控处理方法及装置、电子设备、存储介质
WO2023216146A1 (zh) * 2022-05-11 2023-11-16 北京小米移动软件有限公司 显示图像的更新方法、装置及存储介质
CN116860420B (zh) * 2023-09-05 2024-03-01 荣耀终端有限公司 事件处理方法、可读存储介质和电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105913371A (zh) * 2015-11-16 2016-08-31 乐视致新电子科技(天津)有限公司 一种针对虚拟现实应用延迟的***优化方法和装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2573752A4 (en) * 2010-05-21 2013-11-13 Sharp Kk DISPLAY DEVICE AND CONTROL METHOD THEREFOR, AND DISPLAY SYSTEM
WO2012141112A1 (ja) * 2011-04-15 2012-10-18 シャープ株式会社 表示装置、表示装置の駆動方法及び電子機器
EP2620857A1 (en) * 2012-01-27 2013-07-31 Research In Motion Limited Touch-sensitive display and method of controlling a touch-sensitive display
CN103389848B (zh) * 2013-08-08 2016-07-06 华映视讯(吴江)有限公司 驱动触控显示器的方法及提升信噪比的触控显示器
US9632572B2 (en) * 2013-10-03 2017-04-25 Leap Motion, Inc. Enhanced field of view to augment three-dimensional (3D) sensory space for free-space gesture interpretation
US9354744B2 (en) * 2014-06-09 2016-05-31 Sony Corporation Adaptive touch panel synchronization
KR102360411B1 (ko) * 2015-10-20 2022-02-10 엘지디스플레이 주식회사 터치센서 내장형 표시장치 및 그의 구동방법
CN107273130B (zh) * 2017-06-20 2020-08-04 深圳市万普拉斯科技有限公司 加速界面绘制的方法、装置和终端

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105913371A (zh) * 2015-11-16 2016-08-31 乐视致新电子科技(天津)有限公司 一种针对虚拟现实应用延迟的***优化方法和装置

Also Published As

Publication number Publication date
WO2018233636A1 (zh) 2018-12-27
CN107273130A (zh) 2017-10-20

Similar Documents

Publication Publication Date Title
CN107273130B (zh) 加速界面绘制的方法、装置和终端
CN108512695B (zh) 监控应用卡顿的方法及装置
CN109062479B (zh) 分屏应用切换方法、装置、存储介质和电子设备
US20190258514A1 (en) I/O Request Scheduling Method and Apparatus
EP3584765B1 (en) Method and apparatus for controlling frame rate of electronic device, storage medium, and electronic device
CN108062190B (zh) 一种应用运行状态控制方法及移动终端
CN108762831B (zh) 应用程序预加载方法、装置、存储介质及终端
CN108132735B (zh) 终端与应用控制方法
WO2019024642A1 (zh) 进程控制方法、装置、存储介质以及电子设备
US11256408B2 (en) Touch method and terminal having dynamically adjustable time threshold for touch gesture recognition
CN107436700B (zh) 数据处理方法及装置
CN107545067B (zh) 日志信息上报方法、装置及存储介质、adsp和终端
CN111767124B (zh) 请求响应方法、装置、存储介质和电子设备
CN108681498B (zh) 一种cpu占用率的监测方法、装置以及移动终端
CN111782332A (zh) 应用界面切换方法、装置、终端及存储介质
CN106502461B (zh) 还原静电复位前触摸屏状态的方法、装置及移动终端
WO2019020107A1 (en) METHOD FOR RECOGNIZING SCREEN EXTINGUISHING GESTURE, AND ASSOCIATED STORAGE MEDIUM AND TERMINAL
CN107609120B (zh) 日志信息上报方法、装置及存储介质、adsp和终端
US11507244B2 (en) Window adjustment method, window adjustment device and mobile terminal
CN110377341B (zh) 一种监听无响应异常的方法、装置、介质和电子设备
CN116089096B (zh) 负载资源调度方法及电子设备
CN105353942A (zh) 一种信息输出方法及终端
CN109032732B (zh) 通知显示方法、装置、存储介质及电子设备
WO2019019818A1 (zh) 加快黑屏手势处理的方法、装置、存储介质及移动终端
CN105138112A (zh) 一种显示控制方法及装置

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
GR01 Patent grant
GR01 Patent grant