CN113282458A - 应用程序的防闪退方法、装置、电子设备及存储介质 - Google Patents

应用程序的防闪退方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN113282458A
CN113282458A CN202110572895.6A CN202110572895A CN113282458A CN 113282458 A CN113282458 A CN 113282458A CN 202110572895 A CN202110572895 A CN 202110572895A CN 113282458 A CN113282458 A CN 113282458A
Authority
CN
China
Prior art keywords
flash
event
data
target
flash back
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
Application number
CN202110572895.6A
Other languages
English (en)
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.)
Guahao Net Hangzhou Technology Co Ltd
Original Assignee
Guahao Net Hangzhou Technology Co 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 Guahao Net Hangzhou Technology Co Ltd filed Critical Guahao Net Hangzhou Technology Co Ltd
Priority to CN202110572895.6A priority Critical patent/CN113282458A/zh
Publication of CN113282458A publication Critical patent/CN113282458A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • 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/30Monitoring
    • G06F11/3051Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例公开了一种应用程序的防闪退方法、装置、电子设备及存储介质。该方法包括:对运行情况进行监测,当监测到应用程序的闪退事件被触发时,基于被触发的所述闪退事件确定出导致发生所述闪退事件的目标闪退数据;在预先存储的至少一个备选兜底数据中确定出与所述目标闪退数据对应的目标兜底数据;将导致发生所述闪退事件的目标闪退数据替换为所述目标兜底数据,以保持所述应用程序处于正常运行状态。本发明实施例的技术方案,可以在闪退事件刚被触发时便阻止了闪退事件的发生,降低生产环境的闪退率;并且,本发明实施例无需后期维护,减少了维护成本,对于不同的使用环境导致的闪退问题均适用,普适性强。

Description

