[发明专利]一种通过在单进程中实现多消息队列机制提升性能的方法有效
申请号: | 201210445839.7 | 申请日: | 2012-11-08 |
公开(公告)号: | CN102999386A | 公开(公告)日: | 2013-03-27 |
发明(设计)人: | 张海霞;孙文;袁东风;徐加利;徐祥桐;翟庆羽;孙志猛;王宏宾;纪洪亮;李宗璋 | 申请(专利权)人: | 山东大学 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 济南金迪知识产权代理有限公司 37219 | 代理人: | 许德山 |
地址: | 250100 山*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 通过 进程 实现 消息 队列 机制 提升 性能 方法 | ||
技术领域
本发明涉及一种通过在单进程中实现多消息队列机制提升性能的方法,属移动终端的操作系统技术领域。
背景技术
Android是Google发布的基于Linux平台的开源移动操作系统的名称,是现在移动终端和各种嵌入式终端主流的操作系统。
但Android系统在响应某些用户操作时,会出现系统性能降低的情况。例如响应点击操作的动画效果滞后;界面切换有延迟等。在Android系统的内部机制中,处理此类用户交互操作的是UI主线程。由UI主线程的子线程接收用户的操作,将各种操作事件转换为消息传送给UI主线程的消息队列进行存储管理,再按照一定的顺序进行处理。所以消息的处理速度决定用户响应的速度,进而决定系统性能。
Android系统现在采用的消息循环机制,包括Handler模块和Looper模块两部分,主要特征是单线程单消息队列。Handler模块负责将消息存入消息队列,Looper模块负责消息队列的循环执行。具体内容可参考张元亮编著的2011版《Android开发应用实战详解》第二章节关于Android线程的阐述。
消息循环机制中每个线程最多拥有1个消息队列,而且没有优先级方面的考虑。不同种类的消息都是按照“先入先出”在1个队列里顺序执行,当处理紧急响应的消息时,如果前面的非紧急消息处理时间较长,会造成紧急响应的延迟,影响用户响应的速度,进而降低系统性能。
发明内容
针对现有技术存在的不足,本发明提供一种通过在单进程中实现多消息队列机制提升性能的方法,以解决Android系统处理用户响应的过程中,不能优先保证紧急响应消息的处理,影响用户响应的速度,降低系统性能的问题。该方法通过增加单个线程的消息队列,并在多个消息队列间划分优先级,将UI主线程接收到的响应消息按紧急程度存入不同优先级的消息队列,消息队列按照优先级先后处理,从而实现消息的智能处理。
本发明的技术方案如下:
一种通过在单进程中实现多消息队列机制提升性能的方法,应用在Android系统中,该系统包括带优先级判断功能的Handler模块和带多消息队列管理功能的Looper模块两部分,Handler模块用于把消息按照紧急程度存入对应优先级的消息队列中,并负责收发消息队列中待处理的消息;Looper模块用于管理多个消息队列的循环和执行;Handler模块包括优先级判断单元和消息收发单元,其中优先级判断单元用于消息优先级的判断,消息收发单元用于把消息传送到消息队列及把待处理的消息传送给执行的子线程;Looper模块包括优先级管理单元和循环执行单元,其中优先级管理单元用于激活有存储消息的高优先级消息队列、封存低优先级的消息队列;循环执行单元用于选定循环执行的消息队列,该方法步骤如下:
1)子线程Handler模块接收用户的响应消息
由UI主线程的子线程Handler模块的消息收发单元响应用户的操作,然后转换成消息等待发送;
2)子线程Handler模块判断消息的优先级
在UI主线程的子线程Handler模块的优先级判断单元进行优先级消息的判断,如将优先级设为3个,分为Normal,High,Very High 3个等级,Normal优先级最低,Very High优先级最高;(不限于此,实际应用中优先级可多可少,此处以方便叙述为例。)
3)子线程Handler模块传送消息至UI主线程
由子线程Handler模块的消息收发单元进行,消息在UI主线程对应优先级的消息队列中进行存储待处理;
4)UI主线程按优先级管理多消息队列
其步骤为:
a)Looper模块判断优先级最高的消息队列是否为空,若为空则转到下一步,否则等待,再次判断优先级最高的消息队列是否为空;
b)Looper模块判断下一优先级的消息队列是否为空,若为空则等待,再次判断下一优先级的消息队列是否为空,否则转到下一步;
c)Looper模块选择此优先级的消息队列,按“先入先出”的原则进行处理;
d)Handler模块发送待处理的消息至处理子线程;
e)转到步骤a)。
本发明方法改变了Android系统原有的单线程单消息队列机制,主要特点是增加单个线程的消息队列,并在多个消息队列间划分优先级。通过这种方法实现消息的按优先级智能处理,减少用户操作Android系统的延迟、滞后,提高用户响应的速度,保证系统的运行性能。
附图说明
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东大学,未经山东大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210445839.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种金属互连层刻蚀方法
- 下一篇:一种Ⅲ-ⅤOI结构的制备方法