CN109491655B - 一种输入事件处理方法及装置 - Google Patents

一种输入事件处理方法及装置 Download PDF

Info

Publication number
CN109491655B
CN109491655B CN201811168076.XA CN201811168076A CN109491655B CN 109491655 B CN109491655 B CN 109491655B CN 201811168076 A CN201811168076 A CN 201811168076A CN 109491655 B CN109491655 B CN 109491655B
Authority
CN
China
Prior art keywords
input event
thread
processing
processing result
development
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
CN201811168076.XA
Other languages
English (en)
Other versions
CN109491655A (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.)
Beijing Xiaomi Mobile Software Co Ltd
Original Assignee
Beijing Xiaomi Mobile Software 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 Beijing Xiaomi Mobile Software Co Ltd filed Critical Beijing Xiaomi Mobile Software Co Ltd
Priority to CN201811168076.XA priority Critical patent/CN109491655B/zh
Publication of CN109491655A publication Critical patent/CN109491655A/zh
Application granted granted Critical
Publication of CN109491655B publication Critical patent/CN109491655B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (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)
  • Telephone Function (AREA)

Abstract

本公开是关于一种输入事件处理方法及装置。所述方法包括:应用的主线程接收输入事件的数据;将所述数据发送至所述应用的开发线程的消息处理队列中;开启等待模式,直至接收所述开发线程对所述输入事件的处理结果;对所述处理结果进行渲染,生成响应于所述输入事件的用户界面。利用本公开各个实施例通过的方式,可以使得所述应用主线程在处理所述输入事件的处理结果进行渲染的过程中,减少其他事件处理的干扰,降低产生逻辑错误等问题的概率,提高渲染过程的可靠性。

Description

