应用程序的异常检测方法、终端设备及介质技术

技术编号:20622092 阅读:26 留言:0更新日期:2019-03-20 14:13
本发明专利技术适用于信息处理技术领域,提供了一种应用程序的异常检测方法、终端设备及介质,该方法包括:根据接收到的逻辑控制指令,确定应用程序无响应ANR发生时的堆栈数据的存储目录;对所述存储目录进行监测,判断是否存在关于所述存储目录的写入事件;若存在关于所述存储目录的写入事件,则读取包含于所述存储目录中的所述堆栈数据;将所述堆栈数据发送至远程服务器,以使用户基于远程服务器中的所述堆栈数据执行ANR排查操作。本发明专利技术使得开发人员在无需手工连接出现ANR的各台终端设备的情况之下,也能够获得用于排查故障的堆栈数据,因此,降低了操作复杂度,避免了ANR堆栈信息较为分散的问题出现,由此也提高了对ANR的排查效率。

Application anomaly detection, terminal equipment and media

The invention is applicable to the field of information processing technology, and provides an application program anomaly detection method, terminal equipment and media. The method includes: determining the storage directory of stack data when the application program does not respond to ANR according to the received logical control instructions; monitoring the storage directory to determine whether there is a writing event about the storage directory; and When there is a write event about the storage directory, the stack data contained in the storage directory is read, and the stack data is sent to the remote server to enable the user to perform ANR checking operation based on the stack data in the remote server. The invention enables developers to obtain stack data for troubleshooting without manually connecting various terminal devices of ANR. Therefore, the operation complexity is reduced, the problem of scattered ANR stack information is avoided, and the efficiency of ANR checking is improved.

