【技术实现步骤摘要】
ANR异常数据的收集方法、显示方法、装置及设备
[0001]本申请实施例涉及计算机
,特别涉及一种ANR(Application Not responding,应用程序未响应)异常数据的收集方法、显示方法、装置及设备。
技术介绍
[0002]ANR是用户在使用运行的应用程序时可能出现的问题。在Android系统中,特定的事件需要在规定的时间范围内完成,应用程序如果在规定的时间范围内未能进行有效的响应或者响应时间过长,就会造成ANR异常。
[0003]在相关技术中,当应用程序发生ANR异常后,技术人员通过调取操作系统产生的追踪文档(trace.txt)等手段分析ANR异常的产生原因。追踪文档中记载了发生ANR异常的时间点以及相应时间段内的线程等信息、出现ANR异常的应用程序、进程号以及CPU(Central Processing Unit,中央处理器)的负载情况等信息,技术人员通过关键字查询等手段从追踪文档中寻找用于分析ANR异常产生原因的数据。
[0004]然而,由于追踪文档中能收集到的数据有限,并且包含许多底层数据,这些数据对ANR异常分析过程没有帮助。在相关技术中,追踪文档不能清晰、明确地显示导致ANR异常的原因。
技术实现思路
[0005]本申请实施例提供了一种ANR异常数据的收集方法、显示方法、装置及设备,可用于解决相关技术中用于分析ANR异常的参考信息指向性不强的问题。技术方案如下:
[0006]根据本申请实施例的一个方面,提供了一种ANR异常数据的收集方法,所 ...
【技术保护点】
【技术特征摘要】
1.一种应用程序无响应ANR异常数据的收集方法,其特征在于,所述方法由目标应用程序执行,所述方法包括:采集所述目标应用程序的运行数据,所述运行数据包括主线程调用栈数据、主线程任务数据和函数执行数据;其中,所述主线程调用栈数据用于指示所述目标应用程序的主线程的调用情况,所述主线程任务数据用于指示所述主线程在不同时间的任务执行情况,所述函数执行数据用于指示所述目标应用程序的线程中的函数执行情况;记录所述运行数据;在所述目标应用程序发生ANR的情况下,向服务器上报ANR异常数据,所述ANR异常数据包括所述ANR的发生时间以及与所述ANR对应的所述运行数据。2.根据权利要求1所述的方法,其特征在于,所述主线程调用栈数据包括至少一组主线程堆栈信息和调用时间信息之间的对应关系;所述采集所述目标应用程序的运行数据,包括:获取所述主线程堆栈信息,所述主线程堆栈信息用于指示所述主线程中各类方法间的调用关系;获取所述主线程堆栈信息对应的调用时间信息,所述调用时间信息用于指示所述主线程堆栈信息的获取时刻。3.根据权利要求1所述的方法,其特征在于,所述主线程任务数据包括:至少一个目标任务的开始执行时间、执行时长和CPU占用时长,所述目标任务是所述主线程的消息队列中的任务;所述采集所述目标应用程序的运行数据,包括:在所述目标任务开始执行的情况下,获取所述目标任务的开始执行时间以及第一线程运行时间,所述第一线程运行时间是指当所述目标任务开始执行时,所述主线程的运行时长;在所述目标任务执行结束的情况下,获取所述目标任务的结束执行时间以及第二线程运行时间,所述第二线程运行时间是指当所述目标任务执行结束时,所述主线程的运行时长;根据所述目标任务的开始执行时间和所述目标任务的结束执行时间,确定所述目标任务的执行时长;根据所述第一线程运行时间和所述第二线程运行时间,确定所述目标任务的CPU占用时长。4.根据权利要求1所述的方法,其特征在于,所述函数执行数据包括:至少一个目标函数的函数名、开始执行时间、结束执行时间、执行时长和CPU占用时长;所述采集所述目标应用程序的运行数据,包括:在所述目标函数开始执行的情况下,获取所述目标函数的函数名、开始执行时间和第三线程运行时间,所述第三线程运行时间是指当所述目标函数开始执行时,所述目标函数所在线程的运行时长;在所述目标函数执行结束的情况下,获取所述目标函数的结束执行时间和第四线程运行时间,所述第四线程运行时间是指当所述目标函数执行结束时,所述目标函数所在线程的运行时长;
根据所述目标函数的开始执行时间和所述目标函数的结束执行时间,确定所述目标函数执行时长;根据所述第三线程运行时间和所述第四线程运行时间,确定所述目标函数的CPU占用时长。5.根据权利要求1至4任一项所述的方法,其特征在于,所述目标应用程序的目标包中插入有监听函数,所述监听函数用于采集、记录和上报所述运行数据;所述目标包中需要进行ANR异常监控的位置插入有开启命令,所述开启命令用于触发执行所述监听函数。6.一种应用程序无响应ANR异常数据的显示方法,其特征在于,所述方法包括:从服务器获取目标应用程序的ANR异常数据,所述ANR异常数据包括所述目标应用程序的ANR的发生时间以及与所述ANR对应的运行数据,所述运行数据包括主线程调用栈数据、主线程任务数据和函数执行数据;其中,所述主线程调用栈数据用于指示所述目标应用程序的主线程的调用情况,所述主线程任务数据用于指示所述主线程在不同时间的任务执行情况,所述函数执行数据用于指示所述目标应用程序的线程中的函数执行情况;可视化显示所述运行数据。7.根据权利要求6所述的方法,其特征在于,所述主线程调用栈数据包括:主线程堆栈信息和所述主线程堆栈信息对应的调用时间,所述主线程堆栈信息是指主线程中各类方法...
【专利技术属性】
技术研发人员:张文彬,
申请(专利权)人:广州市百果园网络科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。