一种输入事件处理方法及装置
技术领域
本公开涉及应用开发技术领域,尤其涉及一种输入事件处理方法及装置。
背景技术
应用中的输入事件,是不可缺少的处理对象。输入事件的处理步骤主要可以包括事件接收、事件处理、页面渲染等。快应用是目前市场上基于硬件平台的新型应用生态,在使用过程中,用户无需下载安装原生应用,即可以对各种快应用即点即用,并可享受与原生应用相同的性能体验。快应用框架深度集成于各厂商手机的操作系统中,可以在操作系统层面实现用户需求与应用服务间的连接,提升用户的使用体验和应用服务的转化效率,同时支持生成桌面图标等留存能力。与在其他任何应用中一样,对于快应用来说,快应用中的输入事件是不可缺少的处理对象。
发明内容
为克服相关技术中存在的问题,本公开提供一种输入事件处理方法及装置。
根据本公开实施例的第一方面,提供一种输入事件处理方法,包括:
应用的主线程接收输入事件的数据;
将所述数据发送至所述应用的开发线程的消息处理队列中;
开启等待模式,直至接收所述开发线程对所述输入事件的处理结果;
对所述处理结果进行渲染,生成响应于所述输入事件的用户界面。
根据本公开实施例的第二方面,提供一种输入事件处理装置,包括:
数据接收模块,用于应用的主线程接收输入事件的数据;
数据发送模块,用于将所述数据发送至所述应用的开发线程的消息处理队列中;
结果接收模块,用于开启等待模式,直至接收所述开发线程对所述输入事件的处理结果;
界面渲染模块,用于对所述处理结果进行渲染,生成响应于所述输入事件的用户界面。
根据本公开实施例的第三方面,提供一种输入事件处理装置,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
应用的主线程接收输入事件的数据;
将所述数据发送至所述应用的开发线程的消息处理队列中;
开启等待模式,直至接收所述开发线程对所述输入事件的处理结果;
对所述处理结果进行渲染,生成响应于所述输入事件的用户界面。
根据本公开实施例的第四方面,提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由处理器执行时,使得处理器能够执行所述输入事件处理方法。
本公开的实施例提供的技术方案可以包括以下有益效果:本公开各个实施例提供的输入事件处理方法及装置,可以基于应用主线程和应用开发线程对输入事件的处理过程,在应用开发线程对输入事件进行处理的过程中,设置所述应用主线程开启等待模式,在所述等待模式中,所述应用主线程可以停止对事件的处理。这样,所述应用主线程在对所述输入事件的处理结果进行渲染的过程中,可以减少其他事件的干扰,降低产生逻辑错误等问题的概率,提高渲染过程的可靠性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种输入事件处理方法的流程图。
图2是根据一示例性实施例示出的一种场景示意图。
图3是根据一示例性实施例示出的一种输入事件处理装置的框图。
图4是根据一示例性实施例示出的一种装置的框图。
图5是根据一示例性实施例示出的一种装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在一实施例中,在基于安卓操作系统的快应用开发平台中,处理输入事件的主体一般是基于安卓操作系统的应用主线程和基于快应用开发语言的JS线程。其中,JS线程对应于目前大部分快应用的开发语言JavaScript语言,简称为JS语言。JS语言是面向对象的直译语言,因此,可以支持即时运行快应用。通过应用主线程和JS线程处理输入事件的过程中,通常的处理流程是:应用主线程接收输入事件,并将所述输入事件的数据发送至JS线程;JS线程处理所述输入事件的数据,并生成处理结果;应用主线程获取所述处理结果,并对所述处理结果进行渲染。但是,相关技术中的输入事件处理方式可能会出现在主线程对处理结果渲染的过程中发生渲染不及时、甚至掉帧的逻辑问题。
由上述可知,上述实施例中的输入事件处理方式可能会出现在主线程对处理结果渲染的过程中发生渲染不及时、甚至掉帧的逻辑问题。基于此,申请人通过分析发现,出现以上逻辑问题的一方面原因在于应用主线程在输入事件的处理结果进行渲染的过程中,不仅需要处理输入事件的渲染,还需要对其他事件进行处理。而输入事件的处理结果往往包括多个显示元素,那么,应用主线程在对以上多个显示元素进行处理时,往往需要逐个处理。因此,在此过程中,主线程多事件处理的方式可能影响主线程对多个显示元素的处理,进而导致渲染不及时,甚至对某些显示元素遗漏处理的问题。基于类似于上文所述的实际技术需求,本公开另一实施例提供的输入事件处理方法可以基于应用主线程和应用开发线程对输入事件的处理过程,在应用开发线程对输入事件进行处理的过程中,设置所述应用主线程开启等待模式,即在等待模式中,应用主线程可以不进行任何操作。这样,所述应用主线程在处理所述输入事件的处理结果进行渲染的过程中,减少其他事件处理的干扰,降低产生逻辑错误等问题的概率,提高渲染过程的可靠性。
下面结合附图对本公开所述的输入事件处理方法进行详细的说明。图1是本公开提供的输入事件处理方法的一种实施例的方法流程图。虽然本公开提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑性上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本公开实施例提供的执行顺序。
具体的本公开提供的输入事件处理方法的一种实施例如图1所示,可以包括:
步骤101中:应用的主线程接收输入事件的数据;
步骤103中:将所述数据发送至所述应用的开发线程的消息处理队列中;
步骤105中:开启等待模式,直至接收所述开发线程对所述输入事件的处理结果;
步骤107中:对所述处理结果进行渲染,生成响应于所述输入事件的用户界面。
本公开提供的输入事件处理方法可以应用于任何操作系统设置有应用的客户端中,其中,所述应用包括快应用,也包括传统应用,所述传统应用包括需要在操作系统中安装数据包后才可以运行的应用。所述客户端可以包括能够接收输入事件并能够对所述输入事件进行处理的终端设备。具体的,例如,所述电子设备可以为移动智能电话、计算机(包括笔记本电脑,台式电脑)、平板电子设备、个人数字助理(PDA)或者智能可穿戴设备等。
本实施例中,所述应用至少可以包括快主线程和开发线程。其中,所述主线程可以在应用被运行的时候被创建,用于运行操作系统提供的组件,以控制用户界面(UserInterface,UI)的显示、更新和控件交互。例如,在安卓操作系统中,所述主线程可以包括应用中的UI线程。所述开发线程可以用于运行应用本身的开发代码。在安卓操作系统中,所述开发线程可以包括JS线程,JS线程可以随着应用的启动而启动。所述开发线程具有与之对应的消息处理队列,所述消息处理队列可以依次排列有需要所述开发线程处理的任务,所述开发线程可以从所述消息队列的头部开始依次处理该队列中的任务。
需要说明的是,所述主线程不限于安卓操作系统中的UI线程,还可以是基于任何其他操作系统的主线程,所述操作系统例如可以包括iOS系统、Windows系统等等。所述开发线程也不限于安卓操作系统中JS线程,可以为任何操作系统中设置的用于运行应用的开发代码的子线程。另外,任何基于应用的客户端中均可以利用本公开各个实施例通过的输入事件处理方式,本公开对此不做限制。
在本公开的一个实施例中,可以由所述主线程接收输入事件的数据。其中,所述输入事件可以包括下述中的至少一种:点击、滑动、按压、文字输入、声音输入等等。在应用中,可以设置界面中的元素与指定的输入事件进行关联,所述元素可以包括控件、窗口、界面区域等等。在发生所述指定的输入事件时,可以确定该输入事件触发所述元素,所述主线程接收相应的输入事件。例如,在应用的界面中,可以设置矩形控件与输入事件点击相关联,或者,设置在界面中的任意位置与输入事件滑动相关联等等。本实施例中,所述输入事件的数据可以包括发生所述输入事件的位置和/或输入事件的操作类型。其中,所述位置可以包括所述输入事件在用户界面中的坐标位置,例如,可以在用户界面中建立直角坐标系或者像素坐标系,基于所述直角坐标系或者所述像素坐标系,所述主线程可以调用客户端的触摸屏检测模块获取到输入事件所发生的位置。所述输入事件的类型可以包括下述中的至少一种:点击、滑动、按压、文字、声音等等。
本实施例中,所述主线程在接收输入事件的数据之后,可以将所述数据发送至所述开发线程的消息处理队列中。当然,在本公开的一个实施例中,所述输入事件可以与用户界面中的多个元素相关联,在此情况下,所述主线程可以分别获取所述多个元素的信息,并将所述多个元素的信息以及所述输入事件的数据发送至所述开发线程的所述消息处理队列中。这样,通过一次性地将所有相关联的元素信息发送至所述开发线程中进行处理,可以提升整个过程的处理效率。
在本公开的一个实施例中,可以将所述数据发送至开发线程的消息处理队列的头部。具体地,所述主线程可以确定开发线程的消息处理队列的队列头部,再将所述输入事件的所述数据发送至所述队列头部。由上述可知,所述开发线程在处理任务的过程中,从所述消息处理队列的队列头部开始处理,因此,将所述输入事件的数据放置于所述消息处理队列的队列头部,可以使得所述开发线程优先处理所述输入事件,因此,可以快速地获取到所述开发线程的处理结果。
由上述可知,所述主线程将输入事件的输入位置以及输入类型等数据发送至所述开发线程中。并且,所述主线程可以按照预设采样间隔发送所述输入事件的数据,例如,所述采样间隔为10ms、50ms等。但是,用户在用户界面上完成一次完整的操作往往需要几百毫秒以上的时间,例如在屏幕上滑动一次,平均需要500ms的时间,因此,识别用户的一次操作需要多个输入事件的数据才可以确定。本公开的一个实施例中,所述开发线程在处理所述输入事件的数据时,可以通过将该输入事件之前的多个历史输入事件进行联合处理,最终确定用户的操作行为。还可以基于所述操作行为,生成对所述输入事件的处理结果。
在本公开的一个实施例中,如图2所示,所述主线程在将所述输入事件的数据发送至所述开发线程后,可以开启等待模式,直至接收所述开发线程对所述输入事件的处理结果。在所述等待模式中,所述主线程可以不进行任何操作,即所述主线程可以不进行任何的事件处理。这样,可以避免所述主线程在接收所述输入事件的处理结果之前,因为处理其他事件,导致处理的其他事件对之后的渲染步骤产生干扰,渲染不成功或者渲染出有问题的用户界面。另外,还可以减少结束所述等待模式之后,处理除所述输入事件的处理结果之外的其他事件造成的干扰。
在本公开的一个实施例中,进一步地,所述主线程还可以在所述结束所述等待模式的时刻,开始对所述处理结果进行渲染。通过设置所述主线程在结束所述等待模式之后,首先处理所述输入事件的处理结果,可以避免除所述输入事件之外的任何其他事件的干扰,进一步提高输入事件的渲染过程的稳定性。
在本公开的一个实施例中,所述处理结果中可以包括至少一个显示元素,所述显示元素可以包括页面布局中所需的元素,如页面中的窗口、文本框、控件、图片等等。所述显示元素中还可以指定各个元素对应的属性,如颜色、字体、透明度、布局的位置、大小、形状等等。基于此,所述主线程在接收到所述处理结果之后,可以对所述处理结果进行渲染,生成响应于所述输入事件的用户界面。在一个实施例中,所述主线程可以按照预设页面布局规则分别确定各个显示元素在用户届满中的位置。然后,可以分别在所述显示元素于所述用户界面上对应的所述位置上绘制所述至少一个显示元素,生成响应于所述输入事件的用户界面。在一个示例中,所述开发线程在根据用户输入事件的数据确定用户的操作为向右滑动,根据预先定义的规则,可以确定向右滑动为翻页的操作。因此,所述开发线程可以获取到当前页面的下个页面的多个显示元素,并将所述多个显示元素发送至所述主线程中,由所述主线程对所述多个显示元素进行渲染,在客户端的显示器上显示当前页面的下个页面。
本公开各个实施例提供的输入事件处理方法,可以基于应用主线程和应用开发线程对输入事件的处理过程,在应用开发线程对输入事件进行处理的过程中,设置所述应用主线程开启等待模式,在所述等待模式中,所述应用主线程可以停止对事件的处理。这样,所述应用主线程在对所述输入事件的处理结果进行渲染的过程中,可以减少其他事件的干扰,降低产生逻辑错误等问题的概率,提高渲染过程的可靠性。
本公开另一方面还提供一种输入事件处理装置,图3是根据一示例性实施例示出的输入事件处理装置300的框图。参照图3,该装置包括应用数据接收模块301、数据发送模块303、结果接收模块305、界面渲染模块307,其中,
数据接收模块301,用于应用的主线程接收输入事件的数据;
数据发送模块303,用于将所述数据发送至所述应用的开发线程的消息处理队列中;
结果接收模块305,用于开启等待模式,直至接收所述开发线程对所述输入事件的处理结果;
界面渲染模块307,用于对所述处理结果进行渲染,生成响应于所述输入事件的用户界面。
可选的,在本公开的一个实施例中,所述开启等待模式,直至接收所述开发线程对所述输入事件的处理结果包括:
开启等待模式,在所述等待模式中,所述主线程不进行操作;
在接收到所述开发线程对输入事件的处理结果的时刻,结束所述等待模式。
可选的,在本公开的一个实施例中,所述对所述处理结果进行渲染,生成响应于所述输入事件的用户界面包括:
在所述结束所述等待模式的时刻,开始对所述处理结果进行渲染,生成响应于所述输入事件的用户界面。
可选的,在本公开的一个实施例中,所述将所述数据发送至所述应用的开发线程的消息处理队列中包括:
确定所述应用的开发线程的消息处理队列的队列头部;
将所述输入事件的所述数据发送至所述队列头部。
可选的,在本公开的一个实施例中,所述将所述数据发送至所述应用的开发线程的消息处理队列中包括:
确定所述输入事件所触发的至少一个元素;
获取所述至少一个元素的信息;
将所述至少一个元素的所述信息以及所述输入事件的所述数据发送至所述应用的开发线程的消息处理队列中。
可选的,在本公开的一个实施例中,所述处理结果中包括至少一个显示元素,对应地,所述对所述处理结果进行渲染,生成响应于所述输入事件的用户界面包括:
按照预设页面布局规则分别确定所述至少一个显示元素在用户界面中的位置;
分别在所述显示元素于所述用户界面上对应的所述位置上绘制所述至少一个显示元素,生成响应于所述输入事件的用户界面。
图4是根据一示例性实施例示出的一种用于资源分配指示的装置700的框图。例如,装置700可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图4,装置700可以包括以下一个或多个组件:处理组件702,存储器704,电源组件706,多媒体组件708,音频组件710,输入/输出(I/O)的接口712,传感器组件714,以及通信组件716。
处理组件702通常控制装置700的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件702可以包括一个或多个处理器720来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件702可以包括一个或多个模块,便于处理组件702和其他组件之间的交互。例如,处理组件702可以包括多媒体模块,以方便多媒体组件708和处理组件702之间的交互。
存储器704被配置为存储各种类型的数据以支持在装置700的操作。这些数据的示例包括用于在装置700上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器704可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件706为装置700的各种组件提供电力。电源组件706可以包括电源管理系统,一个或多个电源,及其他与为装置700生成、管理和分配电力相关联的组件。
多媒体组件708包括在所述装置700和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触敏显示器,以传输来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件708包括一个前置摄像头和/或后置摄像头。当装置700处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以传输外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件710被配置为输出和/或输入音频信号。例如,音频组件710包括一个麦克风(MIC),当装置700处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为传输外部音频信号。所传输的音频信号可以被进一步存储在存储器704或经由通信组件716发送。在一些实施例中,音频组件710还包括一个扬声器,用于输出音频信号。
I/O接口712为处理组件702和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件714包括一个或多个传感器,用于为装置700提供各个方面的状态评估。例如,传感器组件714可以检测到装置700的打开/关闭状态,组件的相对定位,例如所述组件为装置700的显示器和小键盘,传感器组件714还可以检测装置700或装置700一个组件的位置改变,用户与装置700接触的存在或不存在,装置700方位或加速/减速和装置700的温度变化。传感器组件714可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件714还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件714还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件716被配置为便于装置700和其他设备之间有线或无线方式的通信。装置700可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件716经由广播信道传输来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件716还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置700可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器704,上述指令可由装置700的处理器720执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
图5是根据一示例性实施例示出的一种用于信息处理的装置800的框图。例如,装置800可以被提供为一服务器。参照图5,装置800包括处理组件822,其进一步包括一个或多个处理器,以及由存储器832所代表的存储器资源,用于存储可由处理组件822的执行的指令,例如应用程序。存储器832中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件822被配置为执行指令,以执行上述任一实施例所述的方法。
装置800还可以包括一个电源组件826被配置为执行装置800的电源管理,一个有线或无线网络接口850被配置为将装置800连接到网络,和一个输入输出(I/O)接口858。装置800可以操作基于存储在存储器832的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器832,上述指令可由装置800的处理组件822执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (12)

