CN108491154A - 一种嵌入式设备多点触控的缓存优化方法 - Google Patents
一种嵌入式设备多点触控的缓存优化方法 Download PDFInfo
- Publication number
- CN108491154A CN108491154A CN201810225638.3A CN201810225638A CN108491154A CN 108491154 A CN108491154 A CN 108491154A CN 201810225638 A CN201810225638 A CN 201810225638A CN 108491154 A CN108491154 A CN 108491154A
- Authority
- CN
- China
- Prior art keywords
- contact
- queue
- contact information
- information
- pending
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction 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/0488—Interaction 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
Abstract
本发明涉及一种嵌入式设备多点触控的缓存优化方法,其对触点信息进行缓存管理,保证正常场景下使用触点信息时,不需要频繁地申请内存分配和释放内存,提高效率;同时使用待处理触点队列进行触点信息的上报,而当UI线程对触点对象处理完成后采用待回收触点队列进行触点对象的回收,保证触点对象有序处理和回收,而当出现触点信息处理赶不上触点信息的上报时,根据合并策略将新上报的触点信息合并掉待处理的触点信息,保证触点队列和消息队列不会爆增,避免触点堆积造成触屏效果迟滞。
Description
技术领域
本发明涉及多点触控技术领域,具体涉及一种嵌入式设备多点触控的缓存优化方法。
背景技术
多点触控,即多点触摸技术,指的是允许用户同时通过多个手指来控制图形界面的一种技术,比较常见的应用产品如:智能手机(iPhone、Android)、iPad等。随着智能手机的普及,越来越多的智能设备也加入了触屏的大军。目前比较多的产品直接搭载Android系统来满足多点触控的需求,另外也有使用稳定的UI库来实现多点触控功能(如:Qt库)。Android系统提供了完整的触屏解决方案,但是Android系统的空间和内存占用比较大,对于一些硬件有限制的嵌入式设备来说还是不合适。
在嵌入式设备的开发中,通常会使用自己开发的或第三方的UI库来构建GUI进程。而成熟的UI库都会有独立的窗口消息循环机制,来实现对用户输入的响应和界面的显示等。但是却没有提供比较完善的触点缓存机制,而是单纯依靠消息队列来缓存触点信息。
目前嵌入式设备上依靠UI库的消息队列来缓存多点触控信息和传递触控事件的话,存在以下问题:
首先,UI库正常会有一个主线程来处理界面的业务逻辑,在嵌入式设备硬件受限的情况下,主线程业务处理的时间间隔是不固定的,业务处理的时间间隔可能会超过触控点的上报时间间隔。如果在主线程中读取并处理触控点,会造成触控点被滞留在驱动的缓存中,而且驱动的缓存大小也是有限的,触控点如果不及时取走的话,会被覆盖掉,从而造成触控点的丢失。
其次,正常情况下可以创建一个新的线程来读取驱动上报的触控点数据,然后将触控点数据发送到UI库的消息队列中处理。这种情况在性能好的设备上是比较常见的,但是在设备受限的嵌入式设备上,当触点处理时间大于上报时间时,持续地在触屏上滑动会出现以下问题:一、大量的触点滑动信息被堆积在消息循环中,内存会不断增加,造成内存大量被占用;二、在消息队列大小受限的UI库中,会造成消息队列爆掉,轻则造成触点信息出错(滑动过程中有其他触点按下或抬起,按下或抬起的信息丢失的话,会造成UI状态出错),重则造成消息循环出错导致停止运行;三、大量的触点被堆积,然后排队逐个执行,会出现滑动的UI表现迟滞,体验大大降低。
最后,触屏的手势和动画中比较常用的一个关键信息是滑动的速度。正常情况下,可以在处理触点时根据前后两个处理的时间点算出滑动的速度。但是在性能受限的嵌入式设备上,业务处理的时间波动比较大,这样就会造成计算出来的滑动速度误差比较大。用这个速度来实现手势或动画的话,UI效果的平滑性就比较差。如果把上报的时间戳(64位)都上传的话,数量量大,另外一些UI库中已有的消息结构也不支持扩展携带额外的数据。
发明内容
本发明的目的在于提供一种嵌入式设备多点触控的缓存优化方法,其使用策略合并的缓存方法,实现嵌入式设备的多点触控性能平稳,提高触屏体验的平滑流畅度。
为实现上述目的,本发明采用的技术方案是:
一种嵌入式设备多点触控的缓存优化方法,其具体包括以下步骤:
步骤1、采用触点处理线程读取触点信息;
步骤1.1、读取底层触点信息,并将其加工为上层触点信息;
步骤1.2、从触点对象缓存单元中分配触点对象给触点信息,并将该触点信息设置到相应的触点对象上;
步骤1.3、判断当前触点信息与上一个触点信息的触点动作类型是否一样,若触点动作类型一样,则进行触点信息合并,将当前触点信息更新到待处理触点队列中,同时将触点对象回收到触点对象缓存单元中;若触点动作类型不一样,则将触点对象增加至待处理触点队列中,同时发送消息通知UI线程处理触点对象;
步骤2、采用UI线程处理触点对象;
步骤2.1、UI线程根据触点处理线程发送的消息,申请获取待处理触点对象,当UI线程成功获取触点对象后,将该触点对象从待处理触点队列移动至待回收触点队列;
步骤2.2、UI线程通过触点消息处理系统对触点对象进行处理,处理完成后,向触点处理线程发送回收触点消息;
步骤3、触点处理线程接收到UI线程发送的回收触点消息后,将已经处理完成的触点对象从待回收触点队列回收到触点缓存单元中。
采用上述方案后,本发明对触点信息进行缓存管理,保证正常场景下使用触点信息时,不需要频繁地申请内存分配和释放内存,提高效率;同时使用待处理触点队列进行触点信息的上报,而当UI线程对触点对象处理完成后采用待回收触点队列进行触点对象的回收,保证触点对象有序处理和回收,而当出现触点信息处理赶不上触点信息的上报时,根据合并策略将新上报的触点信息合并掉待处理的触点信息,保证触点队列和消息队列不会爆增,避免触点堆积造成触屏效果迟滞。
此外,本发明使用消息通知的方式来实现触点读取线程与UI库主线程的通信,保证触点处理、触点回收的异步处理。
综上,本发明有效地解决了触点处理比上报慢导致的内存爆增、消息队列溢出、以及触屏响应迟滞和不平滑等问题。
附图说明
图1为本发明原理框图;
图2为本发明触点处理线程读取触点信息流程图;
图3为本发明UI线程的触点处理流程图;
图4为本发明触点处理线程回收触点对象流程图。
具体实施方式
如图1所示,本发明揭示了一种嵌入式设备多点触控的缓存优化方法,其采用触点处理线程读取触点信息,并用待处理触点队列进行触点信息的上报以及用待回收触点队列进行触点对象的回收,当出现触点信息处理赶不上触点信息的上报时,根据合并策略将新上报的触点信息合并掉待处理的触点信息。
如图2至图4所示,本发明的嵌入式设备多点触控的缓存优化方法具体包括以下步骤:
步骤1、采用触点处理线程读取触点信息;
步骤1.1、读取底层触点信息,并将其加工为上层触点信息;
步骤1.2、从触点对象缓存单元中分配触点对象给触点信息,并将该触点信息设置到相应的触点对象上;
步骤1.3、判断当前触点信息与上一个触点信息的触点动作类型是否一样,若触点动作类型一样,则进行触点信息合并,将当前触点信息更新到待处理触点队列中,同时将触点对象回收到触点对象缓存单元中;若触点动作类型不一样,则将触点对象增加至待处理触点队列中,同时发送消息通知UI线程处理触点对象。
步骤2、采用UI线程处理触点对象;
步骤2.1、UI线程根据触点处理线程发送的消息,申请获取待处理触点对象,当UI线程成功获取触点对象后,将该触点对象从待处理触点队列移动至待回收触点队列;
步骤2.2、UI线程通过触点消息处理系统对触点对象进行处理,处理完成后,向触点处理线程发送回收触点消息。
步骤3、触点处理线程接收到UI线程发送的回收触点消息后,将已经处理完成的触点对象从待回收触点队列回收到触点缓存单元中。
本发明的关键在于,本发明对触点信息进行缓存管理,保证正常场景下使用触点信息时,不需要频繁地申请内存分配和释放内存,提高效率;同时使用待处理触点队列进行触点信息的上报,而当UI线程对触点对象处理完成后采用待回收触点队列进行触点对象的回收,保证触点对象有序处理和回收,而当出现触点信息处理赶不上触点信息的上报时,根据合并策略将新上报的触点信息合并掉待处理的触点信息,保证触点队列和消息队列不会爆增,避免触点堆积造成触屏效果迟滞。
此外,本发明使用消息通知的方式来实现触点读取线程与UI库主线程的通信,保证触点处理、触点回收的异步处理。
以上所述,仅是本发明实施例而已,并非对本发明的技术范围作任何限制,故凡是依据本发明的技术实质对以上实施例所作的任何细微修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (1)
1.一种嵌入式设备多点触控的缓存优化方法,其特征在于:所述缓存优化方法具体包括以下步骤:
步骤1、采用触点处理线程读取触点信息;
步骤1.1、读取底层触点信息,并将其加工为上层触点信息;
步骤1.2、从触点对象缓存单元中分配触点对象给触点信息,并将该触点信息设置到相应的触点对象上;
步骤1.3、判断当前触点信息与上一个触点信息的触点动作类型是否一样,若触点动作类型一样,则进行触点信息合并,将当前触点信息更新到待处理触点队列中,同时将触点对象回收到触点对象缓存单元中;若触点动作类型不一样,则将触点对象增加至待处理触点队列中,同时发送消息通知UI线程处理触点对象;
步骤2、采用UI线程处理触点对象;
步骤2.1、UI线程根据触点处理线程发送的消息,申请获取待处理触点对象,当UI线程成功获取触点对象后,将该触点对象从待处理触点队列移动至待回收触点队列;
步骤2.2、UI线程通过触点消息处理系统对触点对象进行处理,处理完成后,向触点处理线程发送回收触点消息;
步骤3、触点处理线程接收到UI线程发送的回收触点消息后,将已经处理完成的触点对象从待回收触点队列回收到触点缓存单元中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810225638.3A CN108491154B (zh) | 2018-03-19 | 2018-03-19 | 一种嵌入式设备多点触控的缓存优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810225638.3A CN108491154B (zh) | 2018-03-19 | 2018-03-19 | 一种嵌入式设备多点触控的缓存优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108491154A true CN108491154A (zh) | 2018-09-04 |
CN108491154B CN108491154B (zh) | 2020-07-10 |
Family
ID=63318441
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810225638.3A Active CN108491154B (zh) | 2018-03-19 | 2018-03-19 | 一种嵌入式设备多点触控的缓存优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108491154B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090146963A1 (en) * | 2007-12-11 | 2009-06-11 | J Touch Corporation | Method for determining multiple touch inputs on a resistive touch screen |
CN102750041A (zh) * | 2012-07-18 | 2012-10-24 | 友达光电股份有限公司 | 一种用于多点触控的坐标处理电路 |
CN106896956A (zh) * | 2017-01-18 | 2017-06-27 | 长沙湘计海盾科技有限公司 | 一种“道”系统下多点触控的实现方法 |
-
2018
- 2018-03-19 CN CN201810225638.3A patent/CN108491154B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090146963A1 (en) * | 2007-12-11 | 2009-06-11 | J Touch Corporation | Method for determining multiple touch inputs on a resistive touch screen |
CN102750041A (zh) * | 2012-07-18 | 2012-10-24 | 友达光电股份有限公司 | 一种用于多点触控的坐标处理电路 |
CN106896956A (zh) * | 2017-01-18 | 2017-06-27 | 长沙湘计海盾科技有限公司 | 一种“道”系统下多点触控的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108491154B (zh) | 2020-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3567486A1 (en) | System and method of page sharing by a device | |
US11372528B2 (en) | User interface display method, device, and apparatus | |
JP2020504865A (ja) | アプリケーションデータ処理方法、装置、及び記憶媒体 | |
KR20140032924A (ko) | 어플리케이션의 상호운용성을 촉진시키기 위한 방법 및 장치 | |
CN102681670A (zh) | 一种移动终端及移动终端虚拟键盘的设置方法 | |
JP2016533065A (ja) | 近接場通信ベースのデータ送信方法および装置、ならびに近接場通信デバイス | |
US20180077063A1 (en) | Information processing system, server, and program, and terminal and program | |
CN107301038A (zh) | 应用生产设备、系统、方法和非临时性计算机可读媒介 | |
CN104067202A (zh) | 鼠标同步的方法、装置和系统 | |
CN110333919A (zh) | 一种呈现社交对象信息的方法与设备 | |
US20240086053A1 (en) | Display method and apparatus, electronic device, and storage medium | |
WO2013005322A1 (ja) | 制御端末、および制御方法 | |
CN105739771A (zh) | 一种显示界面管理方法、装置及终端 | |
CN108491154A (zh) | 一种嵌入式设备多点触控的缓存优化方法 | |
US20160226930A1 (en) | Method and system for communication devices | |
CN110110264A (zh) | 触摸热区的调节方法、装置、设备和触摸屏终端设备 | |
US9959069B2 (en) | Externalized execution of input method editor | |
CN111643901A (zh) | 用于云游戏界面智能渲染的方法和装置 | |
EP3985485A1 (en) | Gesture recognition method and device, and computer-readable storage medium | |
US20210209471A1 (en) | Processor memory optimization method and apparatus for deep learning training tasks | |
CN109960562B (zh) | 一种信息展示方法、装置和计算机可读存储介质 | |
CN108595091B (zh) | 屏幕控制显示方法、装置及计算机可读存储介质 | |
CN113360074B (zh) | 软键盘显示方法、相关装置及计算机程序产品 | |
WO2017186049A1 (zh) | 信息处理方法和装置 | |
US9442686B2 (en) | Electronic device and method of controlling display of information |
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 |