【技术实现步骤摘要】
应用程序的异常检测方法、终端设备及介质
本专利技术属于信息处理
,尤其涉及一种应用程序的异常检测方法、终端设备及计算机可读存储介质。
技术介绍
对于运行于安卓系统中的应用程序,若该应用程序在一段时间内响应不够灵敏,则系统会向用户显示一个对话框,用户可以选择“等待”来让应用程序继续运行,也可以选择“强制关闭”,则这个对话框称作应用程序无响应(ApplicationNotResponding,ANR)对话框。当某一终端上的应用程序出现ANR之后,开发人员通常都需要去定位ANR出现的原因,进而来对该应用程序进行修复处理。通常来说,ANR发生以后,终端所产生的堆栈信息会被系统保存在该终端内部的指定目录之下。开发人员通过数据线分别连接各个终端后,可得到来源于各个终端的ANR堆栈信息。可见,现有的ARN堆栈信息较为分散,由此导致了ANR的排查方法存在操作复杂度较高的问题。
技术实现思路
有鉴于此,本专利技术实施例提供了一种应用程序的异常检测方法、终端设备及计算机可读存储介质,以解决现有技术中ANR的排查方法存在操作复杂度较高的问题。本专利技术实施例的第一方面提供了一种应用程序的异常检测方法,包括:根据接收到的逻辑控制指令,确定应用程序无响应ANR发生时的堆栈数据的存储目录;对所述存储目录进行监测,判断是否存在关于所述存储目录的写入事件;若存在关于所述存储目录的写入事件,则读取包含于所述存储目录中的所述堆栈数据;将所述堆栈数据发送至远程服务器,以使用户基于远程服务器中的所述堆栈数据执行ANR排查操作。本专利技术实施例的第二方面提供了一种终端设备,包括存储器以及处理器,所述存储器存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下步骤:根据接收到的逻辑控制指令,确定应用程序无响应ANR发生时的堆栈数据的存储目录;对所述存储目录进行监测,判断是否存在关于所述存储目录的写入事件;若存在关于所述存储目录的写入事件,则读取包含于所述存储目录中的所述堆栈数据;将所述堆栈数据发送至远程服务器,以使用户基于远程服务器中的所述堆栈数据执行ANR排查操作。本专利技术实施例的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:根据接收到的逻辑控制指令,确定应用程序无响应ANR发生时的堆栈数据的存储目录;对所述存储目录进行监测,判断是否存在关于所述存储目录的写入事件;若存在关于所述存储目录的写入事件,则读取包含于所述存储目录中的所述堆栈数据;将所述堆栈数据发送至远程服务器,以使用户基于远程服务器中的所述堆栈数据执行ANR排查操作。本专利技术实施例中,根据接收到的逻辑控制指令来预先确定用于存储ANR堆栈数据的存储目录,并对该存储目录进行写入事件的监测,保证了在终端设备出现ANR时,能够基于该存储目录的写入事件来快速确定ANR的存在;通过将关联ANR的堆栈数据上传至远程服务器,保证了开发人员即使是在应用程序的上线测试过程中,也能够实时获取得到ANR相关的待分析数据,进而能够进行应用程序异常情况的实时排查,避免了ANR排查出现滞后的问题;通过以网络传输的方式,将堆栈数据自动传输至远程服务器,使得开发人员在无需手工连接出现ANR的各台终端设备的情况之下,也能够获得用于排查故障的堆栈数据,因此,降低了操作复杂度,避免了ANR堆栈信息较为分散的问题出现,由此也提高了对ANR的排查效率。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例提供的应用程序的异常检测方法的实现流程图;图2是本专利技术实施例提供的应用程序的异常检测方法S104的具体实现流程图;图3是本专利技术另一实施例提供的应用程序的异常检测方法的实现流程图;图4是本专利技术又一实施例提供的应用程序的异常检测方法的实现流程图;图5是本专利技术又一实施例提供的应用程序的异常检测方法S110的具体实现流程图图6是本专利技术实施例提供的应用程序的异常检测装置的结构框图;图7是本专利技术实施例提供的终端设备的示意图。具体实施方式以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本专利技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本专利技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本专利技术的描述。为了说明本专利技术所述的技术方案,下面通过具体实施例来进行说明。图1示出了本专利技术实施例提供的应用程序的异常检测方法的实现流程,该方法流程包括步骤S101至S104。各步骤的具体实现原理如下:S101:根据接收到的逻辑控制指令,确定应用程序无响应ANR发生时的堆栈数据的存储目录。本专利技术实施例中,在安卓系统内部预置有用于响应性能而设计的控制逻辑。基于上述控制逻辑可确定出一个专门用于存储ANR发生时的堆栈数据的存储目录。在初始状态下,该存储目录为/data/anr/。此时,应用程序发生ANR时所产生的crush堆栈数据将被自动存放于该应用程序所属本地终端设备的文件夹/data/anr/中。优选地,若接收到开发人员输入的逻辑控制指令,则可对上述ANR发生时的堆栈数据的存储目录进行更改,以自定义与该逻辑控制指令关联的存储目录,从而实现对crush堆栈数据的存储目录的灵活调整。S102:对所述存储目录进行监测,判断是否存在关于所述存储目录的写入事件。本专利技术实施例中,通过内置的FileObserver监听器,对上述确定出的存储目录进行监听,以检测该存储目录中是否出现与文件创建、修改、删除以及移动等操作相关的各类写入事件。具体地,获取预先定义的关于写入事件(CLOSE_WRITE事件)的函数。若通过FileObserver监听器检测到CLOSE_WRITE事件的回调信息,则确定存在关于上述确定出的存储目录的写入事件,即,确定应用程序所属终端设备发生ANR。此时,执行步骤S103。在任一时刻,若通过FileObserver监听器未检测到CLOSE_WRITE事件的回调信息,则确定当前时刻不存在关于上述存储目录的写入事件,终端设备未出现ANR。此时,返回执行S102,以持续对存储目录进行监测。S103:若存在关于所述存储目录的写入事件,则读取包含于所述存储目录中的所述堆栈数据。本专利技术实施例中,若存在关于存储目录的写入时间,则对该存储目录进行遍历处理,以读取该存储目录中所出现的各类堆栈数据。优选地,在读取存储目录中所出现的各类堆栈数据之后,还包括:加载开发人员预先录入于终端设备的数据过滤条件;基于上述数据过滤条件对读取到的堆栈数据进行筛选,以得到满足该数据过滤条件的堆栈数据。在一具体实现场景中,由于运行于终端设备中的各个应用程序都可能发生ANR,每一应用程序发生ANR时所关联产生的堆栈数据均会存储至上述预先选定的同一个存储目录中。然而,开发人员通常只需对自己所负责开发的一个应用程序进行ANR排查,因此,本优选实施方式中,可根据开发人员预先录本文档来自技高网...

