CN109491860A - 应用程序的异常检测方法、终端设备及介质 - Google Patents
应用程序的异常检测方法、终端设备及介质 Download PDFInfo
- Publication number
- CN109491860A CN109491860A CN201811210992.5A CN201811210992A CN109491860A CN 109491860 A CN109491860 A CN 109491860A CN 201811210992 A CN201811210992 A CN 201811210992A CN 109491860 A CN109491860 A CN 109491860A
- Authority
- CN
- China
- Prior art keywords
- anr
- daily record
- record data
- data
- application program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明适用于信息处理技术领域,提供了一种应用程序的异常检测方法、终端设备及介质,该方法包括:根据接收到的逻辑控制指令,确定应用程序无响应ANR发生时的堆栈数据的存储目录;对所述存储目录进行监测,判断是否存在关于所述存储目录的写入事件;若存在关于所述存储目录的写入事件,则读取包含于所述存储目录中的所述堆栈数据;将所述堆栈数据发送至远程服务器,以使用户基于远程服务器中的所述堆栈数据执行ANR排查操作。本发明使得开发人员在无需手工连接出现ANR的各台终端设备的情况之下,也能够获得用于排查故障的堆栈数据,因此,降低了操作复杂度,避免了ANR堆栈信息较为分散的问题出现,由此也提高了对ANR的排查效率。
Description
技术领域
本发明属于信息处理技术领域,尤其涉及一种应用程序的异常检测方法、终端设备及计算机可读存储介质。
背景技术
对于运行于安卓系统中的应用程序,若该应用程序在一段时间内响应不够灵敏,则系统会向用户显示一个对话框,用户可以选择“等待”来让应用程序继续运行,也可以选择“强制关闭”,则这个对话框称作应用程序无响应(Application Not Responding,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排查,因此,本优选实施方式中,可根据开发人员预先录入的数据过滤条件来筛选出与该应用程序关联的堆栈数据。此时,数据过滤条件可以是应用程序的程序包名或者进程ID等。由此保证了从存储目录中所读取到的堆栈数据均为用于进行ANR排查的有效参考数据。
S104:将所述堆栈数据发送至远程服务器,以使用户基于远程服务器中的所述堆栈数据执行ANR排查操作。
本发明实施例中,根据预设的目的地址信息,将获取得到的各类堆栈数据通过无线通信模块传输至与该目标地址信息匹配的远程服务器中。其中,该远程服务器中运行有业务管理系统,当开发人员在该业务管理系统中进行登录操作后,可查看到来自于各台终端设备的堆栈数据。通过对堆栈数据进行分析处理,定位出ANR的出现原因,进而根据匹配的解决方案来实现对应用程序的异常修复及调整。
可选地,每隔预设的时间间隔,才将获取到的各类堆栈数据发送至远程服务器。
可选地,统计当前获取得到的各类堆栈数据的数据总量。仅在检测到数据总量达到预设阈值时,才将获取到的堆栈数据发送至远程服务器。
本发明实施例中,根据接收到的逻辑控制指令来预先确定用于存储ANR堆栈数据的存储目录,并对该存储目录进行写入事件的监测,保证了在终端设备出现ANR时,能够基于该存储目录的写入事件来快速确定ANR的存在;通过将关联ANR的堆栈数据上传至远程服务器,保证了开发人员即使是在应用程序的上线测试过程中,也能够实时获取得到ANR相关的待分析数据,进而能够进行应用程序异常情况的实时排查,避免了ANR排查出现滞后的问题;通过以网络传输的方式,将堆栈数据自动传输至远程服务器,使得开发人员在无需手工连接出现ANR的各台终端设备的情况之下,也能够获得用于排查故障的堆栈数据,因此,降低了操作复杂度,避免了ANR堆栈信息较为分散的问题出现,由此也提高了对ANR的排查效率。
作为本发明的一个实施例,图2示出了本发明实施例提供的应用程序的异常检测方法S104的具体实现流程,详述如下:
S1041:通过预设的应用程序编程接口,读取所述应用程序所属终端设备的设备参数。
本发明实施例中,基于安卓系统的终端设备均提供有用于读取设备参数的应用程序编程接口(Application Programming Interface,API)。若终端设备中的任一应用程序出现ANR,则触发对上述预设的API的调用,以根据API所对应的控制逻辑,获取上述终端设备的设备参数。其中,设备参数包括设备型号、系统版本、运行内存以及屏幕参数等各项软硬件参数。
S1042:将所述设备参数以及所述堆栈数据封装为ANR日志数据。
对于存储目录中所读取的每一条堆栈数据,将读取到的设备参数与该堆栈数据进行封装处理,以生成一项ANR日志数据。例如,可将设备参数添加为堆栈数据的头部信息,或者,将设备参数添加至堆栈数据的尾部。
S1043:将所述ANR日志数据发送至远程服务器,以使用户基于远程服务器中的所述ANR日志数据执行ANR排查操作。
本发明实施例中,将封装后所得到的ANR日志数据发送至远程服务器,由此使得开发人员可以基于远程服务器中的ANR日志数据来进行分析处理,从而定位出ANR的出现原因,并根据匹配的解决方案来实现对应用程序的异常修复及调整。
本发明实施例中,通过读取发生ANR的应用程序所属终端设备的设备参数,并将设备参数与堆栈数据封装为ANR日志数据之后才发送至远程服务器,使得开发人员在排查ANR的出现原因时,能够综合应用程序的参数信息以及终端设备的设备参数等多方面的因素来进行故障排查分析,避免了因设备参数问题而导致ANR故障定位错误的情况出现,因此,提高了应用程序的异常检测准确率,由此也提高了后续对于应用程序执行修复处理时的修复准确率。
作为本发明的另一个实施例,如图3所示,在上述S1043之后,还包括:
S105:加载报表模板,并读取所述报表模板中预先设置好的各项表头字段。
本发明实施例中,加载预先生成的报表模板。报表模板包含多项表头字段,每一表头字段与一表体对应,且每一表头字段用于表示ANR日志数据中的一项数据属性,每一表体用于记录数据属性所对应的具体参数值。本发明实施例中,读取当前加载的报表模板中的各项表头字段。
S106:解析所述ANR日志数据中分别与各个所述表头字段相匹配的数据值,并将解析得到的所述数据值导入至所述表头字段所对应的表体中。
本发明实施例中,根据预设的表头字段与标记位的对应关系表,确定与报表模板中的每一项表头字段相对应的标记位。对于每一表头字段所对应的标记位,在ANR日志数据中,读取与该标记位对应的属性参数,并将该属性参数导入报表模板该表头字段所对应的表体中。
例如,若报表模板中存在一表头字段为“应用程序id”字段,则从预设的对应关系表中,确定出与“应用程度id”对应的标记位。假设确定出的标记位为“APP_id”,则在对ANR日志数据进行数据包读取的过程中,解析出“APP_id”这一标记位的具体数据值,例如是“ABC”,则将该数据值“ABC”填充至报表模板中“应用程序id”字段所对应的表体中,即,“应用程序id”字段所属数据列的一个单元格中。
S107:根据导入结果生成ANR检测报告。
本发明实施例中,在将收集得到的各项ANR日志数据中的数据值分别填充至报表模板的各表体之后,上述包含各项数据值的该报表模板即为ANR检测报告。将ANR检测报告进行输出并展示。
优选地,将生成的ANR检测报告作为附件添加至当前创建的邮件中,并在预设时间到达时,将该邮件发送至指定的开发人员邮箱,以使开发人员能够根据接收到的邮件,及时发现并排除应用程序中所出现的ANR。
本发明实施例中,通过对ANR日志数据进行分析,以提取出各标志位所对应的数据值后,将其导入至预先生成的报告模板,使得最终展示的ANR检测报告能够详细列举应用程序出现ANR时的各项关联参数,便于开发人员直观地对各项数据值进行分类读取以执行故障排查,因此,提高了对ANR日志数据的处理效率,从而也提高了对ANR问题的排查效率。
作为本发明的又一个实施例,如图4所示,在上述S107之后,还包括:
S108:过滤所述ANR检测报告中重复出现的所述ANR日志数据。
本发明实施例中,对各项ANR日志数据进行去冗余处理,使得ANR检测报告中,重复出现的ANR日志数据能够得以剔除。
具体地,一条ANR日志数据是指包含有各项表头字段所对应的参数值的信息记录。若存在各项参数值均完全相同的两条信息记录,则上述两条信息记录为重复出现的ANR日志数据。此时,将重复出现的ANR日志数据进行删除处理,仅保留其中的一条ANR日志数据,由此保证了更新后的ANR检测报告中不会出现完全相同的任意两条ANR日志数据。
优选地,将关联同一进程ID或者关联同一程序包名的各项ANR日志数据进行合并,以使得用户能够基于合并后的一项ANR日志数据来直观直接读取发生ANR的应用程序所关联的所有参数信息。
S109:对于过滤后所得到的每一项所述ANR日志数据,获取用户输入的与该项ANR日志数据匹配的异常检测结果。
对于上述处理后所得到的每一项ANR日志数据,确定与该ANR日志数据关联的应用程序。在开发人员对该ANR日志数据进行分析后,可定位出应用程序中所存在的程序漏洞或者其他问题。此时,在预设的多个异常检测结果选项值中,根据开发人员发出的选择指令,获取与上述程序漏洞或者其他问题相匹配的异常检测结果,并将该异常检测结果与该项ANR日志数据绑定存储至信息库中。
S110:若在下一次生成的所述ANR检测报告中再次检测到该项ANR日志数据存在,则将所述ANR日志数据所匹配的所述异常检测结果作为初步检测结果,并对所述初步检测结果进行展示。
本发明实施例中,当检测到下一时刻所生成的ANR检测报告时,对于该ANR检测报告中的每一项ANR日志数据,判断其是否存在于上述预设的信息库中。若该项ANR日志数据存在于上述预设的信息库中,则读取与该ANR日志数据绑定的异常检测结果,并将该异常检测结果同步展示于ANR检测报告中该项ANR日志数据的关联区域。
本发明实施例中,通过过滤ANR检测报告中重复出现的ANR日志数据,避免了后续用户需要对相同的ANR日志数据进行重复分析处理,因而降低了在应用程序异常检测过程中的操作繁琐度;通过获取用户输入的与每一项ANR日志数据相匹配的异常检测结果,并对其进行记录,保证了在再次检测到该项ANR日志数据存在时,能够快速展示并输出其对应的异常检测结果,使得开发人员能够基于当前的展示结果来执行应用程序ANR问题的初步诊断,从当前所展示的初步检测结果来执行有目的、有方向性的定向检测,避免需要从多角度下手进行ANR故障排查,因此,提高了对应用程序的异常检测效率。
作为本发明的一个实施例,图5示出了本发明实施例提供的应用程序的异常检测方法S110的具体实现流程,详述如下:
S1101:获取用户输入的与各项所述ANR日志数据相对应的异常响应策略,所述异常响应策略包括用于修复所述应用程序的执行脚本。
对于ANR检测报告中的每一项ANR日志数据,在获取用户输入的与该ANR日志数据匹配的异常检测结果后,请求用户输入与该ANR日志数据对应的异常响应策略。其中,异常响应策略包括用于修复应用程序的执行脚本,则该应用程序为ANR日志数据所关联的应用程序。
对于接收到的每一异常响应策略,为该异常响应策略命名一对应的标识符,并将该标识符与其对应的ANR日志数据进行绑定存储;同时,以该标识符命名异常响应策略所匹配的执行脚本,并存储该执行脚本。
S1102:基于多个训练样本,构建并训练神经网络模型,所述训练样本包括所述ANR日志数据、所述异常检测结果以及所述异常响应策略。
本发明实施例中,获取预先存储的多个训练样本,每一个训练样本包括一项ANR日志数据及其对应的异常检测结果以及异常响应策略。基于上述多个训练样本,构建并训练神经网络模型。其中,以训练样本中的ANR日志数据为神经网络模型训练过程中的输入值,以异常检测结果以及异常响应策略为神经网络模型训练过程中的预测输出值,对神经网络模型的模型参数调整。当神经网络模型的实际输出值与预测输出值的损失值达到最优值时,确定神经网络模型训练完成。
优选地,上述训练样本还可以包括程序函数,该程序函数为与ANR日志数据关联的应用程序所调用的程序函数。
S1103:对于下一次生成的所述ANR检测报告中的所述ANR日志数据,通过所述神经网络模型对该ANR日志数据进行分析处理,输出与该ANR日志数据匹配的所述异常检测结果以及所述异常响应策略。
本发明实施例中,当检测到下一时刻所生成的ANR检测报告时,对于该ANR检测报告中的每一项ANR日志数据,将该ANR日志数据输入上述训练完成后的神经网络模型,以使神经网络模型对该ANR日志进行识别处理后,输出与该ANR日志数据匹配的异常检测结果以及异常响应策略。其中,神经网络模型输出的异常响应策略包括其标识符以及关联的执行脚本。
示例性地,若ANR检测报告中所存在的一项ANR日志数据中包括有应用程序ID、日志关键词以及错误提示信息,则将其输入神经网络模型后,可输出与该ANR日志数据匹配的异常检测结果为“登陆模块调用错误”,且匹配的异常响应策略为“重新加载登陆模块”。
S1104:若检测到关于所述异常检测结果的确认指令,则基于所述异常响应策略修复该项ANR日志数据所关联的所述应用程序。
本发明实施例中,将神经网络模型所输出的异常检测结果展示于ANR检测报告中,以使开发人员查看ANR日志数据所对应的异常检测结果后,判断该异常检测结果是否与实际排查结果相符。若该异常检测结果与实际排查结果相符,则接收开发人员发出的关于该异常检测结果的确认指令。此时,加载同神经网络模型输出的异常响应策略。通过运行异常响应策略所包含的执行脚本,实现对该ANR日志数据所关联的应用程序的程序修复。
本发明实施例中,通过以ANR日志数据、异常检测结果以及异常响应策略来作为训练样本构建并训练神经网络模型,使得后续在检测到任一ANR日志数据出现时,能够利用神经网络模型来迅速定位出其关联的应用程序出现ANR的原因,进而为开发人员提供快速有效的参考意见;在接收到开发人员发出的关于异常检测结果的确认指令时,通过执行神经网络模型所确定出的异常响应策略,保证了基于异常响应策略所包含的执行脚本,能够对ANR日志数据所关联的应用程序进行漏洞的自动修复,避免了开发人员需要重复输入脚本代码,因此,提高了应用程序的修复效率,由此也降低了操作复杂度。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
对应于上文实施例所述的应用程序的异常检测方法,图6示出了本发明实施例提供的应用程序的异常检测装置的结构框图。为了便于说明,仅示出了与本发明实施例相关的部分。
参照图6,该应用程序的异常检测装置包括:
确定单元61,用于根据接收到的逻辑控制指令,确定应用程序无响应ANR发生时的堆栈数据的存储目录。
检测单元62,用于对所述存储目录进行监测,判断是否存在关于所述存储目录的写入事件。
读取单元63,用于若存在关于所述存储目录的写入事件,则读取包含于所述存储目录中的所述堆栈数据。
发送单元64,用于将所述堆栈数据发送至远程服务器,以使用户基于远程服务器中的所述堆栈数据执行ANR排查操作。
可选地,所述发送单元64包括:
获取子单元,用于通过预设的应用程序编程接口,读取所述应用程序所属终端设备的设备参数。
封装子单元,用于将所述设备参数以及所述堆栈数据封装为ANR日志数据。
发送子单元,用于将所述ANR日志数据发送至远程服务器,以使用户基于远程服务器中的所述ANR日志数据执行ANR排查操作。
可选地,所述应用程序的异常检测装置还包括:
加载单元,用于加载报表模板,并读取所述报表模板中预先设置好的各项表头字段。
解析单元,用于解析所述ANR日志数据中分别与各个所述表头字段相匹配的数据值,并将解析得到的所述数据值导入至所述表头字段所对应的表体中。
生成单元,用于根据导入结果生成ANR检测报告。
可选地,所述应用程序的异常检测装置还包括:
过滤单元,用于过滤所述ANR检测报告中重复出现的所述ANR日志数据。
获取单元,用于对于过滤后所得到的每一项所述ANR日志数据,获取用户输入的与该项ANR日志数据匹配的异常检测结果。
展示单元,用于若在下一次生成的所述ANR检测报告中再次检测到该项ANR日志数据存在,则将所述ANR日志数据所匹配的所述异常检测结果作为初步检测结果,并对所述初步检测结果进行展示。
可选地,所述展示单元具体用于:
获取用户输入的与各项所述ANR日志数据相对应的异常响应策略,所述异常响应策略包括用于修复所述应用程序的执行脚本;
基于多个训练样本,构建并训练神经网络模型,所述训练样本包括所述ANR日志数据、所述异常检测结果以及所述异常响应策略;
对于下一次生成的所述ANR检测报告中的所述ANR日志数据,通过所述神经网络模型对该ANR日志数据进行分析处理,输出与该ANR日志数据匹配的所述异常检测结果以及所述异常响应策略;
若检测到关于所述异常检测结果的确认指令,则基于所述异常响应策略修复该项ANR日志数据所关联的所述应用程序。
本发明实施例中,根据接收到的逻辑控制指令来预先确定用于存储ANR堆栈数据的存储目录,并对该存储目录进行写入事件的监测,保证了在终端设备出现ANR时,能够基于该存储目录的写入事件来快速确定ANR的存在;通过将关联ANR的堆栈数据上传至远程服务器,保证了开发人员即使是在应用程序的上线测试过程中,也能够实时获取得到ANR相关的待分析数据,进而能够进行应用程序异常情况的实时排查,避免了ANR排查出现滞后的问题;通过以网络传输的方式,将堆栈数据自动传输至远程服务器,使得开发人员在无需手工连接出现ANR的各台终端设备的情况之下,也能够获得用于排查故障的堆栈数据,因此,降低了操作复杂度,避免了ANR堆栈信息较为分散的问题出现,由此也提高了对ANR的排查效率。
图7是本发明一实施例提供的终端设备的示意图。如图7所示,该实施例的终端设备7包括:处理器70、存储器71以及存储在所述存储器71中并可在所述处理器70上运行的计算机程序72,例如应用程序的异常检测程序。所述处理器70执行所述计算机程序72时实现上述各个应用程序的异常检测方法实施例中的步骤,例如图1所示的步骤101至104。或者,所述处理器70执行所述计算机程序72时实现上述各装置实施例中各模块/单元的功能,例如图6所示单元61至64的功能。
示例性的,所述计算机程序72可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器71中,并由所述处理器70执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序72在所述终端设备7中的执行过程。
所述终端设备7可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器70、存储器71。本领域技术人员可以理解,图7仅仅是终端设备7的示例,并不构成对终端设备7的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器70可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器71可以是所述终端设备7的内部存储单元,例如终端设备7的硬盘或内存。所述存储器71也可以是所述终端设备7的外部存储设备,例如所述终端设备7上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器71还可以既包括所述终端设备7的内部存储单元也包括外部存储设备。所述存储器71用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器71还可以用于暂时地存储已经输出或者将要输出的数据。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
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日志数据,通过所述神经网络模型对该ANR日志数据进行分析处理,输出与该ANR日志数据匹配的所述异常检测结果以及所述异常响应策略;
若检测到关于所述异常检测结果的确认指令,则基于所述异常响应策略修复该项ANR日志数据所关联的所述应用程序。
6.一种终端设备,包括存储器以及处理器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如下步骤:
根据接收到的逻辑控制指令,确定应用程序无响应ANR发生时的堆栈数据的存储目录;
对所述存储目录进行监测,判断是否存在关于所述存储目录的写入事件;
若存在关于所述存储目录的写入事件,则读取包含于所述存储目录中的所述堆栈数据;
将所述堆栈数据发送至远程服务器,以使用户基于远程服务器中的所述堆栈数据执行ANR排查操作。
7.如权利要求6所述的终端设备,其特征在于,所述将所述堆栈数据发送至远程服务器,以使用户基于远程服务器中的所述堆栈数据执行ANR排查操作,包括:
通过预设的应用程序编程接口,读取所述应用程序所属终端设备的设备参数;
将所述设备参数以及所述堆栈数据封装为ANR日志数据;
将所述ANR日志数据发送至远程服务器,以使用户基于远程服务器中的所述ANR日志数据执行ANR排查操作。
8.如权利要求7所述的终端设备,其特征在于,所述处理器执行所述计算机程序时还实现如下步骤:
加载报表模板,并读取所述报表模板中预先设置好的各项表头字段;
解析所述ANR日志数据中分别与各个所述表头字段相匹配的数据值,并将解析得到的所述数据值导入至所述表头字段所对应的表体中;
根据导入结果生成ANR检测报告。
9.如权利要求8所述的终端设备,其特征在于,所述处理器执行所述计算机程序时还实现如下步骤:
过滤所述ANR检测报告中重复出现的所述ANR日志数据;
对于过滤后所得到的每一项所述ANR日志数据,获取用户输入的与该项ANR日志数据匹配的异常检测结果;
若在下一次生成的所述ANR检测报告中再次检测到该项ANR日志数据存在,则将所述ANR日志数据所匹配的所述异常检测结果作为初步检测结果,并对所述初步检测结果进行展示。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811210992.5A CN109491860A (zh) | 2018-10-17 | 2018-10-17 | 应用程序的异常检测方法、终端设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811210992.5A CN109491860A (zh) | 2018-10-17 | 2018-10-17 | 应用程序的异常检测方法、终端设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109491860A true CN109491860A (zh) | 2019-03-19 |
Family
ID=65691342
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811210992.5A Pending CN109491860A (zh) | 2018-10-17 | 2018-10-17 | 应用程序的异常检测方法、终端设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109491860A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110245077A (zh) * | 2019-05-22 | 2019-09-17 | 深圳壹账通智能科技有限公司 | 一种程序异常的响应方法及设备 |
CN110704390A (zh) * | 2019-09-17 | 2020-01-17 | 平安科技(深圳)有限公司 | 获取服务器维护脚本的方法、装置、电子设备及介质 |
CN111737431A (zh) * | 2020-06-19 | 2020-10-02 | 海尔优家智能科技(北京)有限公司 | 设备异常的处理方法及装置、存储介质、电子装置 |
CN111784375A (zh) * | 2019-04-04 | 2020-10-16 | 北京嘀嘀无限科技发展有限公司 | 用户类型识别方法、装置、电子设备和存储介质 |
CN112286949A (zh) * | 2020-11-20 | 2021-01-29 | 深圳市和讯华谷信息技术有限公司 | 应用列表更新方法、装置、计算机设备及存储介质 |
CN112905399A (zh) * | 2021-01-29 | 2021-06-04 | 北京紫光展锐通信技术有限公司 | 数据处理方法、异常情况预测方法及相关产品 |
WO2021174835A1 (zh) * | 2020-03-04 | 2021-09-10 | 平安科技(深圳)有限公司 | 告警信息处理方法、装置、计算机装置及存储介质 |
CN113626227A (zh) * | 2020-05-06 | 2021-11-09 | 深圳Tcl新技术有限公司 | 一种异常日志信息上报方法、智能终端及存储介质 |
CN115686899A (zh) * | 2022-10-12 | 2023-02-03 | 深圳市华曦达科技股份有限公司 | 一种终端异常捕获分析方法和装置 |
WO2024060767A1 (zh) * | 2022-09-20 | 2024-03-28 | 华为云计算技术有限公司 | 异常检测方法及相关装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104978212A (zh) * | 2014-05-16 | 2015-10-14 | 腾讯科技(深圳)有限公司 | 一种未知crash上报方法和装置 |
CN105528295A (zh) * | 2016-01-04 | 2016-04-27 | 北京航空航天大学 | 移动应用程序异常行为检测方法及装置 |
CN105653444A (zh) * | 2015-12-23 | 2016-06-08 | 北京大学 | 基于互联网日志数据的软件缺陷故障识别方法和系统 |
CN106230987A (zh) * | 2016-09-21 | 2016-12-14 | 南方电网科学研究院有限责任公司 | 一种基于电力PaaS云平台的信息集成系统及方法 |
US20170078164A1 (en) * | 2015-09-14 | 2017-03-16 | International Business Machines Corporation | I/o stack modeling for problem diagnosis and optimization |
CN107273263A (zh) * | 2017-05-26 | 2017-10-20 | 努比亚技术有限公司 | 一种异常运行的分析方法、应用终端及监控服务器 |
CN107632901A (zh) * | 2017-09-25 | 2018-01-26 | 青岛海信移动通信技术股份有限公司 | 一种应用程序运行异常的自修复方法及装置 |
CN107979851A (zh) * | 2017-12-01 | 2018-05-01 | 青岛海信移动通信技术股份有限公司 | 异常数据上报方法及装置 |
CN108491320A (zh) * | 2018-03-05 | 2018-09-04 | 平安普惠企业管理有限公司 | 应用程序的异常分析方法、装置、计算机设备和存储介质 |
-
2018
- 2018-10-17 CN CN201811210992.5A patent/CN109491860A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104978212A (zh) * | 2014-05-16 | 2015-10-14 | 腾讯科技(深圳)有限公司 | 一种未知crash上报方法和装置 |
US20170078164A1 (en) * | 2015-09-14 | 2017-03-16 | International Business Machines Corporation | I/o stack modeling for problem diagnosis and optimization |
CN105653444A (zh) * | 2015-12-23 | 2016-06-08 | 北京大学 | 基于互联网日志数据的软件缺陷故障识别方法和系统 |
CN105528295A (zh) * | 2016-01-04 | 2016-04-27 | 北京航空航天大学 | 移动应用程序异常行为检测方法及装置 |
CN106230987A (zh) * | 2016-09-21 | 2016-12-14 | 南方电网科学研究院有限责任公司 | 一种基于电力PaaS云平台的信息集成系统及方法 |
CN107273263A (zh) * | 2017-05-26 | 2017-10-20 | 努比亚技术有限公司 | 一种异常运行的分析方法、应用终端及监控服务器 |
CN107632901A (zh) * | 2017-09-25 | 2018-01-26 | 青岛海信移动通信技术股份有限公司 | 一种应用程序运行异常的自修复方法及装置 |
CN107979851A (zh) * | 2017-12-01 | 2018-05-01 | 青岛海信移动通信技术股份有限公司 | 异常数据上报方法及装置 |
CN108491320A (zh) * | 2018-03-05 | 2018-09-04 | 平安普惠企业管理有限公司 | 应用程序的异常分析方法、装置、计算机设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
博客园: "Android ANR log trace日志文件分析", 《HTTPS://WWW.CNBLOGS.COM/CHENXIBOBO/P/9586035.HTML》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111784375A (zh) * | 2019-04-04 | 2020-10-16 | 北京嘀嘀无限科技发展有限公司 | 用户类型识别方法、装置、电子设备和存储介质 |
CN110245077A (zh) * | 2019-05-22 | 2019-09-17 | 深圳壹账通智能科技有限公司 | 一种程序异常的响应方法及设备 |
CN110704390A (zh) * | 2019-09-17 | 2020-01-17 | 平安科技(深圳)有限公司 | 获取服务器维护脚本的方法、装置、电子设备及介质 |
WO2021051567A1 (zh) * | 2019-09-17 | 2021-03-25 | 平安科技(深圳)有限公司 | 获取服务器维护脚本的方法、装置、电子设备及计算机非易失性可读存储介质 |
CN110704390B (zh) * | 2019-09-17 | 2024-05-24 | 平安科技(深圳)有限公司 | 获取服务器维护脚本的方法、装置、电子设备及介质 |
WO2021174835A1 (zh) * | 2020-03-04 | 2021-09-10 | 平安科技(深圳)有限公司 | 告警信息处理方法、装置、计算机装置及存储介质 |
CN113626227A (zh) * | 2020-05-06 | 2021-11-09 | 深圳Tcl新技术有限公司 | 一种异常日志信息上报方法、智能终端及存储介质 |
CN111737431A (zh) * | 2020-06-19 | 2020-10-02 | 海尔优家智能科技(北京)有限公司 | 设备异常的处理方法及装置、存储介质、电子装置 |
CN111737431B (zh) * | 2020-06-19 | 2024-03-22 | 海尔优家智能科技(北京)有限公司 | 设备异常的处理方法及装置、存储介质、电子装置 |
CN112286949B (zh) * | 2020-11-20 | 2024-05-17 | 深圳市和讯华谷信息技术有限公司 | 应用列表更新方法、装置、计算机设备及存储介质 |
CN112286949A (zh) * | 2020-11-20 | 2021-01-29 | 深圳市和讯华谷信息技术有限公司 | 应用列表更新方法、装置、计算机设备及存储介质 |
CN112905399A (zh) * | 2021-01-29 | 2021-06-04 | 北京紫光展锐通信技术有限公司 | 数据处理方法、异常情况预测方法及相关产品 |
WO2024060767A1 (zh) * | 2022-09-20 | 2024-03-28 | 华为云计算技术有限公司 | 异常检测方法及相关装置 |
CN115686899A (zh) * | 2022-10-12 | 2023-02-03 | 深圳市华曦达科技股份有限公司 | 一种终端异常捕获分析方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109491860A (zh) | 应用程序的异常检测方法、终端设备及介质 | |
US10545856B2 (en) | Test case generation system | |
CN108108297A (zh) | 自动化测试的方法和装置 | |
CN109189665B (zh) | 数据录制、数据回放和自动测试的方法及装置 | |
CN109062780B (zh) | 自动化测试用例的开发方法及终端设备 | |
CN105283849B (zh) | 针对性能和细节的并行跟踪 | |
CN107133174A (zh) | 测试用例代码自动生成装置与方法 | |
CN107102947B (zh) | Atm交易流程测试装置及方法 | |
CN111552633A (zh) | 接口的异常调用测试方法、装置、计算机设备及存储介质 | |
CN107239389A (zh) | 一种在混合app中确定用户操作记录的方法及装置 | |
CN111831542B (zh) | Api应用调测方法及装置、存储介质 | |
CN109857630A (zh) | 代码检测方法、系统及设备 | |
CN111258881B (zh) | 一种用于工作流程测试的智能测试系统 | |
CN106126551A (zh) | 一种Hbase数据库访问日志的生成方法、装置及系统 | |
CN114880240B (zh) | 一种物联网设备自动化测试系统、方法、存储介质及设备 | |
CN109460307A (zh) | 基于日志埋点的微服务调用跟踪方法及其系统 | |
CN110245077A (zh) | 一种程序异常的响应方法及设备 | |
CN109271315A (zh) | 脚本代码检测方法、装置、计算机设备及存储介质 | |
CN110610376A (zh) | 行为数据的响应方法、装置、计算机设备及存储介质 | |
CN114116801A (zh) | 数据清单核查方法及装置 | |
CN107368500A (zh) | 数据抽取方法及系统 | |
CN117194242A (zh) | 交易系统的日志回放方法及其装置、电子设备、存储介质 | |
CN109992614B (zh) | 数据获取方法、装置和服务器 | |
US11892941B2 (en) | Self-learning application test automation | |
Scherr et al. | Establishing Continuous App Improvement by Considering Heterogenous Data Sources. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190319 |