当前位置: 首页 > 专利查询>山东大学专利>正文

一种通过在单进程中实现多消息队列机制提升性能的方法技术

技术编号:8489699 阅读:193 留言:0更新日期:2013-03-28 08:45
通过在单进程中实现多消息队列机制提升性能的方法,属移动终端的操作系统技术领域。本发明专利技术主要特点是改变单线程单消息队列的做法,增加单个线程的消息队列,并在多个消息队列间划分优先级,将接收到的响应消息按紧急程度存入不同优先级的消息队列,消息队列按照优先级先后处理,从而实现消息的智能处理。本发明专利技术优化了Android系统原有的消息循环机制,可以减少用户操作Android系统的延迟、滞后,提高用户响应的速度,保证系统的运行性能。

【技术实现步骤摘要】

本专利技术涉及,属移动终端的操作系统

技术介绍
Android是Google发布的基于Linux平台的开源移动操作系统的名称,是现在移动终端和各种嵌入式终端主流的操作系统。但Android系统在响应某些用户操作时,会出现系统性能降低的情况。例如响应点击操作的动画效果滞后;界面切换有延迟等。在Android系统的内部机制中,处理此类用户交互操作的是UI主线程。由UI主线程的子线程接收用户的操作,将各种操作事件转换为消息传送给Π主线程的消息队列进行存储管理,再按照一定的顺序进行处理。所以消息 的处理速度决定用户响应的速度,进而决定系统性能。Android系统现在采用的消息循环机制,包括Handler模块和Looper模块两部分,主要特征是单线程单消息队列。Handler模块负责将消息存入消息队列,Looper模块负责消息队列的循环执行。具体内容可参考张元亮编著的2011版《Android开发应用实战详解》第二章节关于Android线程的阐述。消息循环机制中每个线程最多拥有I个消息队列,而且没有优先级方面的考虑。不同种类的消息都是按照“先入先出”在I个队列里顺序执行,当处理紧急响应的消息时,如果前面的非紧急消息处理时间较长,会造成紧急响应的延迟,影响用户响应的速度,进而降低系统性能。
技术实现思路
针对现有技术存在的不足,本专利技术提供,以解决Android系统处理用户响应的过程中,不能优先保证紧急响应消息的处理,影响用户响应的速度,降低系统性能的问题。该方法通过增加单个线程的消息队列,并在多个消息队列间划分优先级,将UI主线程接收到的响应消息按紧急程度存入不同优先级的消息队列,消息队列按照优先级先后处理,从而实现消息的智能处理。本专利技术的技术方案如下,应用在Android系统中,该系统包括带优先级判断功能的Handler模块和带多消息队列管理功能的Looper模块两部分,Handler模块用于把消息按照紧急程度存入对应优先级的消息队列中,并负责收发消息队列中待处理的消息hooper模块用于管理多个消息队列的循环和执行;Handler模块包括优先级判断单元和消息收发单元,其中优先级判断单元用于消息优先级的判断,消息收发单元用于把消息传送到消息队列及把待处理的消息传送给执行的子线程;Looper模块包括优先级管理单元和循环执行单元,其中优先级管理单元用于激活有存储消息的高优先级消息队列、封存低优先级的消息队列;循环执行单元用于选定循环执行的消息队列,该方法步骤如下I)子线程Handler模块接收用户的响应消息由Π主线程的子线程Handler模块的消息收发单元响应用户的操作,然后转换成消息等待发送;2)子线程Handler模块判断消息的优先级在UI主线程的子线程Handler模块的优先级判断单元进行优先级消息的判断,如将优先级设为3个,分为Normal, High, Very High 3个等级,Normal优先级最低,Very High优先级最高;(不限于此,实际应用中优先级可多可少,此处以方便叙述为例。)3)子线程Handler模块传送消息至UI主线程 由子线程Handler模块的消息收发单元进行,消息在Π主线程对应优先级的消息队列中进行存储待处理;4) UI主线程按优先级管理多消息队列其步骤为a) Looper模块判断优先级最高的消息队列是否为空,若为空则转到下一步,否则等待,再次判断优先级最高的消息队列是否为空;b) Looper模块判断下一优先级的消息队列是否为空,若为空则等待,再次判断下一优先级的消息队列是否为空,否则转到下一步;c) Looper模块选择此优先级的消息队列,按“先入先出”的原则进行处理;d) Handler模块发送待处理的消息至处理子线程;e)转到步骤a)。本专利技术方法改变了 Android系统原有的单线程单消息队列机制,主要特点是增加单个线程的消息队列,并在多个消息队列间划分优先级。通过这种方法实现消息的按优先级智能处理,减少用户操作Android系统的延迟、滞后,提高用户响应的速度,保证系统的运行性能。附图说明具体实施例方式下面结合实施例对本专利技术做进一步的说明,但不限于此。实施例,应用在Android系统中,该系统包括带优先级判断功能的Handler模块和带多消息队列管理功能的Looper模块,Handler模块用于把消息按照紧急程度存入对应优先级的消息队列中,并负责收发消息队列中待处理的消息hooper模块用于管理多个消息队列的循环和执行;Handler模块包括优先级判断单元和消息收发单元,其中优先级判断单元用于消息优先级的判断,消息收发单元用于把消息传送到消息队列及把待处理的消息传送给执行的子线程;L00per模块包括优先级管理单元和循环执行单元,其中优先级管理单元用于激活有存储消息的高优先级消息队列、封存低优先级的消息队列;循环执行单元用于选定循环执行的消息队列,该方法步骤如下I)子线程Handler模块接收用户的响应消息由UI主线程的子线程Handler模块的消息收发单元响应用户的操作,然后转换成消息等待发送;2)子线程Handler模块判断消息的优先级在UI主线程的子线程Handler模块的优先级判断单元进行优先级消息的判断,如将优先级设为3个,分为Normal, High, Very High 3个等级,Normal优先级最低,Very High优先级最高;(不限于此,实际应用中优先级可多可少,此处以方便叙述为例。)3)子线程Handler模块传送消息至UI主线程由子线程Handler模块的消息收发单元进行,消息在Π主线程对应优先级的消息队列中进行存储待处理; 4) UI主线程按优先级管理多消息队列其步骤为a) Looper模块判断优先级最高的消息队列是否为空,若为空则转到下一步,否则等待,再次判断优先级最高的消息队列是否为空;b) Looper模块判断下一优先级的消息队列是否为空,若为空则等待,再次判断下一优先级的消息队列是否为空,否则转到下一步;c) Looper模块选择此优先级的消息队列,按“先入先出”的原则进行处理;d) Handler模块发送待处理的消息至处理子线程;e)转到步骤a)。权利要求1.,应用在Android系统中,该系统包括带优先级判断功能的Handler模块和带多消息队列管理功能的Looper模块两部分,Handler模块用于把消息按照紧急程度存入对应优先级的消息队列中,并负责收发消息队列中待处理的消息hooper模块用于管理多个消息队列的循环和执行;Handler模块包括优先级判断单元和消息收发单元,其中优先级判断单元用于消息优先级的判断,消息收发单元用于把消息传送到消息队列及把待处理的消息传送给执行的子线程;Looper模块包括优先级管理单元和循环执行单元,其中优先级管理单元用于激活有存储消息的高优先级消息队列、封存低优先级的消息队列;循环执行单元用于选定循环执行的消息队列,该方法步骤如下O子线程Handler模块接收用户的响应消息由Π主线程的子线程Handler模块的消息收发单元响应用户的操作,然后转换成消息等待发送;2)子线程Handler模块判断消息的优先级在Π主线程的子线程Handler模块的优先级判断单元进行优先级消息本文档来自技高网...

【技术保护点】
一种通过在单进程中实现多消息队列机制提升性能的方法,应用在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主线程由UI主线程的子线程Handler模块的消息收发单元进行,消息在UI主线程对应优先级的消息队列中进行存储待处理;4)UI主线程按优先级管理多消息队列其步骤为:a)Looper模块判断优先级最高的消息队列是否为空,若为空则转到下一步,否则等待,再次判断优先级最高的消息队列是否为空;b)Looper模块判断下一优先级的消息队列是否为空,若为空则等待,再次判断下一优先级的消息队列是否为空,否则转到下一步;c)Looper模块选择此优先级的消息队列,按“先入先出”的原则进行处理;d)Handler模块发送待处理的消息至处理子线程;e)转到步骤a)。...

【技术特征摘要】

【专利技术属性】
技术研发人员:张海霞孙文袁东风徐加利徐祥桐翟庆羽孙志猛王宏宾纪洪亮李宗璋
申请(专利权)人:山东大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1