应用程序的防闪退方法、装置、电子设备及存储介质
技术领域
本发明实施例涉及计算机技术,尤其涉及一种防闪退方法、装置、电子设备及存储介质。
背景技术
闪退率在App(application,应用程序)的质量指标和使用体验中是非常重要的一项,如何有效地降低App的闪退率是提高App性能的重要环节。目前,通常利用代码评审或代码扫描等方式提高代码健壮性,或者通过提高测试用例覆盖率的方式来降低App在生产环境的闪退率。
但是,通过代码评审或代码扫描来提高代码健壮性,这种方式仍然较依赖于人力,对于迭代节奏较快的App并不适用。而提高测试用例覆盖率这种方式随着业务不断迭代,维护成本会越来越高。以上两种方式,均无法规避一些更复杂的使用环境导致的问题,比如用户自己不可预知的操作和网络环境等可能引起App发生闪退。
由此可见,提供一种有效的应用程序的防闪退方法成为当前亟待解决的问题。
发明内容
本发明实施例提供了一种应用程序的防闪退方法、装置、电子设备及存储介质,以实现在闪退事件刚被触发时,便阻止了闪退事件的发生,降低生产环境的闪退率;并且,本发明实施例无需后期维护,减少了维护成本,对于不同的使用环境导致的闪退问题均适用,普适性强。
第一方面,本发明实施例提供了一种应用程序的防闪退方法,可以包括:
对运行情况进行监测,当监测到应用程序的闪退事件被触发时,基于被触发的所述闪退事件确定出导致发生所述闪退事件的目标闪退数据;
在预先存储的至少一个备选兜底数据中确定出与所述目标闪退数据对应的目标兜底数据;
将导致发生所述闪退事件的目标闪退数据替换为所述目标兜底数据,以保持所述应用程序处于正常运行状态。
第二方面,本发明实施例还提供了一种应用程序的防闪退装置,可以包括:
监测模块,用于对运行情况进行监测,当监测到应用程序的闪退事件被触发时,基于被触发的所述闪退事件确定出导致发生所述闪退事件的目标闪退数据;
确定模块,用于在预先存储的至少一个备选兜底数据中确定出与所述目标闪退数据对应的目标兜底数据;
替换模块,用于将导致发生所述闪退事件的目标闪退数据替换为所述目标兜底数据,以保持所述应用程序处于正常运行状态。
第三方面,本发明实施例还提供了一种电子设备,可以包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所提供的应用程序的防闪退方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本发明任意实施例所提供的应用程序的防闪退方法。
本发明实施例所提供的一种应用程序的防闪退方法,对运行情况进行监测,当监测到应用程序的闪退事件被触发时,在应用程序闪退之前,基于被触发的闪退事件确定出导致发生闪退事件的目标闪退数据;在预先存储的至少一个备选兜底数据中确定出与目标闪退数据对应的目标兜底数据;将导致发生闪退事件的目标闪退数据替换为目标兜底数据,从而使应用程序不再按照目标闪退数据执行,而是执行能够使应用程序正常运行的目标兜底数据。由此可见,本发明实施例在闪退事件刚被触发时便阻止了闪退事件的发生,降低生产环境的闪退率;并且,本发明实施例无需后期维护,减少了维护成本,对于不同的使用环境导致的闪退问题均适用,普适性强。
此外,本发明所提供的一种应用程序的防闪退装置、电子设备及存储介质与上述方法对应,具有同样的有益效果。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种应用程序的防闪退方法的流程图;
图2为本发明实施例提供的另一种应用程序的防闪退方法的流程图;
图3为本发明实施例提供的一种应用场景下的防闪退方法的流程图;
图4为本发明实施例提供的一种应用程序的防闪退装置的结构图;
图5为本发明实施例提供的一种防闪退装置的配置示意图;
图6为本发明实施例提供的一种电子设备的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
本发明的核心是提供一种应用程序的防闪退方法、装置、电子设备及存储介质,以实现在闪退事件刚被触发时,便阻止了闪退事件的发生,降低生产环境的闪退率;并且,本发明实施例无需后期维护,减少了维护成本,对于不同的使用环境导致的闪退问题均适用,普适性强。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
实施例一
图1是本发明实施例提供的一种应用程序的防闪退方法的流程图。该方法可以由本发明实施例提供的应用程序的防闪退装置来执行,该装置可以由软件和/或硬件的方式实现,该装置可以集成在各种用户终端或服务器上。
如图1所示,本发明实施例的方法具体包括如下步骤:
S101、对运行情况进行监测,当监测到应用程序的闪退事件被触发时,基于被触发的闪退事件确定出导致发生闪退事件的目标闪退数据。
在具体实施例中,应用程序启动后,对应用程序的运行情况进行监测。具体的,可在应用程序启动并完成了功能配置后,开始监测应用程序的运行情况。当监测到应用程序的闪退事件被触发时,说明应用程序之后将出现闪退情况,此时可基于被触发的闪退事件,确定出闪退事件的闪退信息。可选的,闪退信息可包括闪退事件的闪退类型、闪退标识、闪退事件名称及导致发生闪退事件的对应目标闪退数据等内容。基于闪退事件的闪退信息,确定出导致发生闪退事件的目标闪退数据。
具体的,闪退类型可包括启动阶段连续闪退防护、未知消息闪退、集合类型操作闪退、异步操作UI闪退、KVO不规范操作导致的闪退、小于等于iOS 8的通知未移除闪退、计时器导致的野指针和内存泄漏闪退、字符串不规范操作导致的闪退及仿僵尸模式的野指针闪退。
进一步的,确定出的目标闪退数据的数量可为一个,也可为若干各。对被触发的闪退事件进行检测,确定导致该闪退事件的闪退数据的数量,若存在至少两个闪退数据同时导致该闪退事件被触发时,将每个闪退数据均确定为目标闪退数据。
S102、在预先存储的至少一个备选兜底数据中确定出与目标闪退数据对应的目标兜底数据;
在具体实施中,可预先存储有至少一个备选兜底数据。备选兜底数据可为用于修复闪退数据、阻止闪退事件继续进行的修复数据。在至少一个备选兜底数据中确定出与该目标闪退数据相匹配的备选兜底数据作为目标兜底数据。具体的,可基于闪退事件的闪退信息,在至少一个备选兜底数据中确定出目标兜底数据。
示例性的,闪退信息包括闪退事件的闪退类型,获取各备选兜底数据对应的兜底类型。在各兜底类型中,确定出与闪退事件的闪退类型相匹配的兜底类型作为目标兜底类型,将该目标兜底类型对应的备选兜底数据确定为目标兜底数据。
S103、将导致发生闪退事件的目标闪退数据替换为目标兜底数据,以保持应用程序处于正常运行状态。
可选的,本发明实施例还包括基于预先配置的钩子函数对应用程序的运行情况进行监测。当确定出目标兜底函数后,可基于预先配置的钩子函数,完成目标闪退数据与目标兜底数据之间的替换操作。
具体的,在应用程序启动后,可对应用程序预先配置钩子函数。进一步的,每个闪退事件的闪退类型可预先配置至少一个钩子函数与其对应。当监测到闪退事件被触发时,基于触发的闪退事件的闪退类型,在至少一个预先配置的钩子函数中确定出目标钩子函数,并执行该目标钩子函数以完成目标闪退数据与目标兜底数据的替换操作。
本发明实施例所提供的一种应用程序的防闪退方法,对运行情况进行监测,当监测到应用程序的闪退事件被触发时,在应用程序闪退之前,基于被触发的闪退事件确定出导致发生闪退事件的目标闪退数据;在预先存储的至少一个备选兜底数据中确定出与目标闪退数据对应的目标兜底数据;将导致发生闪退事件的目标闪退数据替换为目标兜底数据,从而使应用程序不再按照目标闪退数据执行,而是执行能够使应用程序正常运行的目标兜底数据。由此可见,本发明实施例在闪退事件刚被触发时便阻止了闪退事件的发生,降低生产环境的闪退率;并且,本发明实施例无需后期维护,减少了维护成本,对于不同的使用环境导致的闪退问题均适用,普适性强。
实施例二
图2是本发明实施例提供的一种应用程序的防闪退方法的流程图。本实施例以上述各技术方案为基础进行优化。可选的,在基于被触发的闪退事件确定出导致发生闪退事件的目标闪退数据之前,还包括:确定闪退事件是否需要进行防护处理;如果是,则执行基于被触发的闪退事件确定出导致发生闪退事件的目标闪退数据的操作。其中,与上述各实施例相同或相应的术语的解释在此不再赘述。
如图2所示,本发明实施例的方法具体包括如下步骤:
S201、对运行情况进行监测,当监测到应用程序的闪退事件被触发时,确定闪退事件是否需要进行防护处理;如果是,则进入S202。
在具体实施中,当监测到应用程序的闪退事件被触发时,可首先确定被触发的闪退事件是否需要进行防护处理。确定闪退事件是否需要进行防护处理,包括:确定预先设置的防护缓存表中是否存在闪退事件的事件信息;如果存在事件信息,则基于防护缓存表中事件信息,确定闪退事件是否为需防闪事件;如果是需防闪事件,则确定闪退事件需要进行防护处理。
具体的,可预先设置防护缓存表,该防护缓存表中记录有至少一种闪退类型的闪退事件,可查看各闪退事件是否存在对应的事件信息,若存在事件信息则根据事件信息,确定闪退事件是否为需防闪事件。进一步的,事件信息包括标注该闪退事件是否为需防闪事件的标识信息,可通过文字、字符等形式体现事件信息。
可选的,若防护缓存表中的闪退事件不存在对应的事件信息,则可基于闪退事件的闪退类型,判断闪退事件是否需要进行防护。获取闪退事件的闪退类型,确定闪退类型是否为预先设定的支持防闪退类型。
具体的,可预先设定当前支持防闪退的闪退事件的类型,若获取到的当前被触发的闪退事件的闪退类型为预先设定的支持防闪退类型,则可确定闪退事件需要进行防护处理;若获取到的当前被触发的闪退事件的闪退类型不为预先设定的支持防闪退类型,则可将该闪退事件确定为不支持防闪退类型。
进一步的,当确定出该闪退事件为不支持防闪退类型的闪退事件时,可将该发生的该闪退事件及对应的事件类型、目标闪退数据等内容记录于***日志中,便于后续维护人员进行查看。并可生成用于提示当前闪退事件不支持防闪退的通知信息进行反馈。
可选的,在确定闪退事件需要进行防护处理之前,对于已确定出是支持防闪退类型的闪退事件,则基于闪退事件,确定预先设定的免防护事件名单中是否包含该闪退事件;如果在预先设定的免防护事件名单中存在该闪退事件,则说明对于该闪退事件无需进行防护措施,允许该闪退事件发生。如果免防护事件名单中不包含该闪退事件,则可对该闪退事件进行防护处理。
可选的,确定出该闪退事件是否需要进行防护后,可将闪退事件及用于确定闪退事件是否需要进行防护处理的确定结果记录于防护缓存表中。从而使以后再触发该闪退事件时,可直接根据防护缓存表中的记录确定是否需要对该闪退事件进行防护,无需再进行判断。
可选的,在确定闪退事件是否需要进行防护时,可通过判断防护功能是否已启动来判断。当防护功能未启动时,则直接确定该闪退事件无需进行防护。进一步的,可生成用于提示防护功能未启动的通知信息,并进行反馈。
S202、基于被触发的闪退事件确定出导致发生闪退事件的目标闪退数据;
S203、将导致发生闪退事件的目标闪退数据替换为目标兜底数据,以保持应用程序处于正常运行状态。
可选的,本发明实施例还包括基于预先配置的钩子函数对应用程序的运行情况进行监测。当确定出目标兜底函数后,可基于预先配置的钩子函数,完成目标闪退数据与目标兜底数据之间的替换操作。示例性的,钩子函数包括forwardingTargetForSelector:函数、removeObserver:name:object:函数、addObserver:selector:name:object:函数等。
本发明实施例对于在防护缓存表不存在事件信息的闪退事件,通过判断闪退事件的闪退类型是否为支持防闪退类型及免防护事件名单是否存在该闪退事件,来确定出是否对该闪退事件进行防护操作,提高了防闪退操作的灵活性;并设置了缓存机制,将确定出的结果记录于缓存表中,节省了防闪退操作所用的时间。
实施例三
上文中对于应用程序的防闪退方法对应的实施例进行了详细描述,为了使本领域技术人员进一步清楚本方法的技术方案,下文中给出具体的应用场景。
图3为本发明实施例提供的一种应用场景下的防闪退方法的流程图;如图3所示,APP触发闪事件后,可以闪退事件对应的类名为键,读取预先存储的防护类型缓存表中的用于反映该闪退事件是否为需防护闪退事件的值,判断触发的闪退事件是否存在于防护缓存表中,若存在则是命中。若不存在,则为未命中。
当命中防护类型缓存表中的闪退事件时,根据闪退事件在防护类型缓存表中的值确定该闪退事件是否需要防护,如果需要防护,则进入防护过程。如果无需防护,则退出防护过程,使App正常闪退。进入防护过程后,可将导致闪退事件的异常数据替换为预先存储的兜底数据后继续执行。同时,回调通知给App使用终端,使用户可以在回调中处理自己的逻辑,比如将防护结果上报到日志平台,提示用户等,并保持App正常运行,避免发生闪退。
当未命中防护类型缓存表中的闪退事件时,则首先判断当前防护是否开启,若开启,则进一步判断闪退事件的闪退类型是否为支持的防护类型;若防护未开启,则说明该闪退事件无需进行防护,可以将该无需防护闪退事件的类名为键保存防护类型缓存表的值,该值表示其无需防护。并且,退出防护过程,使App正常闪退。
如果判断出该闪退事件的闪退类型是支持的防护类型,则进一步判断该闪退事件是否在免防护名单内;如果判断出该闪退事件的闪退类型不是支持的防护类型,则将该无需防护闪退事件的类名为键保存防护类型缓存表的值,并且,退出防护过程,使App正常闪退。
如果判断出该闪退事件不在免防护名单内,则以类名为键保存防护类型缓存表的值;并根据闪退事件在防护类型缓存表中的值确定该闪退事件是否需要防护,如果需要防护,确定该闪退事件为需防护闪退事件,则可进入防护过程中。如果无需防护,则退出防护过程,使App正常闪退。如果判断出该闪退事件在免防护名单内,则将该无需防护闪退事件的类名为键保存防护类型缓存表的值。并且,退出防护过程,使App正常闪退。
进入防护过程后,可将导致闪退事件的异常数据替换为预先存储的兜底数据后继续执行。同时,回调通知给App使用终端,使用户可以在回调中处理自己的逻辑,比如将防护结果上报到日志平台,提示用户等,并保持App正常运行,避免发生闪退。具体的,在防护类型缓存表中,可用1表示对应的闪退事件需要防护,用0表示对应的闪退事件无需防护。当触发的闪退事件对应的值为1是,则为命中。
本发明实施例对于在防护缓存表不存在事件信息的闪退事件,通过判断闪退事件的闪退类型是否为支持防闪退类型及免防护事件名单是否存在该闪退事件,来确定出是否对该闪退事件进行防护操作,提高了防闪退操作的灵活性;并设置了缓存机制,将确定出的结果记录于缓存表中,节省了防闪退操作所用的时间。
实施例四
图4为本发明实施例提供的应用程序的防闪退装置的结构图,该装置用于执行上述任意实施例所提供的应用程序的防闪退方法。该装置与上述各实施例的应用程序的防闪退方法属于同一个发明构思,在应用程序的防闪退装置的实施例中未详尽描述的细节内容,可以参考上述应用程序的防闪退方法的实施例。参见图4,该装置具体可包括:
监测模块10,用于对运行情况进行监测,当监测到应用程序的闪退事件被触发时,基于被触发的闪退事件确定出导致发生闪退事件的目标闪退数据;
确定模块11,用于在预先存储的至少一个备选兜底数据中确定出与目标闪退数据对应的目标兜底数据;
替换模块12,用于将导致发生闪退事件的目标闪退数据替换为目标兜底数据,以保持应用程序处于正常运行状态。
在本发明实施例任一可选实施方案的基础上,该装置还包括:
确定是否防护模块,用于在基于被触发的所述闪退事件确定出导致发生所述闪退事件的目标闪退数据之前,确定所述闪退事件是否需要进行防护处理;如果是,则执行基于被触发的所述闪退事件确定出导致发生所述闪退事件的目标闪退数据的操作。
在本发明实施例任一可选实施方案的基础上,确定是否防护模块包括:
第一确定单元,用于确定预先设置的防护缓存表中是否存在所述闪退事件的事件信息;如果存在所述事件信息,则基于所述防护缓存表中所述事件信息,确定所述闪退事件是否为需防闪事件;如果是需防闪事件,则确定所述闪退事件需要进行防护处理。
在本发明实施例任一可选实施方案的基础上,该装置还包括:
获取闪退类型模块,用于如果不存在所述事件信息,则获取所述闪退事件的闪退类型,确定所述闪退类型是否为预先设定的支持防闪退类型;如果是所述支持防闪退类型,则确定所述闪退事件需要进行防护处理。
在本发明实施例任一可选实施方案的基础上,该装置还包括:
确定是否免防护模块,用于在所述确定所述闪退事件需要进行防护处理之前,如果是所述支持防闪退类型,则基于所述闪退事件,确定预先设定的免防护事件名单中是否包含所述闪退事件;如果不包含,则确定所述闪退事件需要进行防护处理。
在本发明实施例任一可选实施方案的基础上,该装置还包括:
记录模块,用于将所述闪退事件及用于确定所述闪退事件是否需要进行防护处理的确定结果记录于所述防护缓存表中。
在本发明实施例任一可选实施方案的基础上,该装置还包括:
配置钩子函数模块,用于基于预先配置的钩子函数对所述应用程序的运行情况进行监测。
在一个实施例中,在App启动后需要对防闪退装置进行配置操作。图5为本发明实施例提供的一种防闪退装置的配置示意图;如图5所示,在App启动后,防闪退装置进行初始化操作,并在防闪退装置中配置可防护的闪退类型,具体的,可通过存储防护缓存表的方式完成防护的闪退类型的配置。防护存储表中记录有闪退事件、闪退类型及对应的事件信息。进一步的,为防闪退装置配置上报回调功能,当防闪退转正在完成防护工作后,同时会回调通知给装置的用户终端,以使用户在回调中处理如将防护结果上报到日志平台、提示用户等等操作。进一步的,启动防闪退装置的防护功能,利用ObjectiveC的runtime特性对配置的防护类型进行预埋钩子函数;示例性的,钩子函数包括forwardingTargetForSelector:函数、removeObserver:name:object:函数、addObserver:selector:name:object:函数等。最后结束防闪退转正的配置操作。
本发明实施例所能够实现如下方法:对运行情况进行监测,当监测到应用程序的闪退事件被触发时,基于被触发的所述闪退事件确定出导致发生所述闪退事件的目标闪退数据;在预先存储的至少一个备选兜底数据中确定出与所述目标闪退数据对应的目标兜底数据;将导致发生所述闪退事件的目标闪退数据替换为所述目标兜底数据,以保持所述应用程序处于正常运行状态。由此可见,本发明实施例在闪退事件刚被触发时便阻止了闪退事件的发生,降低生产环境的闪退率;并且,本发明实施例无需后期维护,减少了维护成本,对于不同的使用环境导致的闪退问题均适用,普适性强。
值得注意的是,上述应用程序的防闪退装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
实施例五
图6为本发明实施例提供的一种电子设备的结构示意图。图6示出了适于用来实现本发明实施例实施方式的示例性电子设备20的框图。显示的电子设备20仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,电子设备20以通用计算设备的形式表现。电子设备20的组件可以包括但不限于:一个或者多个处理器或者处理单元201,***存储器202,连接不同***组件(包括***存储器202和处理单元201)的总线203。
总线203表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,***总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及***组件互连(PCI)总线。
电子设备20典型地包括多种计算机***可读介质。这些介质可以是任何能够被电子设备20访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
***存储器202可以包括易失性存储器形式的计算机***可读介质,例如随机存取存储器(RAM)204和/或高速缓存存储器205。电子设备20可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机***存储介质。仅作为举例,存储***206可以用于读写不可移动的、非易失性磁介质。可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线203相连。存储器202可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块207的程序/实用工具208,可以存储在例如存储器202中,这样的程序模块207包括但不限于操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块207通常执行本发明所描述的实施例中的功能和/或方法。
电子设备20也可以与一个或多个外部设备209(例如键盘、指向设备、显示器210等)通信,还可与一个或者多个使得用户能与该电子设备20交互的设备通信,和/或与使得该电子设备20能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口211进行。并且,电子设备20还可以通过网络适配器212与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器212通过总线203与电子设备20的其它模块通信。应当明白,可以结合电子设备20使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
处理单元201通过运行存储在***存储器202中的程序,从而执行各种功能应用以及数据处理。
本发明所提供的一种电子设备,能够实现如下方法:对运行情况进行监测,当监测到应用程序的闪退事件被触发时,基于被触发的所述闪退事件确定出导致发生所述闪退事件的目标闪退数据;在预先存储的至少一个备选兜底数据中确定出与所述目标闪退数据对应的目标兜底数据;将导致发生所述闪退事件的目标闪退数据替换为所述目标兜底数据,以保持所述应用程序处于正常运行状态。由此可见,本发明实施例在闪退事件刚被触发时便阻止了闪退事件的发生,降低生产环境的闪退率;并且,本发明实施例无需后期维护,减少了维护成本,对于不同的使用环境导致的闪退问题均适用,普适性强。
实施例六
本发明实施例提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种应用程序的防闪退方法,该方法包括:对运行情况进行监测,当监测到应用程序的闪退事件被触发时,基于被触发的所述闪退事件确定出导致发生所述闪退事件的目标闪退数据;在预先存储的至少一个备选兜底数据中确定出与所述目标闪退数据对应的目标兜底数据;将导致发生所述闪退事件的目标闪退数据替换为所述目标兜底数据,以保持所述应用程序处于正常运行状态。由此可见,本发明实施例在闪退事件刚被触发时便阻止了闪退事件的发生,降低生产环境的闪退率;并且,本发明实施例无需后期维护,减少了维护成本,对于不同的使用环境导致的闪退问题均适用,普适性强。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的应用程序的防闪退方法中的相关操作。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明实施例操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言——诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种应用程序的防闪退方法,其特征在于,包括:
对运行情况进行监测,当监测到应用程序的闪退事件被触发时,基于被触发的所述闪退事件确定出导致发生所述闪退事件的目标闪退数据;
在预先存储的至少一个备选兜底数据中确定出与所述目标闪退数据对应的目标兜底数据;
将导致发生所述闪退事件的目标闪退数据替换为所述目标兜底数据,以保持所述应用程序处于正常运行状态。
2.根据权利要求1所述的方法,其特征在于,在所述基于被触发的所述闪退事件确定出导致发生所述闪退事件的目标闪退数据之前,还包括:
确定所述闪退事件是否需要进行防护处理;
如果是,则执行基于被触发的所述闪退事件确定出导致发生所述闪退事件的目标闪退数据的操作。
3.根据权利要求2所述的方法,其特征在于,所述确定所述闪退事件是否需要进行防护处理,包括:
确定预先设置的防护缓存表中是否存在所述闪退事件的事件信息;
如果存在所述事件信息,则基于所述防护缓存表中所述事件信息,确定所述闪退事件是否为需防闪事件;
如果是需防闪事件,则确定所述闪退事件需要进行防护处理。
4.根据权利要求3所述的方法,其特征在于,还包括:
如果不存在所述事件信息,则获取所述闪退事件的闪退类型,确定所述闪退类型是否为预先设定的支持防闪退类型;
如果是所述支持防闪退类型,则确定所述闪退事件需要进行防护处理。
5.根据权利要求4所述的方法,其特征在于,在所述确定所述闪退事件需要进行防护处理之前,还包括:
如果是所述支持防闪退类型,则基于所述闪退事件,确定预先设定的免防护事件名单中是否包含所述闪退事件;
如果不包含,则确定所述闪退事件需要进行防护处理。
6.根据权利要求5所述的方法,其特征在于,还包括:
将所述闪退事件及用于确定所述闪退事件是否需要进行防护处理的确定结果记录于所述防护缓存表中。
7.根据权利要求1所述的方法,其特征在于,还包括:
基于预先配置的钩子函数对所述应用程序的运行情况进行监测。
8.一种应用程序的防闪退装置,其特征在于,包括:
监测模块,用于对运行情况进行监测,当监测到应用程序的闪退事件被触发时,基于被触发的所述闪退事件确定出导致发生所述闪退事件的目标闪退数据;
确定模块,用于在预先存储的至少一个备选兜底数据中确定出与所述目标闪退数据对应的目标兜底数据;
替换模块,用于将导致发生所述闪退事件的目标闪退数据替换为所述目标兜底数据,以保持所述应用程序处于正常运行状态。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的应用程序的防闪退方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一所述的应用程序的防闪退方法。
CN202110572895.6A 2021-05-25 2021-05-25 应用程序的防闪退方法、装置、电子设备及存储介质 Pending CN113282458A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110572895.6A CN113282458A (zh) 2021-05-25 2021-05-25 应用程序的防闪退方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110572895.6A CN113282458A (zh) 2021-05-25 2021-05-25 应用程序的防闪退方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN113282458A true CN113282458A (zh) 2021-08-20

