ANR实时监控方法、装置、终端和存储介质制造方法及图纸

技术编号:19023244 阅读:25 留言:0更新日期:2018-09-26 19:01
本发明专利技术提供一种ANR实时监控方法,包括以下步骤:在待检测应用程序的主线程中启动接口;从所述启动接口的时间点起,经过预设时间后,检测所述接口是否接收到消息回调信息;若否,确定所述主线程发生ANR;在确定所述主线程发生ANR时,获取所述主线程的信息;根据所述主线程的信息,形成ANR关键信息;将所述ANR关键信息上传系统。通过本发明专利技术技术方案的实施,通过实时主动监控ANR,解决了由于ANR问题无法实时收集反馈,导致无法还原和修复的问题。本发明专利技术还提供了一种ANR实时监控装置、终端和存储介质。

【技术实现步骤摘要】
ANR实时监控方法、装置、终端和存储介质
本专利技术涉及计算机
,具体而言,本专利技术涉及一种ANR实时监控方法、装置、终端和存储介质。
技术介绍
在安卓系统上,当用户的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:ApplicationNotResponding)对话框。用户可以选择“等待”而让程序继续运行,或选择“强制关闭”而让程序停止运行。对此,一个流畅的合理的应用程序中不能出现ANR的问题,而让用户每次处理应用程序无响应对话框。因此,要保证系统不会向用户显示ANR问题,应用程序的设计中响应性能的设计尤为重要。但是安卓系统的开发中系统框架并未提供接口监听ANR发生的时间节点,而仅在本机“/data/anr/”目录下生成一个类似traces.txt文件,导致很多线上ANR问题无法实时采集反馈处理,最终使得ANR问题无法还原和修复,用户体验不佳。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的ANR实时监控方法、装置、终端和存储介质。第一方面,本专利技术提供一种ANR实时监控方法,包括以下步骤:在待检测应用程序的主线程中启动接口;从所述启动接口的时间点起,经过预设时间后,检测所述接口是否接收到消息回调信息;若否,确定所述主线程发生ANR;在确定所述主线程发生ANR时,获取所述主线程的信息;根据所述主线程的信息,形成ANR关键信息;将所述ANR关键信息上传系统。结合第一方面,本专利技术在第一方面的第一种实施方式中,所述在待检测应用程序的主线程中启动接口,包括以下步骤:在待检测应用程序的主线程中启动Runnable接口;采用消息回调机制,调用子线程向主线程发送消息。结合第一方面的第一种实施方式,本专利技术在第一方面的第二种实施方式中,所述从所述启动接口的时间点起,经过预设时间后,检测所述接口是否接收到消息回调信息;若否,确定所述主线程发生ANR,包括以下步骤:设置计数器在所述接口接收到消息回调信息时加1;从所述启动接口的时间点起,经过预设时间后,判断当前计数器的计数值是否有所变化,若否,确定所述主线程发生ANR。结合第一方面或结合第一方面的第二种实施方式,本专利技术在第一方面的第三种实施方式中,所述从所述启动接口的时间点起,经过预设时间后,检测所述接口是否接收到消息回调信息;若否,确定所述主线程发生ANR,还包括以下步骤:若是,返回继续所述在待检测应用程序的主线程中启动接口的步骤。结合第一方面,本专利技术在第一方面的第四种实施方式中,所述在确定所述主线程发生ANR时,获取所述主线程的信息,包括以下步骤:在发生ANR的时间点,调用子线程收集当前所述主线程的信息。结合第一方面,本专利技术在第一方面的第五种实施方式中,所述根据所述主线程的信息,形成ANR关键信息,包括以下步骤:根据所述主线程的信息中的记录信息,筛选出导致ANR的信息;将所述导致ANR的信息输出形成字符串形式的ANR关键信息。结合第一方面,本专利技术在第一方面的第六种实施方式中,所述将所述ANR关键信息上传系统,包括以下步骤:通过开发者集成的日志上传系统将所述ANR关键信息上传至服务器。结合第一方面,本专利技术在第一方面的第七种实施方式中,所述从所述启动接口的时间点起,经过预设时间后,检测所述接口是否接收到消息回调信息,包括以下步骤:检测CPU占用率;若CPU占用率在预设阈值范围内,将预定时长作为当前预设时间;若CPU占用率超出预设阈值范围,根据预设规则加长或缩短预定时长,将调整后的预定时长作为当前预设时间;确认本次所述启动接口的时间点距离当前时间的时长到达所述当前预设时间,检测所述接口是否接收到消息回调信息。第二方面,本专利技术提供一种ANR实时监控装置,包括以下模块:启动模块,用于在待检测应用程序的主线程中启动接口;确定模块,用于从所述启动接口的时间点起,经过预设时间后,检测所述接口是否接收到消息回调信息;若否,确定所述主线程发生ANR;获取模块,用于在确定所述主线程发生ANR时,获取所述主线程的信息;筛选模块,用于根据所述主线程的信息,形成ANR关键信息;上传模块,用于将所述ANR关键信息上传系统。结合第二方面,本专利技术在第二方面的第一种实施方式中,所述启动模块,包括以下单元:启动单元,用于在待检测应用程序的主线程中启动Runnable接口;调用单元,用于采用消息回调机制,调用子线程向主线程发送消息。结合第二方面的第一种实施方式,本专利技术在第二方面的第二种实施方式中,所述确定模块,包括以下单元:计数单元,用于设置计数器在所述接口接收到消息回调信息时加1;判断单元,用于从所述启动接口的时间点起,经过预设时间后,判断当前计数器的计数值是否有所变化,若否,确定所述主线程发生ANR。结合第二方面或结合第二方面的第二种实施方式,本专利技术在第二方面的第三种实施方式中,所述确定模块,还包括以下单元:循环单元,用于在判断出当前计数器的计数值有变化时,返回继续所述在待检测应用程序的主线程中启动接口的操作。结合第二方面,本专利技术在第二方面的第四种实施方式中,所述获取模块,包括以下单元:收集单元,用于在发生ANR的时间点,调用子线程收集当前所述主线程的信息。结合第二方面,本专利技术在第二方面的第五种实施方式中,所述筛选模块,包括以下单元:筛选单元,用于根据所述主线程的信息中的记录信息,筛选出导致ANR的信息;输出单元,用于将所述导致ANR的信息输出形成字符串形式的ANR关键信息。结合第二方面,本专利技术在第二方面的第六种实施方式中,所述上传模块,还用于:通过开发者集成的日志上传系统将所述ANR关键信息上传至服务器。结合第二方面,本专利技术在第二方面的第七种实施方式中,所述确定模块,包括以下单元:第一检测单元,用于检测CPU占用率;第一调整单元,用于若CPU占用率在预设阈值范围内,将预定时长作为当前预设时间;第二调整单元,若CPU占用率超出预设阈值范围,根据预设规则加长或缩短预定时长,将调整后的预定时长作为当前预设时间;第二检测单元,用于确认本次所述启动接口的时间点距离当前时间的时长到达所述当前预设时间,检测所述接口是否接收到消息回调信息。第三方面,本专利技术提供一种终端,其包括:一个或多个处理器;存储器;一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于:执行根据第一方面所述的ANR实时监控方法。第四方面,本专利技术提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现第一方面所述的ANR实时监控方法。区别于现有技术,本专利技术具有以下优势:本专利技术提供的ANR实时监控方法、装置、终端和存储介质,通过在待检测应用程序的主线程中启动接口,并通过检测在所述启动接口的时间点起经过预设时间后所述接口是否接收到消息回调信息,以判断所述待检测应用程序的主线程是否发生ANR,当确定所述主线程发生ANR时,获取所述主线程的信息,根据所述主线程的信息形成ANR关键信息并上传系统待处理。在实施过程中,其涉及实时监控、信息采集、信息分析、上传ANR关键信息等几个步骤,实现主动地实时监控ANR发生的时间点,并且将导致ANR发生的关本文档来自技高网...

