[发明专利]用于检测应用程序的方法和装置有效
申请号: | 201910248655.3 | 申请日: | 2019-03-29 |
公开(公告)号: | CN109960659B | 公开(公告)日: | 2022-11-01 |
发明(设计)人: | 尹健刚;李明德;宋晔 | 申请(专利权)人: | 阿波罗智联(北京)科技有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F11/30;G06F9/54 |
代理公司: | 北京英赛嘉华知识产权代理有限责任公司 11204 | 代理人: | 王达佐;马晓亚 |
地址: | 100176 北京市大兴区北京经*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 检测 应用程序 方法 装置 | ||
1.一种用于检测应用程序的方法,所述方法包括:
执行阻塞检测步骤:由子线程获取或创建消息,将所述消息的预设属性设定为预设标识的名称,记录预设标识的名称和值,向主线程发送具有所述预设标识的名称的消息,其中,所述子线程在应用程序运行时由所述主线程创建并开启,所述预设标识的值能被所述主线程修改;间隔预设时长后确定所述预设标识的值是否改变;若未改变,确定所述主线程阻塞;
所述主线程被配置成:响应于确定具有所述预设标识的名称的消息从所述主线程的消息队列中被取出,将所述预设标识的值改变成与所述子线程记录的值不同的值;
其中,所述方法还包括:
若所述预设标识的值已改变,确定所述主线程未阻塞,再次执行所述阻塞检测步骤。
2.根据权利要求1所述的方法,其中,所述方法还包括:
若所述预设标识的值未改变,获取所述主线程的堆栈信息,以及将所述堆栈信息上传到服务器。
3.根据权利要求1所述的方法,其中,所述向主线程发送具有所述预设标识的名称的消息,包括:
调用在所述主线程中创建的消息传递对象发送具有所述预设标识的名称的消息,其中,所述消息传递对象用于将发送的消息压入所述主线程的消息队列中。
4.根据权利要求1-3之一所述的方法,其中,所述间隔预设时长后确定所述预设标识的值是否改变,包括:
休眠预设时长;
确定所述预设标识的值是否改变。
5.一种用于检测应用程序的装置,所述装置包括:
阻塞检测单元,被配置成执行阻塞检测步骤:由子线程获取或创建消息,将所述消息的预设属性设定为预设标识的名称,记录预设标识的名称和值,向主线程发送具有所述预设标识的名称的消息,其中,所述子线程在应用程序运行时由所述主线程创建并开启,所述预设标识的值能被所述主线程修改;间隔预设时长后确定所述预设标识的值是否改变;若未改变,确定所述主线程阻塞;
所述主线程被配置成:响应于确定具有所述预设标识的名称的消息从所述主线程的消息队列中被取出,将所述预设标识的值改变成与所述子线程记录的值不同的值;
其中,所述装置还包括:
再次执行单元,被配置成若所述预设标识的值已改变,确定所述主线程未阻塞,再次执行所述阻塞检测步骤。
6.根据权利要求5所述的装置,其中,所述装置还包括:
上报单元,被配置成若所述预设标识的值未改变,获取所述主线程的堆栈信息,以及将所述堆栈信息上传到服务器。
7.一种电子设备,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-4中任一所述的方法。
8.一种计算机可读介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-4中任一所述的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿波罗智联(北京)科技有限公司,未经阿波罗智联(北京)科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910248655.3/1.html,转载请声明来源钻瓜专利网。