屏幕手写跟随性的优化方法及系统的制作方法

文档序号:9910476阅读:886来源:国知局
屏幕手写跟随性的优化方法及系统的制作方法
【技术领域】
[0001]本发明涉及安卓系统技术领域,尤其涉及一种屏幕手写跟随性的优化方法及系统。
【背景技术】
[0002]近年来,平板电脑不断从个人娱乐终端向教育、商务等行业领域渗透。屏幕手写技术在行业平板中得到了广泛应用。其中,屏幕手写延迟性是影响输入体验的关键指标。
[0003]据统计,安卓系统上支持屏幕手写的应用,从触屏书写到显示出笔迹,其延迟普遍达到10ms左右,且随着书写内容的增加,画面复杂性提升,系统每一帧处理的数据量增加,笔迹延迟性也随之明显增长,导致在书写时感到笔迹迟滞,带来较差的用户体验。
[0004]现有技术中公开了一种“可书写式电磁笔”见公开号为:CN204595780U,公开日为:2015-08-26的中国专利;所述可书写式电磁笔包括笔芯、笔座仓、电路板和导电橡胶件,其中所述笔芯为插嵌收容到所述笔座仓内部的可书写式笔芯,且其靠近笔头位置套设有磁性元件;所述磁性元件的外围绕设有线圈;所述导电橡胶件设置在所述笔座仓和所述电路板之间,所述线圈通过所述导电橡胶件与所述电路板电性连接。
[0005]现有技术中公开了一种“抗干扰的电磁手写装置及电磁笔位置识别方法”见公开号为:CN102479020A,公开日为:2012-05-30的中国专利;通过天线板接收来自电磁笔的电磁信号,并将所述电磁信号发送给控制板;控制板根据所接收的电磁信号控制显示面板的工作状态,并根据所述显示面板的工作状态信息判断是否对电磁笔位置进行识别。采用该发明所述的方案,能够有效避免显示面板刷新时的噪声干扰信号对电磁笔的影响,防止电磁笔的误动作。
[0006]现有技术中还公开了一种“电磁屏间笔迹数据的处理方法及电磁屏系统”见公开号为:CN103823605A,公开日为:2014-05-28的中国专利;该方法包括如下步骤:第一屏幕接收并显示被划下的第一笔迹,同时在接收第一笔迹的第一设定个数的点的第一笔迹信息数据后,将第一笔迹信息数据直接或者间接发送到第二屏幕;第二屏幕接收并解析第一笔迹信息数据,在第二屏幕上的对应位置显示第一笔迹;第二屏幕接收并显示被划下的第二笔迹,同时在接收第二笔迹的第二设定个数的点的第二笔迹信息数据后,将第二笔迹信息数据直接或者间接发送到第一屏幕;第一屏幕接收并解析第二笔迹信息数据,在第一屏幕上的对应位置显示第二笔迹。该发明可以降低第一屏幕与第二屏幕的笔迹差异较大的几率。
[0007]上述专利是涉及电磁笔硬件和软件方面共同的创新。本专利申请是基于android系统对电磁笔的书写绘制效率优化,在瑞芯芯片及系统平台实现,对原生android系统的绘制效率有大幅提升,具有保护意义。

【发明内容】