Family

ID=77281454

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110572895.6A Pending CN113282458A (zh) 2021-05-25 2021-05-25 应用程序的防闪退方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN113282458A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116088955A (zh) * 2022-06-17 2023-05-09 荣耀终端有限公司 进程处理方法和终端设备
CN116701134A (zh) * 2022-10-14 2023-09-05 荣耀终端有限公司 一种数据处理方法和电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102263773A (zh) * 2010-05-25 2011-11-30 腾讯科技(深圳)有限公司 实时防护的方法和装置
CN109284217A (zh) * 2018-09-28 2019-01-29 平安科技(深圳)有限公司 应用程序异常处理方法、装置、电子设备及存储介质
CN111367698A (zh) * 2018-12-26 2020-07-03 北京微播视界科技有限公司 应用程序闪退的检测及处理方法、装置及电子设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102263773A (zh) * 2010-05-25 2011-11-30 腾讯科技(深圳)有限公司 实时防护的方法和装置
CN109284217A (zh) * 2018-09-28 2019-01-29 平安科技(深圳)有限公司 应用程序异常处理方法、装置、电子设备及存储介质
CN111367698A (zh) * 2018-12-26 2020-07-03 北京微播视界科技有限公司 应用程序闪退的检测及处理方法、装置及电子设备

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116088955A (zh) * 2022-06-17 2023-05-09 荣耀终端有限公司 进程处理方法和终端设备
CN116088955B (zh) * 2022-06-17 2024-04-02 荣耀终端有限公司 进程处理方法和终端设备
CN116701134A (zh) * 2022-10-14 2023-09-05 荣耀终端有限公司 一种数据处理方法和电子设备
CN116701134B (zh) * 2022-10-14 2024-05-17 荣耀终端有限公司 一种数据处理方法和电子设备

