[发明专利]一种通过多缓冲机制提升安卓系统性能的方法有效
申请号: | 201210444839.5 | 申请日: | 2012-11-08 |
公开(公告)号: | CN102929640A | 公开(公告)日: | 2013-02-13 |
发明(设计)人: | 张海霞;高凯;袁东风;徐加利;徐祥桐;孙文;翟庆羽;纪洪亮;孙志猛;王宏宾 | 申请(专利权)人: | 山东大学 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 济南金迪知识产权代理有限公司 37219 | 代理人: | 许德山 |
地址: | 250100 山*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 通过 缓冲 机制 提升 系统 性能 方法 | ||
技术领域
本发明涉及一种基于安卓(Android)系统中通过增加缓冲器来提升系统性能的方法,即一种通过多缓冲机制提升安卓系统性能的方法,属于安卓系统优化技术领域。
背景技术
伴随着谷歌新版移动操作系统Android4.1Jelly Bean的问世,谷歌的Android平台自2010年以来呈现出突飞猛进的发展势头,在全球智能手机市场中所占份额从不到10%一路猛增至50%以上,Android系统已经成为移动终端及嵌入式终端系统的最大霸主。但是Android系统上仍有一些不足,值得工程人员继续对其进行优化。例如,用户在利用触摸屏的Fling、Scroll等Gesture(手势)来操作屏幕,当用户在触摸屏幕上连续进行很多手势时,有时会发现屏幕卡一下,本文就是针对android系统中对Touchevent处理时等待时间长甚至出现卡机现象进行优化,以提升系统系性能,改善用户体验。
在Android系统中,触摸屏每次有触控信息就触发了一系列touch事件ACTION_DOWN->ACTION_MOVE->ACTION_MOVE->ACTION_MOVE...->ACTION_MOVE->ACTION_UP,即调用onTouchEvent()函数,在该函数里每有一个down,move,up消息时,都会让其新建一个path对象,然后将其存到一个buffer中,待系统检测到这个buffer的内容后对其进行提取、处理;在系统检测和处理此buffer中内容的期间,触摸屏上再有触控信息时会按照相同的方式存到另外一个buffer中。通常情况,系统处理此buffer中内容的时间会比触摸屏上的触控信息写到buffer中的时间长,因此当触摸屏有比较多的连续触控信息时,就会发生触控信息没有buffer可用来存储的情况,用户就会发现触摸屏上会卡一下。
存储需要显示的帧内容的framebuffer中也会遇到类似发卡的现象。framebuffer用一块特殊的内存来显示当前帪,当内存中的帧信息显示出来后,一个单独完整的部分内存用来添装下一帪。一旦第二帪填充完成,framebuffer被命令找到第二个buffer替代。此时主buffer变成了第二个buffer,第二个buffer也就变成了主buffer。这个操作通常在垂直回归期(verti cal blanking interval)完成,来防止屏幕tearing(旧帪显示一半,新帪显示一半)。由于有时每个buffer里面的内容显示用的时间比较长,就会发生两个buffer都是饱和的情况,系统发过来的帧信息无处可存,系统就会卡一下。
专利号为CN201110172844.0、发明人为毛德操、王承志、徐鼎鼎、傅唯威、发明名称为《Wine与安卓手机软键盘输入的整合方法》的专利公开了一种Wine与安卓手机软键盘输入的整合方法,本方法解决了Wine和Android/OMS关于软键盘输入的整合问题,同时解决了弹出、关闭软键盘的时机与途径问题。但是此发明对输入的信息的存储方式和信息传递流程没有涉及,本文发明正是从信息存储方面对安卓系统进行了优化。
发明内容
针对现有技术的不足,本发明提出一种通过多缓冲机制提升安卓系统性能的方法,它是一种基于增加存储触摸屏触发信息的buffer和增加framebuffer中的buffer的方法,以提升系统性能。
本发明的技术方案是采用如下方式来实现的。
一种通过多缓冲机制提升安卓系统性能的方法,在安卓系统的内存中将原有的分配的给存储触摸屏触发信息的2个缓冲寄存器变为3个缓冲寄存器,对其进行编号为buffer0,buffer1,buffer2,该方法步骤如下:
1)preProcessEvent()函数检查到触摸屏上有触控信息时,判断用户输入信息是否投递,若投递则调用onTouchEvent()函数,该函数让其新建一个path(路径)对象,然后将其存到一个缓冲寄存器buffer0中;
2)系统dispatcher函数在缓冲寄存器上等待,一旦缓冲寄存器buffer0获取到信息,就通过分发函数将缓冲寄存器buffer0中的触控信息传送到client端(客户端)进行处理,处理完成后并将缓冲寄存器buffer0中的内容清除;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东大学,未经山东大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210444839.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:新生儿复苏报时器
- 下一篇:一种腕骨三脚融合器定位及钻孔辅助装置