1.一种输入事件处理方法,其特征在于,包括:
应用的主线程接收输入事件的数据;
将所述数据发送至所述应用的开发线程的消息处理队列中;
开启等待模式,直至接收所述开发线程对所述输入事件的处理结果;
对所述处理结果进行渲染,生成响应于所述输入事件的用户界面;
其中,所述开启等待模式,直至接收所述开发线程对所述输入事件的处理结果包括:
开启等待模式,在所述等待模式中,所述主线程不进行操作;
在接收到所述开发线程对输入事件的处理结果后,结束所述等待模式。
2.根据权利要求1所述的输入事件处理方法,其特征在于,所述对所述处理结果进行渲染,生成响应于所述输入事件的用户界面包括:
在所述等待模式结束后,对所述处理结果进行渲染,生成响应于所述输入事件的用户界面。
3.根据权利要求1或2中任意一项所述的输入事件处理方法,其特征在于,所述将所述数据发送至所述应用的开发线程的消息处理队列中包括:
确定所述应用的开发线程的消息处理队列的队列头部;
将所述输入事件的所述数据发送至所述队列头部。
4.根据权利要求1所述的输入事件处理方法,其特征在于,所述将所述数据发送至所述应用的开发线程的消息处理队列中包括:
确定所述输入事件所触发的至少一个元素;
获取所述至少一个元素的信息;
将所述至少一个元素的所述信息以及所述输入事件的所述数据发送至所述应用的开发线程的消息处理队列中。
5.根据权利要求1所述的输入事件处理方法,其特征在于,所述处理结果中包括至少一个显示元素,对应地,所述对所述处理结果进行渲染,生成响应于所述输入事件的用户界面包括:
按照预设页面布局规则分别确定所述至少一个显示元素在用户界面中的位置;
分别在所述显示元素于所述用户界面上对应的所述位置上绘制所述至少一个显示元素,生成响应于所述输入事件的用户界面。
6.一种输入事件处理装置,其特征在于,包括:
数据接收模块,用于应用的主线程接收输入事件的数据;
数据发送模块,用于将所述数据发送至所述应用的开发线程的消息处理队列中;
结果接收模块,用于开启等待模式,直至接收所述开发线程对所述输入事件的处理结果;
界面渲染模块,用于对所述处理结果进行渲染,生成响应于所述输入事件的用户界面;
其中,所述开启等待模式,直至接收所述开发线程对所述输入事件的处理结果包括:
开启等待模式,在所述等待模式中,所述主线程不进行操作;
接收到所述开发线程对输入事件的处理结果后,结束所述等待模式。
7.根据权利要求6所述的输入事件处理装置,其特征在于,所述对所述处理结果进行渲染,生成响应于所述输入事件的用户界面包括:
在所述等待模式结束后,开始对所述处理结果进行渲染,生成响应于所述输入事件的用户界面。
8.根据权利要求6或7中任意一项所述的输入事件处理装置,其特征在于,所述将所述数据发送至所述应用的开发线程的消息处理队列中包括:
确定所述应用的开发线程的消息处理队列的队列头部;
将所述输入事件的所述数据发送至所述队列头部。
9.根据权利要求6所述的输入事件处理装置,其特征在于,所述将所述数据发送至所述应用的开发线程的消息处理队列中包括:
确定所述输入事件所触发的至少一个元素;
获取所述至少一个元素的信息;
将所述至少一个元素的所述信息以及所述输入事件的所述数据发送至所述应用的开发线程的消息处理队列中。
10.根据权利要求6所述的输入事件处理装置,其特征在于,所述处理结果中包括至少一个显示元素,对应地,所述对所述处理结果进行渲染,生成响应于所述输入事件的用户界面包括:
按照预设页面布局规则分别确定所述至少一个显示元素在用户界面中的位置;
分别在所述显示元素于所述用户界面上对应的所述位置上绘制所述至少一个显示元素,生成响应于所述输入事件的用户界面;
其中,所述开启等待模式,直至接收所述开发线程对所述输入事件的处理结果包括:
开启等待模式,在所述等待模式中,所述主线程不进行操作;
在接收到所述开发线程对输入事件的处理结果后,结束所述等待模式。
11.一种输入事件处理装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
应用的主线程接收输入事件的数据;
将所述数据发送至所述应用的开发线程的消息处理队列中;
开启等待模式,直至接收所述开发线程对所述输入事件的处理结果;
对所述处理结果进行渲染,生成响应于所述输入事件的用户界面;
其中,所述开启等待模式,直至接收所述开发线程对所述输入事件的处理结果包括:
开启等待模式,在所述等待模式中,所述主线程不进行操作;
在接收到所述开发线程对输入事件的处理结果后,结束所述等待模式。
12.一种非临时性计算机可读存储介质,当所述存储介质中的指令由处理器执行时,使得处理器能够执行权利要求1-5任意一项所述的方法。
CN201811168076.XA 2018-10-08 2018-10-08 一种输入事件处理方法及装置 Active CN109491655B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811168076.XA CN109491655B (zh) 2018-10-08 2018-10-08 一种输入事件处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811168076.XA CN109491655B (zh) 2018-10-08 2018-10-08 一种输入事件处理方法及装置

