【技术实现步骤摘要】
针对应用卡顿的处理方法、装置和电子设备
本申请涉及智能终端
,特别涉及一种针对应用卡顿的处理方法、装置和电子设备。
技术介绍
在计算机应用场景中,为了使用计算机硬件设备实现各种不同的应用功能,技术人员开发了众多具备各种应用功能的应用软件。随着计算机硬件技术的不断发展,计算机终端在人类的日常生产生活中的应用范围不断扩大,应用软件的种类也不断增长。在实际应用场景中,在硬件设备上安装有操作系统(例如,安卓(Android)系统),在操作系统中加载有应用软件,应用软件运行在操作系统的系统框架下。由于计算机硬件处理性能不足、和/或计算机硬件错误、和/或系统框架设计缺陷、和/或软件设计缺陷、和/或输入数据错误等因素的存在,在使用应用软件的过程中,会出现应用软件运行卡顿的情况(例如,应用无响应(ApplicationNotResponding,ANR)),大大影响了用户使用应用软件的用户体验。
技术实现思路
本申请提供了一种针对应用卡顿的处理方法、装置和电子设备,本申请还提供一种计算机可读存储介质,以提供一种在应用软件外部的数据处理方式,降低应用卡顿对用户造成的操作影响,提高应用软件使用的用户体验。本申请实施例采用下述技术方案:第一方面,本申请提供了一种针对应用卡顿的处理方法,包括:监控应用主线程的事件处理队列,判断事件处理队列中的新加入事件是否需要被优先响应;具体的,需要被优先响应的事件包括但不限于会向用户反馈信息的事件;例如,在根据本申请一实施例的应用场景中,将响应被迟 ...
【技术保护点】
1.一种针对应用卡顿的处理方法,其特征在于,包括:/n监控应用主线程的事件处理队列,判断所述事件处理队列中的新加入事件是否需要被优先响应;/n当所述新加入事件需要被优先响应时,计算所述新加入事件在所述事件处理队列中的等待时间,判断所述等待时间是否超过预设时间阈值;/n当所述等待时间超过所述预设时间阈值时,收回所述应用主线程的代码执行权;/n在所述应用主线程的代码执行权被收回后,重新排列所述事件处理队列,包括:/n前移所述新加入事件的排位,将所述新加入事件排在所述重排后的事件处理队列的第一位;/n移除阻塞事件或后移阻塞事件的排位,其中,所述阻塞事件为所述事件处理队列被重排前,排在第一位且被主线程执行的事件;/n在所述事件处理队列被重排完毕后,恢复所述应用主线程的代码执行权,令所述应用主线程执行所述重排后的事件处理队列。/n
【技术特征摘要】
1.一种针对应用卡顿的处理方法,其特征在于,包括:
监控应用主线程的事件处理队列,判断所述事件处理队列中的新加入事件是否需要被优先响应;
当所述新加入事件需要被优先响应时,计算所述新加入事件在所述事件处理队列中的等待时间,判断所述等待时间是否超过预设时间阈值;
当所述等待时间超过所述预设时间阈值时,收回所述应用主线程的代码执行权;
在所述应用主线程的代码执行权被收回后,重新排列所述事件处理队列,包括:
前移所述新加入事件的排位,将所述新加入事件排在所述重排后的事件处理队列的第一位;
移除阻塞事件或后移阻塞事件的排位,其中,所述阻塞事件为所述事件处理队列被重排前,排在第一位且被主线程执行的事件;
在所述事件处理队列被重排完毕后,恢复所述应用主线程的代码执行权,令所述应用主线程执行所述重排后的事件处理队列。
2.根据权利要求1所述的方法,其特征在于,所述判断所述事件处理队列中的新加入事件是否需要被优先响应,包括:
判断所述新加入事件是否为用户输入事件;
当所述新加入事件为用户输入事件时,判定所述新加入事件需要被优先响应。
3.根据权利要求1或2所述的方法,其特征在于,所述监控应用主线程的事件处理队列,包括:
构建监控子线程;
使用所述监控子线程监控所述应用主线程的事件处理队列。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述判断所述事件处理队列中的新加入事件是否需要被优先响应之前,还包括:
判断所述新加入事件是否依赖其他事件;
当所述新加入事件不依赖其他事件时,判断所述事件处理队列中的新加入事件是否需要被优先响应。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述收回所述应用主线程的代码执行权,包括:
向所述应用主线程发中断消息,在所述应用主线程响应所述中断消息的过程中,收回所述应用主线程的代码执行权,将所述代码执行权交予系统框架重新分配。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述重新排列所述事件处理队列,还包括:
在所述重新排列所述事件处理队列的过程中,保持除所述阻塞事件以及所述新加入事件以外的其他事件相互间的排序不变。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述后移阻塞事件的排位,包括:
判断是否存在依赖所述阻塞事件的事件;
当存在依赖所述阻塞事件的事件时,在所述重排后的事件处理队列中,将所述阻塞事件排在依赖所述阻塞事件的事件之前。
8.根据权利要求7所述的方法,其特征在于,所述判断是否存在依赖所述阻塞事件的事件之后,还包括:
当不存在依赖所述阻塞事件的事件时,将所述阻塞事件排在所述重排后的事件处理队列的末尾。
9.根据权利要求1-6中任一项所述的方法,其特征在于,所述后移阻塞事件的排位,包括:将所述阻塞事件排在所述重排后的事件处理队列的第二位。
10.根据权利要求1-6中任一项所述的方法,其特征在于,所述移除阻塞事件,包括:
判断所述阻塞事件导致的重新排列所述事件处理队列的次数是否大于预设次数阈值;
当所述重新排列所述事件处理队列的次数大于预设次数阈值时,移除所述阻塞事件和/或输出提示信息。
11.一种针对应用卡顿的处理装置,其特征在于,包括:
事件监控模块,其用于监控应用主线程的事件处理队列,判断所述事件处理队列中的新加入事件是否需要被优先响应;
等待时间判断模块,其用于当所述新加入事件需要被优先响应时,计算所述新加入事件在所述事件处理队列中的...
【专利技术属性】
技术研发人员:王小龙,赵俊,王凯,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。