ANR异常数据的收集方法、显示方法、装置及设备与流程

文档序号:27341601发布日期:2021-11-10 03:06阅读:来源:国知局

技术特征:
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所述的方法,其特征在于,所述主线程调用栈数据包括:主线程堆栈信息和所述主线程堆栈信息对应的调用时间,所述主线程堆栈信息是指主线程中各类方法间的调用关系,所述调用时间信息是指获取当前主线程堆栈信息与开始获取所述运行数据之间的时间间隔;所述主线程任务数据包括:至少一个目标任务的开始执行时间、执行时长、cpu占用时长和执行信息,所述目标任务是所述主线程消息队列中的任务,所述执行信息用于指示所述目标任务的执行环境和执行结果;所述函数执行数据包括:至少一个目标函数的函数名、开始执行时间、结束执行时间、执行时长和cpu占用时长。8.根据权利要求6所述的方法,其特征在于,所述可视化显示所述运行数据,包括:按照排列顺序分别显示时间轴、所述主线程调用栈数据、所述主线程任务数据、所述函数执行数据和信息窗,所述信息窗用于显示所述运行数据的详细信息;使用有宽度的时间线分别表示所述主线程调用栈数据、所述主线程任务数据和所述函数执行数据。9.根据权利要求6所述的方法,其特征在于,所述可视化显示所述运行数据,包括:在所述主线程调用栈数据对应的时间线上,使用区别标记标识所述主线程堆栈信息对应的调用时间信息,并在所述区别标记对应的所述信息窗中显示与所述调用时间信息相关联的所述主线程堆栈信息,所述区别标记是能够区别于时间线的标识。10.根据权利要求6所述的方法,其特征在于,所述可视化显示所述运行数据,包括:按照时间顺序排列所述主线程任务数据,使用不同的颜色标识不同的所述目标任务;按照时间顺序排列所述函数执行数据,使用不同的颜色标识不同的所述目标函数。11.根据权利要求10所述的方法,其特征在于,所述按照时间顺序排列所述主线程任务数据,包括:
通过所述目标任务的开始执行时间、结束执行时间确定所述目标任务在所述主线程任务数据对应的时间线上的显示位置;或者,通过所述目标任务的开始执行时间、执行时长确定所述目标任务在所述主线程任务数据对应的时间线上的显示位置;在所述显示位置对应的信息窗中显示所述目标任务的开始执行时间、结束执行时间、执行时长、cpu占有时长以及执行信息。12.一种应用程序无响应anr异常数据的收集装置,其特征在于,所述装置包括:采集模块,用于采集目标应用程序的运行数据,所述运行数据包括主线程调用栈数据、主线程任务数据和函数执行数据;其中,所述主线程调用栈数据用于指示所述目标应用程序的主线程的调用情况,所述主线程任务数据用于指示所述主线程在不同时间的任务执行情况,所述函数执行数据用于指示所述目标应用程序的线程中的函数执行情况;记录模块,用于记录所述运行数据;上报模块,用于在所述目标应用程序发生anr的情况下,向服务器上报anr异常数据,所述anr异常数据包括所述anr的发生时间以及与所述anr对应的所述运行数据。13.一种应用程序无响应anr异常数据的显示装置,其特征在于,所述装置包括:获取模块,用于从服务器获取目标应用程序的anr异常数据,所述anr异常数据包括所述目标应用程序的anr的发生时间以及与所述anr对应的运行数据,所述运行数据包括主线程调用栈数据、主线程任务数据和函数执行数据;其中,所述主线程调用栈数据用于指示所述目标应用程序的主线程的调用情况,所述主线程任务数据用于指示所述主线程在不同时间的任务执行情况,所述函数执行数据用于指示所述目标应用程序的线程中的函数执行情况;显示模块,用于可视化显示所述运行数据。14.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要1至5任一项所述的方法,或实现如权利要求6至11任一项所述的方法。15.一种计算机可读存储介质,其特征在于,所述存储介质中存储有计算机程序,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至5任一项所述的方法,或实现如权利要求6至11任一项所述的方法。

技术总结
本申请实施例公开了一种ANR异常数据的收集方法、显示方法、装置及设备,属于计算机技术领域。所述方法包括:采集目标应用程序的运行数据,运行数据包括主线程调用栈数据、主线程任务数据和函数执行数据;记录运行数据;在目标应用程序发生ANR的情况下,向服务器上报ANR异常数据,ANR异常数据包括该ANR的发生时间以及与该ANR对应的运行数据。本申请实现了针对性收集用于分析ANR异常的数据,能够为ANR异常分析提供有效的数据,降低了ANR异常的分析难度。度。度。


技术研发人员:张文彬
受保护的技术使用者:广州市百果园网络科技有限公司
技术研发日:2021.08.26
技术公布日:2021/11/9
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1