Publications (2)

Publication Number Publication Date
CN109491655A CN109491655A (zh) 2019-03-19
CN109491655B true CN109491655B (zh) 2022-07-15

Family

ID=65690128

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811168076.XA Active CN109491655B (zh) 2018-10-08 2018-10-08 一种输入事件处理方法及装置

Country Status (1)

Country Link
CN (1) CN109491655B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110347947B (zh) * 2019-06-17 2023-06-06 创新先进技术有限公司 一种页面渲染方法及装置
CN111459591B (zh) * 2020-03-31 2023-03-28 杭州海康威视数字技术股份有限公司 待渲染对象处理方法、装置和终端

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103984529A (zh) * 2014-05-15 2014-08-13 中国人民解放军国防科学技术大学 基于飞腾处理器的x图形系统并行加速方法
CN104168315A (zh) * 2014-08-08 2014-11-26 三星电子(中国)研发中心 一种全视角平滑的沉浸式显示方法和系统
CN106155741A (zh) * 2016-06-30 2016-11-23 努比亚技术有限公司 一种避免应用程序无响应的处理装置及方法
CN108595236A (zh) * 2018-03-27 2018-09-28 五八有限公司 一种防止子线程进行用户界面操作的方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8589950B2 (en) * 2011-01-05 2013-11-19 Blackberry Limited Processing user input events in a web browser

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103984529A (zh) * 2014-05-15 2014-08-13 中国人民解放军国防科学技术大学 基于飞腾处理器的x图形系统并行加速方法
CN104168315A (zh) * 2014-08-08 2014-11-26 三星电子(中国)研发中心 一种全视角平滑的沉浸式显示方法和系统
CN106155741A (zh) * 2016-06-30 2016-11-23 努比亚技术有限公司 一种避免应用程序无响应的处理装置及方法
CN108595236A (zh) * 2018-03-27 2018-09-28 五八有限公司 一种防止子线程进行用户界面操作的方法及装置