【技术保护点】
1.一种ANR实时监控方法,其特征在于,包括以下步骤:在待检测应用程序的主线程中启动接口;从所述启动接口的时间点起,经过预设时间后,检测所述接口是否接收到消息回调信息;若否,确定所述主线程发生ANR;在确定所述主线程发生ANR时,获取所述主线程的信息;根据所述主线程的信息,形成ANR关键信息;将所述ANR关键信息上传系统。

【技术特征摘要】
1.一种ANR实时监控方法,其特征在于,包括以下步骤:在待检测应用程序的主线程中启动接口;从所述启动接口的时间点起,经过预设时间后,检测所述接口是否接收到消息回调信息;若否,确定所述主线程发生ANR;在确定所述主线程发生ANR时,获取所述主线程的信息;根据所述主线程的信息,形成ANR关键信息;将所述ANR关键信息上传系统。2.根据权利要求1所述的ANR实时监控方法,其特征在于,所述在待检测应用程序的主线程中启动接口,包括以下步骤:在待检测应用程序的主线程中启动Runnable接口;采用消息回调机制,调用子线程向主线程发送消息。3.根据权利要求2所述的ANR实时监控方法,其特征在于,所述从所述启动接口的时间点起,经过预设时间后,检测所述接口是否接收到消息回调信息;若否,确定所述主线程发生ANR,包括以下步骤:设置计数器在所述接口接收到消息回调信息时加1;从所述启动接口的时间点起,经过预设时间后,判断当前计数器的计数值是否有所变化,若否,确定所述主线程发生ANR。4.根据权利要求1或3所述的ANR实时监控方法,其特征在于,所述从所述启动接口的时间点起,经过预设时间后,检测所述接口是否接收到消息回调信息;若否,确定所述主线程发生ANR,还包括以下步骤:若是,返回继续所述在待检测应用程序的主线程中启动接口的步骤。5.根据权利要求1所述的ANR实时监控方法,其特征在于,所述在确定所述主线程发生ANR时,获取所述主线程的信息,包括以下步骤:在发生ANR的时间点,调用子线程收集当前所述主线程的信息。6.根据权利要求1所述的ANR实时监控方法,其特征在于,所述根据所述主线程的信息,形成ANR关键信息,包括以下步骤:根据所述主线程的信息中的记录信息,筛选出导致A...

【专利技术属性】
技术研发人员:涂勇
申请(专利权)人:广州优视网络科技有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1