CN109408261A - 应用程序崩溃处理方法、装置、计算机设备和存储介质 - Google Patents

应用程序崩溃处理方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN109408261A
CN109408261A CN201811122015.XA CN201811122015A CN109408261A CN 109408261 A CN109408261 A CN 109408261A CN 201811122015 A CN201811122015 A CN 201811122015A CN 109408261 A CN109408261 A CN 109408261A
Authority
CN
China
Prior art keywords
collapse
application program
crash
state
interception
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.)
Granted
Application number
CN201811122015.XA
Other languages
English (en)
Other versions
CN109408261B (zh
Inventor
林纯弟
唐杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Property and Casualty Insurance Company of China Ltd
Original Assignee
Ping An Property and Casualty Insurance Company of China Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Property and Casualty Insurance Company of China Ltd filed Critical Ping An Property and Casualty Insurance Company of China Ltd
Priority to CN201811122015.XA priority Critical patent/CN109408261B/zh
Publication of CN109408261A publication Critical patent/CN109408261A/zh
Application granted granted Critical
Publication of CN109408261B publication Critical patent/CN109408261B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Abstract

本申请涉及一种应用程序崩溃处理方法、装置、计算机设备和存储介质。所述方法包括:在启动应用程序时,对所述应用程序进行崩溃拦截需求检测处理;当检测到针对所述应用程序具有崩溃拦截需求时,则在所述应用程序启动过程中,加载针对所述应用程序的崩溃拦截器;当所述应用程序在运行过程中发生崩溃时,则通过所述崩溃拦截器拦截所述应用程序崩溃时产生的崩溃信息,并保持所述应用程序继续运行;根据拦截的所述崩溃信息进行崩溃原因分析处理。采用本方法能够提高对应用程序的使用效率。

Description

应用程序崩溃处理方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种应用程序崩溃处理方法、装置、计算机设备和存储介质。
背景技术
随着科学技术的飞速发展,应用程序的种类和功能日益丰富。在人们的日常工作、学习和生活中,经常需要下载各种各样的应用程序至终端来处理相应事情。然而,应用程序在运行过程中,难免会有些功能出现异常崩溃。
传统方法中,应用程序出现异常崩溃时,会弹出一个运行停止的对话框,然后该对话框会触发强制结束掉应用程序。这样一来,就需要再重新加载应用程序。而应用程序在每次重新加载应用程序的时候都需要耗费一定的时间,用户需要等待应用程序重新加载启动完毕后,才能继续使用应用程序,这样一来,造成应用程序的使用效率比较低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高应用程序的使用效率的应用程序崩溃处理方法、装置、计算机设备和存储介质。
一种应用程序崩溃处理方法,所述方法包括:
在启动应用程序时,对所述应用程序进行崩溃拦截需求检测处理;
当检测到针对所述应用程序具有崩溃拦截需求时,则
在所述应用程序启动过程中,加载针对所述应用程序的崩溃拦截器;
当所述应用程序在运行过程中发生崩溃时,则通过所述崩溃拦截器拦截所述应用程序崩溃时产生的崩溃信息,并保持所述应用程序继续运行;
根据拦截的所述崩溃信息进行崩溃原因分析处理。
在其中一个实施例中,所述在启动应用程序时,对所述应用程序进行崩溃拦截需求检测处理包括:
在启动应用程序时,确定崩溃捕获开关的状态;
当所述崩溃捕获开关处于开启状态时,则判定针对所述应用程序具有崩溃拦截需求;
当所述崩溃捕获开关处于关闭状态时,则判定针对所述应用程序无崩溃拦截需求。
在其中一个实施例中,所述在启动应用程序时,确定崩溃捕获开关的状态包括:
在启动应用程序时,确定在本地当前使用的系统资源;
根据所述当前使用的系统资源,确定本地剩余的系统资源;
当所述本地剩余的系统资源符合系统正常运行条件时,则将崩溃捕获开关的状态设定为开启状态;
当所述本地剩余的系统资源不符合系统正常运行条件时,则将崩溃捕获开关的状态设定为关闭状态。
在其中一个实施例中,所述在启动应用程序时,确定崩溃捕获开关的状态包括:
在启动应用程序时,查找针对所述应用程序设置的崩溃捕获开关;
获取针对所述应用程序预先添加的开关状态标识;
按照所述开关状态标识所唯一标识的状态,确定针对所述应用程序设置的崩溃捕获开关的状态。
在其中一个实施例中,所述方法还包括:
当所述崩溃捕获开关处于开启状态时,则分析所述应用程序所具备的功能之间的功能相关度;
当所述功能相关度低于预设相关度阈值时,则保持所述崩溃捕获开关处于开启状态;
当所述功能相关度高于或等于预设相关度阈值时,则将所述崩溃捕获开关由开启状态转换为关闭状态。
在其中一个实施例中,所述方法还包括:
在应用程序启动过程中,将用于触发崩溃捕获处理的自定义方法与系统原生方法进行交换;
在处于正常运行状态的应用程序进行数据处理时,通过调用所述自定义方法触发所述崩溃拦截器对所述系统原生方法进行调用;
通过调用的所述系统原生方法进行相应数据处理;
所述当所述应用程序在运行过程中发生崩溃时,则通过所述崩溃拦截器拦截所述应用程序崩溃时产生的崩溃信息,并保持所述应用程序继续运行包括:
当所述系统原生方法在数据处理过程中发生崩溃时,则触发所述崩溃拦截器拦截崩溃时产生的崩溃信息,并保持所述应用程序继续运行。
在其中一个实施例中,所述方法还包括:
当所述应用程序在运行过程中发生崩溃时,确定崩溃功能项;
分析所述崩溃功能项是否具有进阶功能项;
当所述崩溃功能项不具有进阶功能项时,则
再执行所述通过所述崩溃拦截器拦截所述应用程序崩溃时产生的崩溃信息,并保持所述应用程序继续运行的步骤。
一种应用程序崩溃处理装置,所述装置包括:
检测模块,用于在启动应用程序时,对所述应用程序进行崩溃拦截需求检测处理;
加载模块,用于当所述检测模块检测到针对所述应用程序具有崩溃拦截需求时,则在所述应用程序启动过程中,加载针对所述应用程序的崩溃拦截器;
拦截模块,用于当所述应用程序在运行过程中发生崩溃时,则通过所述崩溃拦截器拦截所述应用程序崩溃时产生的崩溃信息,并保持所述应用程序继续运行;
崩溃分析模块,用于根据拦截的所述崩溃信息进行崩溃原因分析处理。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
在启动应用程序时,对所述应用程序进行崩溃拦截需求检测处理;
当检测到针对所述应用程序具有崩溃拦截需求时,则
在所述应用程序启动过程中,加载针对所述应用程序的崩溃拦截器;
当所述应用程序在运行过程中发生崩溃时,则通过所述崩溃拦截器拦截所述应用程序崩溃时产生的崩溃信息,并保持所述应用程序继续运行;
根据拦截的所述崩溃信息进行崩溃原因分析处理。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
在启动应用程序时,对所述应用程序进行崩溃拦截需求检测处理;
当检测到针对所述应用程序具有崩溃拦截需求时,则
在所述应用程序启动过程中,加载针对所述应用程序的崩溃拦截器;
当所述应用程序在运行过程中发生崩溃时,则通过所述崩溃拦截器拦截所述应用程序崩溃时产生的崩溃信息,并保持所述应用程序继续运行;
根据拦截的所述崩溃信息进行崩溃原因分析处理。
上述应用程序崩溃处理方法、装置、计算机设备和存储介质,在启动应用程序时,会检测是否存在针对应用程序的崩溃拦截需求,当有崩溃拦截需求时,则可以在应用程序启动过程中,加载对应用程序的崩溃信息进行拦截的崩溃拦截器,当发生应用程序发生崩溃时,通过崩溃拦截器拦截产生的崩溃信息,并保持应用程序继续运行;根据拦截的崩溃信息进行崩溃原因分析处理。在应用程序崩溃时通过加载的崩溃拦截器拦截崩溃信息,能够使得崩溃信息不继续往底层传送,这样就无法知晓应用程序发生崩溃,从而能够避免弹出运行停止的对话框而造成应用程序结束运行的情况,由于应用程序的崩溃通常是由于某个功能发生故障导致的,而并不会影响应用程序的整体使用,所以,保持应用程序的继续运行而不结束运行,能够提高应用程序的使用效率。
附图说明
图1为一个实施例中应用程序崩溃处理方法的应用场景图;
图2为一个实施例中应用程序崩溃处理方法的流程示意图;
图3为一个实施例中捕获开关状态确定步骤的流程示意图;
图4为一个实施例中拦截确定步骤的流程示意图;
图5为一个实施例中应用程序崩溃处理装置的结构框图;
图6为一个实施例中检测模块的结构框图;
图7为另一个实施例中应用程序崩溃处理装置的结构框图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的应用程序崩溃处理方法,可以应用于如图1所示的应用环境中。其中,终端110通过网络与服务器120通过网络进行通信。其中,终端110可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。需要说明的是,终端110中安装有应用程序。本申请各实施例中所提供的应用程序崩溃处理方法主要用于对安装于终端110本地的应用程序的崩溃处理。
终端110在启动安装于本地的应用程序时,检测针对应用程序是否具有崩溃拦截需求。终端110当检测到针对应用程序具有崩溃拦截需求时,则加载针对应用程序的崩溃拦截器。当应用程序在运行过程中发生崩溃时,则通过崩溃拦截器拦截应用程序崩溃时产生的崩溃信息,并保持应用程序继续运行。终端110可以根据拦截的崩溃信息进行崩溃原因分析处理。可以理解,终端110可以在本地根据拦截的崩溃信息进行崩溃原因分析处理。终端110也可以发送携带拦截的崩溃信息的崩溃分析请求至服务器120,以使服务器120根据该拦截的崩溃信息分析产生崩溃的原因。
在一个实施例中,如图2所示,提供了一种应用程序崩溃处理方法,以该方法应用于图1中的终端110为例进行说明,包括以下步骤:
S202,在启动应用程序时,对应用程序进行崩溃拦截需求检测处理。
其中,崩溃拦截需求,表示应用程序发生崩溃时需要拦截崩溃信息。
可以理解,终端可以对应用程序进行崩溃拦截需求检测处理,以检测在应用程序发生崩溃时是否需要拦截崩溃信息。
检测结果,可以为检测到针对应用程序具有崩溃拦截需求和检测到针对应用程序不具有崩溃拦截需求两种情况中的任意一种。可以理解,针对应用程序具有崩溃拦截需求,表示应用程序发生崩溃时需要拦截崩溃信息。针对应用程序不具有崩溃拦截需求,表示应用程序发生崩溃时不需要拦截崩溃信息。
在一个实施例中,终端可以通过检测崩溃捕获开关的状态,来判定针对应用程序是否具有崩溃拦截需求。其中,崩溃捕获开关,是一个根据开启或关闭状态来确定是否针对应用程序的崩溃信息进行捕获拦截的功能性开关。
在另一个实施例中,终端可以在启动应用程序时,可以生成一个提示信息,以提示用户是否需要对该应用程序的崩溃信息进行捕获拦截,当接收到针对提示信息输入的确认拦截指令时,则判定针对应用程序具有崩溃拦截需求。定接收到针对提示信息输入的不拦截指令时,则判定针对应用程序不具有崩溃拦截需求。
S204,当检测到针对应用程序具有崩溃拦截需求时,则在应用程序启动过程中,加载针对应用程序的崩溃拦截器。
其中,针对应用程序的崩溃拦截器,用于对应用程序的崩溃信息进行拦截。
可以理解,当检测到针对应用程序具有崩溃拦截需求时,则表示应用程序发生崩溃时需要拦截崩溃信息。终端则可以加载针对应用程序的崩溃拦截器。
在一个实施例中,终端可以通过系统原生的try-catch语句来实现崩溃拦截器的身份。其中,try-catch语句是抛出异常的语句。当try语句中运行出现崩溃异常时,则可以将该崩溃异常抛出至catch语句,即可以通过catch语句拦截崩溃信息。系统可以是iOS系统(苹果公司开发的移动操作系统)或安卓系统(Android,是一种基于Linux的自由及开放源代码的操作系统)。
在另一个实施例中,终端可以获取用于实现崩溃拦截的软件工具开发包,将该软件工具开发包嵌入应用程序,以在应用程序发生崩溃时,通过嵌入的软件工具开发包中封装的崩溃拦截逻辑代码,拦截该应用程序产生的崩溃信息。
可以理解,当检测到针对应用程序具有崩溃拦截需求时,则可以在应用程序启动过程中,一并加载针对应用程序的崩溃拦截器。当检测到针对所述应用程序不具有崩溃拦截需求时,则可以不加载崩溃拦截器,这样一来,当应用程序在运行过程中发生崩溃时,则可以生成停止运行对话框,并结束应用程序的运行。
S206,当应用程序在运行过程中发生崩溃时,则通过崩溃拦截器拦截应用程序崩溃时产生的崩溃信息,并保持应用程序继续运行。
可以理解,当通过系统原生的try-catch语句来实现崩溃拦截器的身份时,若应用程序在运行过程中执行try语句发生崩溃异常,则可以通过catch语句捕获拦截发生的崩溃信息。当在应用程序中嵌入用于实现崩溃拦截的软件工具开发包时,若应用程序在运行过程中发生崩溃,终端则可以通过嵌入的软件工具开发包中封装的崩溃拦截逻辑代码,拦截该应用程序产生的崩溃信息。
需要说明的是,通过崩溃拦截器拦截崩溃信息,能够使得崩溃信息不继续往底层传送,这样就无法知晓应用程序发生崩溃,因而能够保持应用程序的继续运行,而不会结束应用程序的运行。
S208,根据拦截的崩溃信息进行崩溃原因分析处理。
在一个实施例中,终端可以在本地根据拦截的崩溃信息进行崩溃原因分析处理。
具体地,终端中可以将拦截的崩溃信息输入至预先训练的崩溃原因识别模型中,以通过该崩溃原因识别模型输出相应的崩溃原因类别。
其中,崩溃原因识别模型,是预先训练的用于识别出崩溃原因的机器学习分类模型。崩溃原因类别,用于表示导致应用程序崩溃的原因。在一个实施例中,崩溃原因类别包括空指针、数组越界、内存泄漏等至少一种。
在一个实施例中,终端可以预先进行机器学习训练,以预先训练得到崩溃原因识别模型。在一个实施例中,崩溃原因识别模型的训练步骤具体包括:将崩溃信息样本和添加的相应崩溃原因类别标签输入初始机器学习分类模型中进行迭代地机器学习训练,以迭代地更新模型参数,直至模型参数稳定,得到稳定后的崩溃原因识别模型。
在一个实施例中,终端可以根据输出的崩溃原因类别确定对应的崩溃处理逻辑,以通过加载该崩溃处理逻辑解决崩溃问题。其中,崩溃处理逻辑,是用于解决崩溃问题的逻辑代码。
具体地,终端可以预先设置崩溃原因类别和崩溃处理逻辑之间的对应关系,根据该对应关系,触发加载与输出的崩溃原因类别对应的崩溃处理逻辑,以通过该崩溃处理逻辑解决崩溃问题。
在另一个实施例中,终端也可以发送携带拦截的崩溃信息的崩溃分析请求至服务器,崩溃分析请求,用于指示服务器根据该拦截的崩溃信息分析产生崩溃的原因。
可以理解,服务器也可以预先训练崩溃原因识别模型,并将终端发送的崩溃信息输入崩溃原因识别模型,以输出崩溃原因类别。服务器可以根据输出的崩溃类别生成相应的崩溃处理指令,以指示终端按照崩溃处理指令调用相应的崩溃处理逻辑,以解决崩溃问题。
上述应用程序崩溃处理方法,在启动应用程序时,会检测是否存在针对应用程序的崩溃拦截需求,当有崩溃拦截需求时,则可以在应用程序启动过程中,加载对应用程序的崩溃信息进行拦截的崩溃拦截器,当发生应用程序发生崩溃时,通过崩溃拦截器拦截产生的崩溃信息,并保持应用程序继续运行。在应用程序崩溃时通过加载的崩溃拦截器拦截崩溃信息,能够使得崩溃信息不继续往底层传送,这样就无法知晓应用程序发生崩溃,从而能够避免弹出运行停止的对话框而造成应用程序结束运行的情况,由于应用程序的崩溃通常是由于某个功能发生故障导致的,而并不会影响应用程序的整体使用,所以,保持应用程序的继续运行而不结束运行,能够提高应用程序的使用效率和使用率。此外,在保持应用程序继续运行时,可以实现根据拦截的崩溃信息进行崩溃原因分析,而不影响应用程序的使用,进一步地提高了应用程序的使用效率。
在一个实施例中,步骤S202在启动应用程序时,对应用程序进行崩溃拦截需求检测包括:在启动应用程序时,确定崩溃捕获开关的状态;当崩溃捕获开关处于开启状态时,则判定针对应用程序具有崩溃拦截需求;当崩溃捕获开关处于关闭状态时,则判定针对应用程序无崩溃拦截需求。
其中,崩溃捕获开关,是一个根据开启或关闭状态来确定是否针对应用程序的崩溃信息进行捕获拦截的功能性开关。所确定的崩溃捕获开关的状态,可以为开启状态或关闭状态。
需要说明的是,在一个实施例中,崩溃捕获开关可以是以终端级别进行设置,即整个终端中安装的所有应用程序对应于一个崩溃捕获开关。这种情况下,崩溃捕获开关的开启或关闭,可以决定是否针对安装于终端本地的所有应用程序的崩溃信息进行捕获拦截。在另一个实施例中,崩溃捕获开关也可以是以应用程序级别进行设置。即各个应用程序可以有各自对应的崩溃捕获开关。这种情况下,崩溃捕获开关的开启或关闭,仅用于决定是否对其所对应的应用程序的的崩溃信息进行捕获拦截,而不会对其所未对应的其余应用程序起到作用。
可以理解,崩溃捕获开关的状态,可以根据用户的手动选择操作来决定,比如,终端中可以提供崩溃捕获开关的操作界面,用户可以在终端中手动地选择是否打开崩溃捕获开关,终端按照用户的该操作,将崩溃捕获开关设定为与该操作匹配的状态。
在其他实施例中,崩溃捕获开关的状态,也可以是终端通过主动分析自动地决定。
上述实施例中,设置了崩溃捕获开关,根据崩溃捕获开关的状态来判定针对应用程序是否有崩溃拦截需求。当开关处于开启状态时,再加载崩溃拦截器拦截崩溃信息,提高了崩溃处理的灵活性。而且,崩溃捕获开关的状态能够反映出更加准确地崩溃拦截需求,提高了崩溃处理的准确性。
如图3所示,在一个实施例中,在启动应用程序时,确定崩溃捕获开关的状态(简称捕获开关状态确定步骤),具体包括以下步骤:
S302,在启动应用程序时,确定在本地当前使用的系统资源。
其中,在本地当前使用的系统资源,是指终端本地当前的系统资源的使用消耗情况。
可以理解,终端可以统计当前所运行的各个应用程序、进程、线程等所使用消耗的系统资源,得到在本地当前使用的系统资源。
S304,根据当前使用的系统资源,确定本地剩余的系统资源。
具体地,终端可以获取针对该终端初始配置的总系统资源,根据该总系统资源和当前使用的系统资源的差值,得到本地剩余的系统资源。
S306,当本地剩余的系统资源符合系统正常运行条件时,则将崩溃捕获开关的状态设定为开启状态。
其中,系统正常运行条件,是指让终端本地系统能够正常运行的条件。
在一个实施例中,系统正常运行条件,可以是针对各个系统资源项设置的阈值或区间。可以理解,当本地剩余的系统资源中对应于各个系统资源项的系统资源大于或等于系统正常运行条件中设置的阈值,或者,位于系统正常运行条件中设置的区间内时,则说明本地剩余的系统资源符合系统正常运行条件。反之,当本地剩余的系统资源中对应于各个系统资源项的系统资源小于系统正常运行条件中设置的阈值,或者,位于系统正常运行条件中设置的区间之外时,则说明本地剩余的系统资源不符合系统正常运行条件。
其中,系统资源项,是用于表征系统资源使用情况的项目。可以理解,系统资源的使用情况,可以从多个方面进行体现,每个系统资源项相当于其中一个方面。系统资源项可以包括CPU使用率、磁盘使用率和内存使用率等中的至少一种。
具体地,终端可以获取预设的系统正常运行条件,将本地剩余的系统资源与系统正常运行条件进行匹配,以判定本地剩余的系统资源是否符合系统正常运行条件。可以理解,当本地剩余的系统资源满足系统正常运行条件,则说明本地有充足的系统资源供应用程序运行,此时,可以将崩溃捕获开关的状态设定为开启状态,从而可以判定应用程序具有崩溃拦截需求,并执行步骤S204~208。即在应用程序发生崩溃时,则可以通过崩溃拦截器拦截崩溃信息,以避免崩溃信息向底层继续传送造成应用程序的运行结束,而是保持应用程序利用充足的系统资源的继续运行,只不过崩溃的那部分功能不能使用而已,并不影响应用程序的整体使用。
S308,当本地剩余的系统资源不满足系统正常运行条件时,则将崩溃捕获开关的状态设定为关闭状态。
可以理解,当本地剩余的系统资源不满足系统正常运行条件时,则一定程度上可以反映即使保持应用程序继续运行,也可能由于系统资源不足导致无法正常运行,所以,可以将崩溃捕获开关的状态设定为关闭状态,从而可以判定应用程序不具有崩溃拦截需求。
这样一来,在应用程序发生崩溃时,则可以通过产生的崩溃信息触发弹出停止运行对话框,并结束应用程序的运行。
需要说明的是,捕获开关状态确定步骤的实施例中,所说的设定崩溃捕获开关的状态,可以是在步骤S302~308之前尚未设定崩溃捕获开关的状态,并通过步骤S302~308的分析处理来首次设定状态,也可以是在步骤S302~308之前崩溃捕获开关就已经具备了状态,然后通过步骤S302~308的分析来将初始具备的状态更改设定为按照步骤S302~308分析后的状态。比如,用户可以预先设定崩溃捕获开关为开启状态,通过步骤S302~308分析,可以在本地剩余的系统资源不符合系统正常运行条件时,则将崩溃捕获开关的状态由初始设定的开启状态更改设定为关闭状态。
上述实施例中,相当于在本地剩余的系统资源充足的情况下,才开启崩溃捕获开关,保证了崩溃拦截的准确性。因为,如果在本地剩余的系统资源不充足的情况下,即使开启了崩溃捕获开关,进行了崩溃信息的拦截,同样也会由于系统资源不足导致应用程序无法继续运行,从而造成不必要的崩溃拦截。
在一个实施例中,在启动应用程序时,确定崩溃捕获开关的状态(简称捕获开关状态确定步骤),具体包括以下步骤:包括:在启动应用程序时,查找针对应用程序设置的崩溃捕获开关;获取针对应用程序预先添加的开关状态标识;按照所述开关状态标识所唯一标识的状态,确定针对所述应用程序设置的崩溃捕获开关的状态。
可以理解,针对应用程序设置的崩溃捕获开关,说明崩溃捕获开关是以应用程序级别设置。各应用程序有对应设置的崩溃捕获开关。需要说明的是,一个崩溃捕获开关可以对应设置多个应用程序,一个应用程序唯一对应一个崩溃捕获开关。
其中,开关状态标识,用于标识崩溃捕获开关的状态。开关状态标识可以包括开启状态标识和关闭状态标识。
具体地,应用程序开发商可以在发布应用程序时,就确定是否需要对应用程序的崩溃信息进行拦截,因此,应用程序开放商在发布应用程序时,即可为应用程序预先添加对应的开关状态标识。终端可以在启动应用程序时,查找针对应用程序设置的崩溃捕获开关,并获取针对应用程序预先添加的开关状态标识。终端可以确定该开关状态标识所唯一标识的状态,并按照开关状态标识所唯一标识的状态,确定针对应用程序设置的崩溃捕获开关的状态。当开关状态标识为开启状态标识时,则可以确定针对应用程序设置的崩溃捕获开关的状态为开启状态,当开关状态标识为关闭状态标识时,则可以确定针对应用程序设置的崩溃捕获开关的状态为关闭状态。
上述实施例中,可以以应用程序级别设置相应的崩溃捕获开关,针对各个应用程序预先添加开关状态标识,从而确定应用程序的相应崩溃捕获开关的状态,实现了区别性地对应用程序进行崩溃处理,提高了崩溃处理的准确性。
在一个实施例中,该方法还包括:当崩溃捕获开关处于开启状态时,则分析应用程序所具备的功能之间的功能相关度;当功能相关度低于预设相关度阈值时,则保持崩溃捕获开关处于开启状态;当功能相关度高于或等于预设相关度阈值时,则将崩溃捕获开关由开启状态转换为关闭状态。
其中,功能相关度,是指功能相关程度。可以理解,一个应用程序可以具备多项功能,功能与功能之间往往具有相关性,功能之间相关度越强,一个功能的崩溃会严重影响到另一个功能的正常使用,反之,功能之间相关度越弱,一个功能的崩溃则对另一个功能的影响较小。
具体地,当崩溃捕获开关处于开启状态时,终端可以获取应用程序的历史运行数据,从历史运行数据中提取功能临界数据,根据功能临界数据的数据流向,确定功能相关度。其中,功能临界数据,是上一个功能执行结束时的最终数据。可以理解,在上一个功能执行结束后,下一个功能开始执行。那么,如果功能临界数据作为下一个功能的输入数据,那么,则说明下一个功能与上一个功能之间的功能相关度较强,反之,如果功能临界数据直接输出,而不会作为下一个功能的输入,则说明两个功能之间功能相关性较弱。终端可以根据各个功能临界数据的数据流向,确定相应功能子相关度,然后统计各个功能子相关度,得到最终的功能相关度。
可以理解,终端可以直接将各个功能子相关度直接求和,得到最终的功能相关度。终端也可以获取预先根据功能重要程度针对各个功能设置的权重,将各功能临界数据按照针对相应功能设置的权重进行加权求和,得到最终的功能相关度。
终端可以从本地或服务器中获取预设相关度阈值,并将最终的功能相关度与预设相关度阈值比对,当功能相关度低于预设相关度阈值时,则保持崩溃捕获开关处于开启状态,进而可以判定针对应用程序具有崩溃拦截需求。当功能相关度高于或等于预设相关度阈值时,则将崩溃捕获开关由开启状态转换为关闭状态,进而可以判定针对应用程序无崩溃拦截需求。可以理解,功能相关度过高时,即使不结束应用程序的运行也会使得应用程序的后续功能受发生崩溃的功能的影响,而无法正常使用,所以,这种情况下,就可以将崩溃捕获开关的状态由开启状态转换为关闭状态,从而不拦截崩溃信息,由崩溃信息触发弹出运行停止对话框,并结束应用程序的运行。
可以理解,当崩溃捕获开关处于关闭状态时,则可以不执行分析应用程序所具备的功能之间的功能相关度的步骤,而是直接判定针对应用程序无崩溃拦截需求。
上述实施例中,当崩溃捕获开关处于开启状态时,进一步地分析应用程序所具备的功能之间的功能相关度;当功能相关度较低时,则保持崩溃捕获开关处于开启状态。这种情况下进行崩溃拦截后,由于较低的功能相关度,所以不会影响应用程序的整体使用。当功能相关度过高时,即使不结束应用程序的运行也会使得应用程序的后续功能受发生崩溃的功能的影响,而无法正常使用,所以,这种情况下,就可以将崩溃捕获开关的状态由开启状态转换为关闭状态,从而不拦截崩溃信息,以避免无效地崩溃拦截所造成的系统资源的浪费,以及避免降低崩溃处理的准确性。
在一个实施例中,该方法还包括:在应用程序启动过程中,将用于触发崩溃捕获处理的自定义方法与系统原生方法进行交换;在处于正常运行状态的应用程序进行数据处理时,通过调用自定义方法触发崩溃拦截器对系统原生方法进行调用;通过调用的系统原生方法进行相应数据处理。本申请实施例中,当应用程序在运行过程中发生崩溃时,则通过崩溃拦截器拦截应用程序崩溃时产生的崩溃信息,并保持应用程序继续运行包括:当系统原生方法在数据处理过程中发生崩溃时,则触发崩溃拦截器拦截崩溃时产生的崩溃信息,并保持应用程序继续运行。
具体地,在应用程序启动过程中,终端可以获取用于触发崩溃捕获处理的自定义方法,并将该自定义方法和系统原生方法进行方法交换处理,可以理解,在将自定义方法和系统原生方法交换前,应用程序进行数据处理时,会直接调用系统原生方法进行相应处理。而在将自定义方法和系统原生方法交换之后,在应用程序正常运行过程中,即应用程序处于正常运行状态进行数据处理时,需要先调用交换后的自定义方法,然后在通过该自定义方法触发拦截器对系统原生方法进行调用,比如,应用程序可以通过自定义方法触发try-catch语句对系统原生方法进行调用。接着,终端才会通过调用的系统原生方法进行实质性的数据处理。
当原生方法在数据处理过程中发生崩溃时,即相当于应用程序在运行过程中发生崩溃时,则可以触发崩溃拦截器拦截崩溃时产生的崩溃信息,并保持应用程序继续运行。
上述实施例中,通过交换用于触发崩溃捕获处理的自定义方法和系统原生方法,能够较为便捷地实现对崩溃信息的拦截,降低了崩溃拦截处理的难度。
如图4所示,在一个实施例中,该方法还包括拦截确定步骤,具体包括以下步骤:
S402,当应用程序在运行过程中发生崩溃时,确定崩溃功能项。
其中,崩溃功能项,是发生崩溃的功能项。功能项,用于表示相应功能。
具体地,终端可以在应用程序发生崩溃时,确定在执行哪个功能时发生该崩溃,从而确定崩溃功能项。
S404,分析崩溃功能项是否具有进阶功能项。
其中,进阶功能项,是以崩溃功能项所输出的结果数据作为输入数据的功能项。
具体地,终端可以获取应用程序的历史运行数据,从历史运行数据中确定出崩溃功能项所对应功能运行时产生的结果数据,确定结果数据在历史运行数据中的数据流向。当数据流向表示结果数据后续作为输入数据时,则判定崩溃功能项具有进阶功能项,当数据流向表示结果数据后续不作为输入数据而是直接输出时,则判定崩溃功能项不具有进阶功能项。
S406,当崩溃功能项不具有进阶功能项时,则再通过崩溃拦截器拦截应用程序崩溃时产生的崩溃信息,并保持应用程序继续运行。
可以理解,当崩溃功能项不具备进阶功能项,则说明崩溃对应用程序的使用不会产生影响,因此,可以进行崩溃拦截,保持应用程序的继续运行。当崩溃功能项具备进阶功能项,则说明崩溃对应用程序的使用会产生影响,因此,可以不进行崩溃拦截,使崩溃信息触发弹出运行停止对话框,结束应用程序的运行。
上述实施例中,当所述应用程序在运行过程中发生崩溃时,确定崩溃功能项;并在崩溃功能项不具有进阶功能项时,再进行崩溃拦截,,即在崩溃对应用程序的使用不会产生影响时进行崩溃拦截,提高了崩溃拦截的准确性。因为如果崩溃功能项具有进阶功能项,说明崩溃对应用程序的使用会产生影响,这种情况下如果仍进行拦截,即使应用程序继续运行,仍然会导致进阶功能无法使用,从而影响应用程序的正常运行,从而导致不必要的崩溃拦截处理。
应该理解的是,虽然图2-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种应用程序崩溃处理装置500,包括:检测模块502、加载模块504、拦截模块506以及崩溃分析模块508,其中:
检测模块502,用于在启动应用程序时,对应用程序进行崩溃拦截需求检测处理。
加载模块504,用于当检测模块502检测到针对应用程序具有崩溃拦截需求时,则在应用程序启动过程中,加载针对应用程序的崩溃拦截器。
拦截模块506,用于当应用程序在运行过程中发生崩溃时,则通过崩溃拦截器拦截应用程序崩溃时产生的崩溃信息,并保持应用程序继续运行。
崩溃分析模块508,用于根据拦截的崩溃信息进行崩溃原因分析处理。
如图6所示,在一个实施例中,检测模块502包括:
状态确定模块502a,用于在启动应用程序时,确定崩溃捕获开关的状态。
需求判定模块502b,用于当崩溃捕获开关处于开启状态时,则判定针对应用程序具有崩溃拦截需求;当崩溃捕获开关处于关闭状态时,则判定针对应用程序无崩溃拦截需求。
在一个实施例中,状态确定模块502a还用于在启动应用程序时,确定在本地当前使用的系统资源;根据当前使用的系统资源,确定本地剩余的系统资源;当本地剩余的系统资源符合系统正常运行条件时,则将崩溃捕获开关的状态设定为开启状态;当本地剩余的系统资源不符合系统正常运行条件时,则将崩溃捕获开关的状态设定为关闭状态。
在一个实施例中,状态确定模块502a还用于在启动应用程序时,查找针对应用程序设置的崩溃捕获开关;获取针对应用程序预先添加的开关状态标识;按照开关状态标识所唯一标识的状态,确定针对应用程序设置的崩溃捕获开关的状态。
在一个实施例中,状态确定模块502a还用于当崩溃捕获开关处于开启状态时,则分析应用程序所具备的功能之间的功能相关度;当功能相关度低于预设相关度阈值时,则保持崩溃捕获开关处于开启状态;当功能相关度高于或等于预设相关度阈值时,则将崩溃捕获开关由开启状态转换为关闭状态。
如图7所示,在一个实施例中,该装置500还包括:
方法交换模块505,用于在应用程序启动过程中,将用于触发崩溃捕获处理的自定义方法与系统原生方法进行交换;在处于正常运行状态的应用程序进行数据处理时,通过调用自定义方法触发崩溃拦截器对系统原生方法进行调用;通过调用的系统原生方法进行相应数据处理;
拦截模块506还用于当系统原生方法在数据处理过程中发生崩溃时,则触发崩溃拦截器拦截崩溃时产生的崩溃信息,并保持应用程序继续运行。
在一个实施例中,拦截模块506还用于当应用程序在运行过程中发生崩溃时,确定崩溃功能项;分析崩溃功能项是否具有进阶功能项;当崩溃功能项不具有进阶功能项时,则再执行通过崩溃拦截器拦截应用程序崩溃时产生的崩溃信息,并保持应用程序继续运行的步骤。
关于应用程序崩溃处理装置的具体限定可以参见上文中对于应用程序崩溃处理方法的限定,在此不再赘述。上述应用程序崩溃处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是图1中的终端110,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种应用程序崩溃处理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:在启动应用程序时,对应用程序进行崩溃拦截需求检测处理;当检测到针对应用程序具有崩溃拦截需求时,则在应用程序启动过程中,加载针对应用程序的崩溃拦截器;当应用程序在运行过程中发生崩溃时,则通过崩溃拦截器拦截应用程序崩溃时产生的崩溃信息,并保持应用程序继续运行;根据拦截的崩溃信息进行崩溃原因分析处理。
在一个实施例中,在启动应用程序时,对应用程序进行崩溃拦截需求检测处理包括:在启动应用程序时,确定崩溃捕获开关的状态;当崩溃捕获开关处于开启状态时,则判定针对应用程序具有崩溃拦截需求;当崩溃捕获开关处于关闭状态时,则判定针对应用程序无崩溃拦截需求。
在一个实施例中,在启动应用程序时,确定崩溃捕获开关的状态包括:在启动应用程序时,确定在本地当前使用的系统资源;根据当前使用的系统资源,确定本地剩余的系统资源;当本地剩余的系统资源符合系统正常运行条件时,则将崩溃捕获开关的状态设定为开启状态;当本地剩余的系统资源不符合系统正常运行条件时,则将崩溃捕获开关的状态设定为关闭状态。
在一个实施例中,在启动应用程序时,确定崩溃捕获开关的状态包括:在启动应用程序时,查找针对应用程序设置的崩溃捕获开关;获取针对应用程序预先添加的开关状态标识;按照开关状态标识所唯一标识的状态,确定针对应用程序设置的崩溃捕获开关的状态。
在一个实施例中,计算机程序被处理器执行时,还使得处理器执行以下步骤:当崩溃捕获开关处于开启状态时,则分析应用程序所具备的功能之间的功能相关度;当功能相关度低于预设相关度阈值时,则保持崩溃捕获开关处于开启状态;当功能相关度高于或等于预设相关度阈值时,则将崩溃捕获开关由开启状态转换为关闭状态。
在一个实施例中,计算机程序被处理器执行时,还使得处理器执行以下步骤:在应用程序启动过程中,将用于触发崩溃捕获处理的自定义方法与系统原生方法进行交换;在处于正常运行状态的应用程序进行数据处理时,通过调用自定义方法触发崩溃拦截器对系统原生方法进行调用;通过调用的系统原生方法进行相应数据处理;当应用程序在运行过程中发生崩溃时,则通过崩溃拦截器拦截应用程序崩溃时产生的崩溃信息,并保持应用程序继续运行包括:当系统原生方法在数据处理过程中发生崩溃时,则触发崩溃拦截器拦截崩溃时产生的崩溃信息,并保持应用程序继续运行。
在一个实施例中,计算机程序被处理器执行时,还使得处理器执行以下步骤:当应用程序在运行过程中发生崩溃时,确定崩溃功能项;分析崩溃功能项是否具有进阶功能项;当崩溃功能项不具有进阶功能项时,则再执行通过崩溃拦截器拦截应用程序崩溃时产生的崩溃信息,并保持应用程序继续运行的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:在启动应用程序时,对应用程序进行崩溃拦截需求检测处理;当检测到针对应用程序具有崩溃拦截需求时,则在应用程序启动过程中,加载针对应用程序的崩溃拦截器;当应用程序在运行过程中发生崩溃时,则通过崩溃拦截器拦截应用程序崩溃时产生的崩溃信息,并保持应用程序继续运行;根据拦截的崩溃信息进行崩溃原因分析处理。
在一个实施例中,在启动应用程序时,对应用程序进行崩溃拦截需求检测处理包括:在启动应用程序时,确定崩溃捕获开关的状态;当崩溃捕获开关处于开启状态时,则判定针对应用程序具有崩溃拦截需求;当崩溃捕获开关处于关闭状态时,则判定针对应用程序无崩溃拦截需求。
在一个实施例中,在启动应用程序时,确定崩溃捕获开关的状态包括:在启动应用程序时,确定在本地当前使用的系统资源;根据当前使用的系统资源,确定本地剩余的系统资源;当本地剩余的系统资源符合系统正常运行条件时,则将崩溃捕获开关的状态设定为开启状态;当本地剩余的系统资源不符合系统正常运行条件时,则将崩溃捕获开关的状态设定为关闭状态。
在一个实施例中,在启动应用程序时,确定崩溃捕获开关的状态包括:在启动应用程序时,查找针对应用程序设置的崩溃捕获开关;获取针对应用程序预先添加的开关状态标识;按照开关状态标识所唯一标识的状态,确定针对应用程序设置的崩溃捕获开关的状态。
在一个实施例中,计算机程序被处理器执行时,还使得处理器执行以下步骤:当崩溃捕获开关处于开启状态时,则分析应用程序所具备的功能之间的功能相关度;当功能相关度低于预设相关度阈值时,则保持崩溃捕获开关处于开启状态;当功能相关度高于或等于预设相关度阈值时,则将崩溃捕获开关由开启状态转换为关闭状态。
在一个实施例中,计算机程序被处理器执行时,还使得处理器执行以下步骤:在应用程序启动过程中,将用于触发崩溃捕获处理的自定义方法与系统原生方法进行交换;在处于正常运行状态的应用程序进行数据处理时,通过调用自定义方法触发崩溃拦截器对系统原生方法进行调用;通过调用的系统原生方法进行相应数据处理;当应用程序在运行过程中发生崩溃时,则通过崩溃拦截器拦截应用程序崩溃时产生的崩溃信息,并保持应用程序继续运行包括:当系统原生方法在数据处理过程中发生崩溃时,则触发崩溃拦截器拦截崩溃时产生的崩溃信息,并保持应用程序继续运行。
在一个实施例中,计算机程序被处理器执行时,还使得处理器执行以下步骤:当应用程序在运行过程中发生崩溃时,确定崩溃功能项;分析崩溃功能项是否具有进阶功能项;当崩溃功能项不具有进阶功能项时,则再执行通过崩溃拦截器拦截应用程序崩溃时产生的崩溃信息,并保持应用程序继续运行的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种应用程序崩溃处理方法,所述方法包括:
在启动应用程序时,对所述应用程序进行崩溃拦截需求检测处理;
当检测到针对所述应用程序具有崩溃拦截需求时,则
在所述应用程序启动过程中,加载针对所述应用程序的崩溃拦截器;
当所述应用程序在运行过程中发生崩溃时,则通过所述崩溃拦截器拦截所述应用程序崩溃时产生的崩溃信息,并保持所述应用程序继续运行;
根据拦截的所述崩溃信息进行崩溃原因分析处理。
2.根据权利要求1所述的方法,其特征在于,所述在启动应用程序时,对所述应用程序进行崩溃拦截需求检测处理包括:
在启动应用程序时,确定崩溃捕获开关的状态;
当所述崩溃捕获开关处于开启状态时,则判定针对所述应用程序具有崩溃拦截需求;
当所述崩溃捕获开关处于关闭状态时,则判定针对所述应用程序无崩溃拦截需求。
3.根据权利要求2所述的方法,其特征在于,所述在启动应用程序时,确定崩溃捕获开关的状态包括:
在启动应用程序时,确定在本地当前使用的系统资源;
根据所述当前使用的系统资源,确定本地剩余的系统资源;
当所述本地剩余的系统资源符合系统正常运行条件时,则将崩溃捕获开关的状态设定为开启状态;
当所述本地剩余的系统资源不符合系统正常运行条件时,则将崩溃捕获开关的状态设定为关闭状态。
4.根据权利要求2所述的方法,其特征在于,所述在启动应用程序时,确定崩溃捕获开关的状态包括:
在启动应用程序时,查找针对所述应用程序设置的崩溃捕获开关;
获取针对所述应用程序预先添加的开关状态标识;
按照所述开关状态标识所唯一标识的状态,确定针对所述应用程序设置的崩溃捕获开关的状态。
5.根据权利要求3或4所述的方法,其特征在于,所述方法还包括:
当所述崩溃捕获开关处于开启状态时,则分析所述应用程序所具备的功能之间的功能相关度;
当所述功能相关度低于预设相关度阈值时,则保持所述崩溃捕获开关处于开启状态;
当所述功能相关度高于或等于预设相关度阈值时,则将所述崩溃捕获开关由开启状态转换为关闭状态。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在应用程序启动过程中,将用于触发崩溃捕获处理的自定义方法与系统原生方法进行交换;
在处于正常运行状态的应用程序进行数据处理时,通过调用所述自定义方法触发所述崩溃拦截器对所述系统原生方法进行调用;
通过调用的所述系统原生方法进行相应数据处理;
所述当所述应用程序在运行过程中发生崩溃时,则通过所述崩溃拦截器拦截所述应用程序崩溃时产生的崩溃信息,并保持所述应用程序继续运行包括:
当所述系统原生方法在数据处理过程中发生崩溃时,则触发所述崩溃拦截器拦截崩溃时产生的崩溃信息,并保持所述应用程序继续运行。
7.根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:
当所述应用程序在运行过程中发生崩溃时,确定崩溃功能项;
分析所述崩溃功能项是否具有进阶功能项;
当所述崩溃功能项不具有进阶功能项时,则
再执行所述通过所述崩溃拦截器拦截所述应用程序崩溃时产生的崩溃信息,并保持所述应用程序继续运行的步骤。
8.一种应用程序崩溃处理装置,其特征在于,所述装置包括:
检测模块,用于在启动应用程序时,对所述应用程序进行崩溃拦截需求检测处理;
加载模块,用于当所述检测模块检测到针对所述应用程序具有崩溃拦截需求时,则在所述应用程序启动过程中,加载针对所述应用程序的崩溃拦截器;
拦截模块,用于当所述应用程序在运行过程中发生崩溃时,则通过所述崩溃拦截器拦截所述应用程序崩溃时产生的崩溃信息,并保持所述应用程序继续运行;
崩溃分析模块,用于根据拦截的所述崩溃信息进行崩溃原因分析处理。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN201811122015.XA 2018-09-26 2018-09-26 应用程序崩溃处理方法、装置、计算机设备和存储介质 Active CN109408261B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811122015.XA CN109408261B (zh) 2018-09-26 2018-09-26 应用程序崩溃处理方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811122015.XA CN109408261B (zh) 2018-09-26 2018-09-26 应用程序崩溃处理方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN109408261A true CN109408261A (zh) 2019-03-01
CN109408261B CN109408261B (zh) 2023-06-20

Family

ID=65465356

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811122015.XA Active CN109408261B (zh) 2018-09-26 2018-09-26 应用程序崩溃处理方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN109408261B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110083474A (zh) * 2019-04-22 2019-08-02 无线生活(杭州)信息科技有限公司 防止应用程序崩溃的方法及装置
CN110162245A (zh) * 2019-04-11 2019-08-23 北京达佳互联信息技术有限公司 图形操作的分析方法、装置、电子设备及存储介质
CN110633188A (zh) * 2019-08-29 2019-12-31 凡普数字技术有限公司 暂停对应用程序的代码进行拦截和监控的方法以及装置
CN111258802A (zh) * 2020-02-10 2020-06-09 同盾控股有限公司 捕获应用程序崩溃信息的方法及相关设备
WO2023124929A1 (zh) * 2021-12-27 2023-07-06 北京有竹居网络技术有限公司 应用程序管理方法、装置、存储介质以及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140040671A1 (en) * 2012-07-31 2014-02-06 International Business Machines Corporation Securing crash dump files
US20140237453A1 (en) * 2013-02-20 2014-08-21 Bmc Software, Inc. Exception based quality assessment
CN105512015A (zh) * 2015-12-15 2016-04-20 北京奇虎科技有限公司 一种安卓目标应用崩溃统计方法和装置
CN108052407A (zh) * 2017-12-13 2018-05-18 深圳乐信软件技术有限公司 一种应用程序崩溃防护方法、装置、设备及存储介质
CN108334415A (zh) * 2017-01-20 2018-07-27 百度在线网络技术(北京)有限公司 一种容错处理方法、装置、终端及存储介质
CN108345542A (zh) * 2018-02-28 2018-07-31 腾讯科技(深圳)有限公司 一种应用程序中异常处理方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140040671A1 (en) * 2012-07-31 2014-02-06 International Business Machines Corporation Securing crash dump files
US20140237453A1 (en) * 2013-02-20 2014-08-21 Bmc Software, Inc. Exception based quality assessment
CN105512015A (zh) * 2015-12-15 2016-04-20 北京奇虎科技有限公司 一种安卓目标应用崩溃统计方法和装置
CN108334415A (zh) * 2017-01-20 2018-07-27 百度在线网络技术(北京)有限公司 一种容错处理方法、装置、终端及存储介质
CN108052407A (zh) * 2017-12-13 2018-05-18 深圳乐信软件技术有限公司 一种应用程序崩溃防护方法、装置、设备及存储介质
CN108345542A (zh) * 2018-02-28 2018-07-31 腾讯科技(深圳)有限公司 一种应用程序中异常处理方法及装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110162245A (zh) * 2019-04-11 2019-08-23 北京达佳互联信息技术有限公司 图形操作的分析方法、装置、电子设备及存储介质
CN110083474A (zh) * 2019-04-22 2019-08-02 无线生活(杭州)信息科技有限公司 防止应用程序崩溃的方法及装置
CN110633188A (zh) * 2019-08-29 2019-12-31 凡普数字技术有限公司 暂停对应用程序的代码进行拦截和监控的方法以及装置
CN111258802A (zh) * 2020-02-10 2020-06-09 同盾控股有限公司 捕获应用程序崩溃信息的方法及相关设备
WO2023124929A1 (zh) * 2021-12-27 2023-07-06 北京有竹居网络技术有限公司 应用程序管理方法、装置、存储介质以及电子设备

Also Published As

Publication number Publication date
CN109408261B (zh) 2023-06-20

Similar Documents

Publication Publication Date Title
CN109408261A (zh) 应用程序崩溃处理方法、装置、计算机设备和存储介质
US8156475B2 (en) Device and method for testing embedded software using emulator
CN110580226B (zh) 操作系统级程序的目标码覆盖率测试方法、系统及介质
CN110457211A (zh) 脚本性能测试方法、装置和设备及计算机存储介质
WO2019178967A1 (zh) 基于Jmeter的压力测试方法、装置、设备及存储介质
US6925405B2 (en) Adaptive test program generation
CN111581084A (zh) 基于智能电表操作系统的进程测试方法和装置
CN110928777B (zh) 测试用例的处理方法、装置、设备及存储介质
CN109558313B (zh) 构建异常测试场景的方法及装置
CN105653946A (zh) 基于组合事件行为触发的Android恶意行为检测系统及其检测方法
US20220335135A1 (en) Vulnerability analysis and reporting for embedded systems
CN111414309B (zh) 应用程序的自动化测试方法、计算机设备和存储介质
CN113497809A (zh) 基于控制流和数据流分析的mips架构漏洞挖掘方法
CN109992506A (zh) 调度测试方法、装置、计算机设备和存储介质
CN106021024B (zh) 一种用户终端停止响应提示方法及用户终端
CN113076233B (zh) 一种io性能检测方法、装置、设备及存储介质
CN113127329B (zh) 脚本调试方法、装置及计算机存储介质
CN109783837A (zh) 仿真设备、仿真系统、仿真方法和仿真程序
CN113127331B (zh) 一种基于故障注入的测试方法、装置及计算机设备
US20230101154A1 (en) Resumable instruction generation
CN110781081B (zh) 一种移动应用回调强制触发方法、系统及存储介质
Borges Jr et al. Speeding up GUI testing by on-device test generation
Seo et al. Automating embedded software testing on an emulated target board
KR101685299B1 (ko) 비결정적인 이벤트 처리가 가능한 프로그램의 자동 테스트 방법 및 자동 테스트 장치
CN114020622A (zh) 一种智能电能表软件测试方法及系统

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
GR01 Patent grant
GR01 Patent grant