Also Published As

Publication number Publication date
CN109491655A (zh) 2019-03-19

Similar Documents

Publication Publication Date Title
US9588805B2 (en) Method and terminal device for controlling background application
EP3136793A1 (en) Method and apparatus for awakening electronic device
CN110610699B (zh) 语音信号处理方法、装置、终端、服务器及存储介质
EP3010187B1 (en) Method for upgrading and device and apparatus thereof
US9870239B2 (en) Method and device for running application program
US20170031640A1 (en) Method, device and system for starting target function
CN106851695B (zh) 一种测试网速的方法、装置和系统
CN106547547B (zh) 数据采集方法及装置
EP3012750A1 (en) Method and device for identifying encoding of web page
EP3232325B1 (en) Method and device for starting application interface
CN109117144B (zh) 页面处理方法、装置、终端及存储介质
CN112269556A (zh) 信息展示方法、装置、系统、设备、服务器及存储介质
CN107463372B (zh) 一种数据驱动的页面更新方法和装置
CN109491655B (zh) 一种输入事件处理方法及装置
CN105808304B (zh) 代码部署方法、装置及系统
EP3188566B1 (en) Application management method and device
CN109885360B (zh) 一种数据处理方法、装置及存储介质
CN109976872B (zh) 数据处理方法、装置、电子设备及存储介质
CN105786561B (zh) 进程调用的方法及装置
US11997542B2 (en) Method and device for message transmission
CN113238887A (zh) 数据处理方法、装置及存储介质
US10572308B2 (en) Method and apparatus for monitoring virtual document object model
CN112102009A (zh) 广告展示方法、装置、设备及存储介质
US11394818B2 (en) System updating method and device, and storage medium
CN114531493B (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