[发明专利]一种程序检测方法及装置有效
| 申请号: | 201510916597.9 | 申请日: | 2015-12-10 |
| 公开(公告)号: | CN105389258B | 公开(公告)日: | 2020-08-14 |
| 发明(设计)人: | 巩晓波 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 |
| 代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 郝传鑫;熊永强 |
| 地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 程序 检测 方法 装置 | ||
本发明实施例提供一种程序检测方法及装置,其中的方法可包括:检测主线程的消息队列中目标消息执行的第一时间以及在所述目标消息之后的消息执行的第二时间;根据所述第一时间与所述第二时间,确定所述目标消息的执行时长;若所述执行时长大于预设阈值,则确定所述目标消息的执行导致屏幕卡顿,并输出所述目标消息。本发明可通过检测主线程中目标消息的执行时长,精确定位输出导致屏幕卡顿的目标消息。
技术领域
本发明涉及通信技术领域,具体涉及一种程序检测方法及装置。
背景技术
Android应用程序是由消息驱动的,包括界面的显示以及程序逻辑的执行。其中界面显示是在主线程中以一连串的屏幕刷新消息的形式不停的驱动刷新的。例如当用户手指滑动一个列表时,系统就会构造一个屏幕刷新消息抛到主线程的消息队列中,只有当这个消息之前的消息都执行完毕后,这个消息才会执行,当这个消息执行时屏幕才会显示下一帧的内容。而程序开发者的功能逻辑也是以消息的形式在主线程中排队的,如果一个由开发人员抛出的程序逻辑消息因为本身执行时间过长而阻塞了屏幕刷新消息的话,屏幕显示卡顿就发生了,现有技术中无法精确定位产生卡顿的消息。
发明内容
本发明实施例提供一种程序检测方法及装置,可通过检测主线程中目标消息的执行时长,精确定位输出导致屏幕卡顿的目标消息。
本发明第一方面提供一种程序检测方法,可包括:
检测主线程的消息队列中目标消息执行的第一时间以及在所述目标消息之后的消息执行的第二时间;
根据所述第一时间与所述第二时间,确定所述目标消息的执行时长;
若所述执行时长大于预设阈值,则确定所述目标消息的执行导致屏幕卡顿,并输出所述目标消息。
本发明第二方面提供一种程序检测装置,可包括:
检测模块,用于检测主线程的消息队列中目标消息执行的第一时间以及在所述目标消息之后的消息执行的第二时间;
确定模块,用于根据所述第一时间与所述第二时间,确定所述目标消息的执行时长;
确定输出模块,用于若所述执行时长大于预设阈值,则确定所述目标消息的执行导致屏幕卡顿,并输出所述目标消息。
实施本发明实施例,具有如下有益效果:
本发明实施例,检测主线程的消息队列中目标消息执行的第一时间以及在目标消息之后的消息执行的第二时间,根据第一时间与第二时间,确定目标消息的执行时长,若执行时长大于预设阈值,则确定目标消息的执行导致屏幕卡顿,并输出目标消息,这种方式可通过检测主线程中目标消息的执行时长,精确定位输出导致屏幕卡顿的目标消息。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种程序检测方法的流程图;
图2为本发明实施例提供的另一种程序检测方法的流程图;
图3为本发明实施例提供的又一种程序检测方法的流程图;
图4为本发明实施例提供的一种屏幕刷新消息执行示意图;
图5为本发明实施例提供的一种程序卡顿示意图;
图6为本发明实施例提供的一种检测程序卡顿的示意图;
图7为本发明实施例提供的一种程序检测装置的结构示意图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510916597.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种针对界面测试生成测试建议的方法和装置
- 下一篇:结构化查询语言调试器