[0008]本发明要解决的技术问题之一,在于提供一种屏幕手写跟随性的优化系统,改善了 android系统屏幕输入延迟状况,绘制速度不会随着内容的复杂度提升而降低。
[0009]本发明问题之一是这样实现的:一种屏幕手写跟随性的优化系统,所述优化系统包括输入优化模块和绘制优化模块;
[0010]所述输入优化模块,用于优化安卓系统输入事件读取、分发的繁琐处理流程,即为屏幕建立一个单独的处理线程,通过单独的处理线程直接处理安卓系统的驱动上报的屏幕坐标事件;
[0011]所述绘制优化模块,用于优化安卓系统应用绘制时底层内存分配、数据合成及显示处理的流程,即将安卓系统的应用层的绘制处理迀移到安卓系统本地层实现,申请单独的图形缓冲区作为画布,将画布放到硬件帧缓冲区,然后通过画布将接收到的坐标数据通过绘图引擎SKIA绘制显示到屏幕。
[0012]进一步的,所述输入优化模块进一步的实现方式为:对屏幕输入事件单独建立一个循环处理线程,通过循环处理线程直接读取屏幕上报的坐标事件,向安卓系统应用层派发,无需经过安卓系统的转换、处理、同步的过程,从而节省了输入端的时间;其中,坐标事件包含驱动上报的点的坐标及屏幕压感信息。
[0013]进一步的,所述绘制优化模块进一步的实现方式为:将安卓系统的应用层的绘制处理迀移到安卓系统本地层来实现,则事件的接收和绘制动作,不受限于框架Choreographer,能做到即时处理,来减少等待安卓系统输入/绘制调度信号的时间;
[0014]将安卓系统的应用层的绘制处理迀移到安卓系统本地层来实现,安卓系统的界面绘制不再依赖系统框架,即不需要每一帧进行测量、布局的操作,绘制内容能直接显示到屏幕,来减少每一帧数据计算耗时;
[0015]申请单独的图形缓冲区作为画布,使得安卓系统界面绘制不再每次绘制都重新申请图形缓冲区,也不需要多缓冲区的切换,由于在安卓系统本地层申请一块缓存初始化为画布,并映射到硬件帧缓冲区,绘制内容能通过本地层绘制接口直接写入到硬件帧缓冲区中,并显示出来。
[0016]进一步的,所述屏幕包括电磁屏或者电容屏。
[0017]本发明要解决的技术问题之二,在于提供一种屏幕手写跟随性的优化方法,改善了 android系统屏幕输入延迟状况,绘制速度不会随着内容的复杂度提升而降低。
[0018]本发明问题之二是这样实现的:一种屏幕手写跟随性的优化方法,其特征在于:包括不分先后顺序的输入的优化处理和绘制的优化处理;
[0019]所述输入的优化处理为:优化安卓系统输入事件读取、分发的繁琐处理流程,即为屏幕建立一个单独的处理线程,通过单独的处理线程直接处理安卓系统的驱动上报的屏幕坐标事件;
[0020]所述绘制的优化处理为:优化安卓系统应用绘制时底层内存分配、数据合成及显示处理的流程,即将安卓系统的应用层的绘制处理迀移到安卓系统本地层来实现,申请单独的图形缓冲区作为画布,将画布放到硬件帧缓冲区,然后通过画布将接收到的坐标数据通过绘图引擎SKIA绘制显示到屏幕。
[0021]进一步的,所述输入的优化处理进一步为:对屏幕输入事件单独建立一个循环处理线程,通过循环处理线程直接读取屏幕上报的坐标事件,向安卓系统应用层派发,无需经过安卓系统的转换、处理、同步的过程,从而节省了输入端的时间;其中,坐标事件包含驱动上报的点的坐标及屏幕压感信息。
[0022]进一步的,所述绘制的优化处理进一步为:将安卓系统的应用层的绘制处理迀移到安卓系统本地层来实现,则事件的接收和绘制动作,不受限于框架Choreographer,能做到即时处理,来减少等待安卓系统输入/绘制调度信号的时间;
[0023]将安卓系统的应用层的绘制处理迀移到安卓系统本地层来实现,安卓系统的界面绘制不再依赖系统框架,即不需要每一帧进行测量、布局的操作,绘制内容能直接显示到屏幕,来减少每一帧数据计算耗时;
[0024]申请单独的图形缓冲区作为画布,使得安卓系统界面绘制不再每次绘制都重新申请图形缓冲区,也不需要多缓冲区的切换,由于在安卓系统本地层申请一块缓存初始化为画布,并映射到硬件帧缓冲区,绘制内容能通过本地层绘制接口直接写入到硬件帧缓冲区中,并显示出来。
[0025]进一步的,所述屏幕包括电磁屏或者电容屏等。
[0026]本发明具有如下优点:本发明通过输入的优化处理和绘制的优化处理,有效解决了安卓系统屏幕手写输入延迟的问题;有效改善安卓系统屏幕手写绘制效率低下的问题。采用本发明后,明显的改善了android系统屏幕输入延迟状况,将原有10ms延时缩短到40ms之内;采用本发明后,绘制速度不会随着内容的复杂度提升而降低。
【附图说明】
[0027]图1为本发明的系统框架图。
[0028]图2为本发明的流程示意图。
【具体实施方式】
[0029]请参阅图1所示,本发明的一种屏幕手写跟随性的优化系统,所述优化系统包括输入优化模块和绘制优化模块;所述屏幕包括电磁屏或者电容屏等;
[0030]现有安卓系统的输入框架能够适配处理多种不同类型的输入input事件。其基本流程是,系统启动时会初始化input相关的服务,其中会创建EventHub对象及InputReader、InputDispatcher线程;当有输入事件产生,InputReader线程会通过EventHub对象读取驱动上报的事件,并进行预处理(例如,判断事件类型,判断按键是长按,短按,等等),然后交给InputDispatcher线程处理;InputDispatcher线程会进行必要的判断,如事件是否可被系统拦截,若不可拦截,则需要找到应用目标窗口,然后将事件event投放到等待队列中,等待应用窗口的处理。当有事件到来,应用UI线程会被唤醒,并开始事件处理流程,经过若干阶段后,事件完成处理,InputDispatcher线程将其从等待队列中移除。
[0031]上述处理流程,是针对多种类型输入事件的统一处理框架,处理过程会存在一些延时。本发明优化后的处理流程,通过输入优化模块进行优化;
[0032]所述输入优化模块,用于优化安卓系统输入事件读取、分发的繁琐处理流程,即为屏幕建立一个单独的处理线程,通过单独的处理线程直接处理安卓系统的驱动上报的屏幕坐标事件;避免了原生安卓系统输入的繁琐操作。
[0033]现有的安卓系统应用绘制流程,在如下三个地方会引入延时:
[0034](I),应用层收到的输入事件和系统执行绘制动作,是由框架的Choreographer来按照vsync节奏统一调度执行的。
[0035](2),应用收到输入事件后触发绘制,每一帧重绘需要重新进行测量、布局;即便是界面局部重绘,也需要系统对脏区大小进行计算。随着书写内容的增加,每一帧的数据计算的耗时会随之增长,绘制时间也会增长。
[0036](3),系统底层采用多缓冲区机制,即每一时刻只有一个缓存buffer内容显示在屏幕上,而后台缓存buffer需要与front buffer交换,才会显示出来。应用层每一次绘制(全局或局部重绘)都需要1ckCanvas锁定一块buffer,绘制之后,再执行unlockAndPost完成显示,其本质是不断从显示队列中申请空闲缓冲区,完成绘制后,再渲染到硬件缓冲区。前后缓冲区的切换和缓冲区的申请、释放,也需要一定的时间消耗。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1