Similar Documents

Publication Publication Date Title
US11687653B2 (en) Methods and apparatus for identifying and removing malicious applications
CN109831420B (zh) 内核进程权限的确定方法及装置
US10911447B2 (en) Application error fingerprinting
CN113282458A (zh) 应用程序的防闪退方法、装置、电子设备及存储介质
CN108920690B (zh) 可视化网络安全审计方法及***
US20170289178A1 (en) Systems and methods for detecting security threats
US8788230B2 (en) Methods, system, and computer-readable media for facility integrity testing
CN111258850A (zh) 一种基于Linux***的更新软件信息的方法及装置
CN102271054A (zh) 用于网络软件部署评估的书签和性能历史
CN112988534A (zh) 异常数据处理方法、装置、设备及存储介质
US9069951B2 (en) Inferring security decisions from trusted users
CN115102838B (zh) 服务器宕机风险的应急处理方法和装置、电子设备
CN116980186A (zh) 一种异常确定方法、装置、电子设备及存储介质
CN116071152A (zh) 一种数据处理方法、装置、电子设备及存储介质
US10096030B1 (en) Apparatus, computer program, and method for generating a problem ticket with a link to a cloned environment
CN112464176B (zh) 一种权限管理方法、装置、电子设备及存储介质
WO2021144978A1 (ja) 攻撃推定装置、攻撃推定方法及び攻撃推定プログラム
CN113986295A (zh) 一种数据处理方法、装置、电子设备及存储介质
CN112035354B (zh) 风险代码的定位方法、装置、设备及存储介质
CN116186785A (zh) 日志脱敏方法、装置、设备、介质和程序产品
US11874878B2 (en) Replacing components of a data processing system
CN117220980A (zh) 一种数据安全管理***
CN113515400A (zh) 一种关键信息基础设施的异常监测方法及装置
CN115878456A (zh) 一种开源软件的选型-评测平台及方法
CN114780347A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20210820