【技术实现步骤摘要】
一种应用卡顿的处理方法、装置、设备及存储介质
本专利技术实施例涉及计算机软件的技术,尤其涉及一种应用卡顿的处理方法、装置、设备及存储介质。
技术介绍
在安卓(Android)上,如果应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ApplicationNotResponding,ANR)对话框。进一步的,用户可以选择“等待”而让程序继续运行,也可以选择“强制关闭”。一般的,在应用程序中不能出现ANR,而让用户每次都要处理这个ANR对话框,这容易造成应用程序的运行流畅度受到影响。另外,在默认情况下,在Android中,活动(Activity)的最长执行时间是5秒,广播接收者(BroadcastReceiver)的最长执行时间则是10秒。即应用程序的Activity超过5秒,或者BroadcastReceiver超过10秒响应不够灵敏,系统会显示一个ANR对话框。也就是说,从应用程序发生卡顿到卡顿被发现的时间过长,不利于应用程序的卡顿现象的及时发现。专利技 ...
【技术保护点】
1.一种应用卡顿的处理方法,其特征在于,包括:/n确定应用在运行过程中所开启的线程;/n基于执行所述线程所产生的线程数据,确定所述应用发生卡顿的时间点;/n记录所述应用在所述时间点的应用数据;/n将所述应用数据发送至服务器,所述服务器用于分析所述应用数据,以生成用于修复所述卡顿的更新数据。/n
【技术特征摘要】
1.一种应用卡顿的处理方法,其特征在于,包括:
确定应用在运行过程中所开启的线程;
基于执行所述线程所产生的线程数据,确定所述应用发生卡顿的时间点;
记录所述应用在所述时间点的应用数据;
将所述应用数据发送至服务器,所述服务器用于分析所述应用数据,以生成用于修复所述卡顿的更新数据。
2.根据权利要求1所述的方法,其特征在于,所述线程包括主线程,所述基于执行所述线程所产生的线程数据,确定所述应用发生卡顿的时间点,包括:
执行所述主线程;
获取包括所述主线程的线程状态的线程数据;
当确定所述主线程频繁处于同一线程状态时,确定所述主线程造成所述应用发生卡顿;
将所述主线程频繁处于同一线程状态的时间,确定为所述应用发生卡顿的时间点。
3.根据权利要求2所述的方法,其特征在于,所述获取包括所述主线程的线程状态的线程数据,包括:
获取所述主线程的线程控制块;
从所述线程控制块中读取所述主线程的线程状态,作为线程数据之一。
4.根据权利要求2所述的方法,其特征在于,所述确定所述主线程频繁处于同一线程状态,包括:
统计在预设周期内,所述主线程处于一线程状态的次数;
当所述次数超过预置频次时,确定所述主线程频繁处于一线程状态。
5.根据权利要求2所述的方法,其特征在于,所述确定所述主线程频繁处于同一线程状态,包括:
以预置的时间段为统计周期;
确定每一统计周期中,所述主线程的线程状态;
确定所述主线程连续处于同一线程状态的、所述统计周期的个数;
当所述个数超过预设个数时,确定所述主线程频繁处于一线程状态。
6.根据权利要求1所述的方法,其特征在于,所述线程包括子线程,所述基于执行所述线程所产生的线程数据,确定所述应用发生卡顿的时间点,包括:
切换至执行子线程;
获取包括所述子线程对硬件资源的占用率的线程数据;
将所述占用率超过预设范围的子线程,确定为造成所述应用发生卡顿的目标线程;
将所述目标线程的执行时间,确定为所述应用发生卡顿的时间点。
7.根据权利要求1所述的方法,其特征在于,所述线程包括主线程和子线程,所述记录所述应用在所述时间点的应用数据,包括:
将在所述时间点,所述应用所处的业务场景、所述主线程的执行栈、所述子线程的线程信息,记录成所述应用数据。
8.根据权利要求1-7任一所述的方法,其特征在于,所述将所述应用数据发送至服务器,包括:
获取用于排除应用卡顿的白名单;
将所述应用数据与所述白名单进行匹配;
取消对与所述白名单匹配成功的应用数据的发送。
9.根据权利要求8所述的方法,其特征在于,...
【专利技术属性】
技术研发人员:陈文俊,
申请(专利权)人:广州虎牙科技有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。