【技术保护点】
1.一种应用程序的异常检测方法,其特征在于,包括:根据接收到的逻辑控制指令,确定应用程序无响应ANR发生时的堆栈数据的存储目录;对所述存储目录进行监测,判断是否存在关于所述存储目录的写入事件;若存在关于所述存储目录的写入事件,则读取包含于所述存储目录中的所述堆栈数据;将所述堆栈数据发送至远程服务器,以使用户基于远程服务器中的所述堆栈数据执行ANR排查操作。

【技术特征摘要】
1.一种应用程序的异常检测方法,其特征在于,包括:根据接收到的逻辑控制指令,确定应用程序无响应ANR发生时的堆栈数据的存储目录;对所述存储目录进行监测,判断是否存在关于所述存储目录的写入事件;若存在关于所述存储目录的写入事件,则读取包含于所述存储目录中的所述堆栈数据;将所述堆栈数据发送至远程服务器,以使用户基于远程服务器中的所述堆栈数据执行ANR排查操作。2.如权利要求1所述的异常检测方法,其特征在于,所述将所述堆栈数据发送至远程服务器,以使用户基于远程服务器中的所述堆栈数据执行ANR排查操作,包括:通过预设的应用程序编程接口,读取所述应用程序所属终端设备的设备参数;将所述设备参数以及所述堆栈数据封装为ANR日志数据;将所述ANR日志数据发送至远程服务器,以使用户基于远程服务器中的所述ANR日志数据执行ANR排查操作。3.如权利要求2所述的异常检测方法,其特征在于,还包括:加载报表模板,并读取所述报表模板中预先设置好的各项表头字段;解析所述ANR日志数据中分别与各个所述表头字段相匹配的数据值,并将解析得到的所述数据值导入至所述表头字段所对应的表体中;根据导入结果生成ANR检测报告。4.如权利要求3所述的异常检测方法,其特征在于,还包括:过滤所述ANR检测报告中重复出现的所述ANR日志数据;对于过滤后所得到的每一项所述ANR日志数据,获取用户输入的与该项ANR日志数据匹配的异常检测结果;若在下一次生成的所述ANR检测报告中再次检测到该项ANR日志数据存在,则将所述ANR日志数据所匹配的所述异常检测结果作为初步检测结果,并对所述初步检测结果进行展示。5.如权利要求4所述的异常检测方法,其特征在于,所述若在下一次生成的所述ANR检测报告中再次检测到该项ANR日志数据存在,则将所述ANR日志数据所匹配的所述异常检测结果作为初步检测结果,并对所述初步检测结果进行展示,包括:获取用户输入的与各项所述ANR日志数据相对应的异常响应策略,所述异常响应策略包括用于修复所述应用程序的执行脚本;基于多个训练样本,构建并训练神经网络模型,所述训练样本包括所述ANR日志数据、所述异常检测结果以及所述异常响应策略;对于下一次生成的所述ANR检测报告中的所述ANR日志数据,通过所述神经网...

【专利技术属性】
技术研发人员:薛静
申请(专利权)人:深圳壹账通智能科技有限公司
类型:发明
国别省市:广东,44

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

1