【技术实现步骤摘要】
应用检测方法、装置、设备以及存储介质
[0001]本公开涉及计算机
,尤其涉及应用检测领域。
技术介绍
[0002]在安卓(Android)等操作系统中,应用有很多滑动手势或者动画效果,如果手势不流畅,出现卡顿,会导致用户体验差,甚至用户会删除应用。反之,体验流畅可以吸引更多用户使用。导致卡顿的原因是很难定位的。例如,仅进行代码再次查看(review)难以发现哪些代码会导致卡顿,仅进行黑盒测试又很难确定具体导致卡顿的是什么代码。
技术实现思路
[0003]本公开提供了一种用于应用检测方法、装置、设备以及存储介质。
[0004]根据本公开的一方面,提供了一种应用检测方法,包括:
[0005]基于应用的每帧绘制间隔、主线程消息的执行信息和主线程调用栈,得到卡顿数据;
[0006]基于卡顿数据,得到应用的卡顿原因。
[0007]根据本公开的另一方面,提供了一种应用检测装置,包括:
[0008]第一获取模块,用于基于应用的每帧绘制间隔、主线程消息的执行信息和主线程调用栈,得到卡顿数据;
[0009]处理模块,用于基于卡顿数据,得到应用的卡顿原因。
[0010]根据本公开的另一方面,提供了一种电子设备,包括:
[0011]至少一个处理器;以及
[0012]与该至少一个处理器通信连接的存储器;其中,
[0013]该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行本公开任一实施 ...
【技术保护点】
【技术特征摘要】
1.一种应用检测方法,包括:基于应用的每帧绘制间隔、主线程消息的执行信息和主线程调用栈,得到卡顿数据;基于所述卡顿数据,得到所述应用的卡顿原因。2.根据权利要求1所述的方法,其特征在于,基于应用的每帧绘制间隔、主线程消息的执行信息和主线程调用栈,得到卡顿数据,包括:基于所述每帧绘制间隔和卡顿阈值,从所述主线程消息的执行信息和主线程调用栈中筛选得到达到卡顿阈值的卡顿数据。3.根据权利要求2所述的方法,其特征在于,基于所述每帧绘制间隔和卡顿阈值,从所述主线程消息的执行信息和主线程调用栈中筛选得到达到卡顿阈值的卡顿数据,包括:在第N帧绘制间隔大于卡顿阈值的情况下,基于第N帧的绘制开始时间戳和绘制结束时间戳,获取处于所述绘制开始时间戳和绘制结束时间戳之间的主线程消息的执行信息和主线程调用栈,N为大于或等于0的整数。4.根据权利要求1所述的方法,其特征在于,基于所述卡顿数据,得到所述应用的卡顿原因,包括:基于所述卡顿数据生成用于表示所述应用的卡顿原因的日志树。5.根据权利要求4所述的方法,其特征在于,基于所述卡顿数据生成用于表示所述应用的卡顿原因的日志树,包括:基于处于所述每帧绘制间隔的绘制开始时间戳和绘制结束时间戳之间的所述应用执行的各任务及其耗时信息生成第一级节点;基于执行各任务所需的项目及其对应的耗时信息生成第二级节点;基于所述第一级节点和所述第二级节点,生成所述日志树,其中所述第二级节点为所述第一级节点的子节点。6.根据权利要求1至5中任一项所述的方法,其特征在于,还包括:基于系统垂直同步信号获取所述每帧绘制间隔。7.根据权利要求1至5中任一项所述的方法,其特征在于,还包括:获取应用的主线程消息的执行信息,所述主线程消息的执行信息包括所述主线程消息执行的各任务及其对应的耗时信息。8.根据权利要求1至5中任一项所述的方法,其特征在于,还包括:采用抽样轮询的方式获取应用的主线程调用栈,所述主线程调用栈中包括执行各所述任务所需的项目及其对应的耗时信息。9.根据权利要求1至5中任一项所述的方法,其特征在于,还包括:通过时间戳对所述每帧绘制间隔、所述主线程消息的执行信息和所述主线程调用栈进行匹配。10.根据权利要求1至5中任一项所述的方法,其特征在于,所述每帧绘制间隔、所述主线程消息的执行信息通过主线程获取,所述主线程调用栈通过异步线程获取;所述异步线程还用于执行得到卡顿数据和卡顿原因的步骤。11.一种应用检测装置,包括:第一获取模块,用于基于应用的每帧绘制间隔、主线程消息的执行信息和主线程调用栈,得到卡顿数据;
处理模块,用于基于所述卡顿数据,得到所述应用的卡顿原因。12.根据权利要求11所述的装置,其特征在于,所述第一获取模块包括:筛选子模块,用于基于所述每帧绘制间隔和卡顿阈值,从...
【专利技术属性】
技术研发人员:李享,
申请(专利权)人:北京百度网讯科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。