CN108052407A - 一种应用程序崩溃防护方法、装置、设备及存储介质 - Google Patents
一种应用程序崩溃防护方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN108052407A CN108052407A CN201711326990.8A CN201711326990A CN108052407A CN 108052407 A CN108052407 A CN 108052407A CN 201711326990 A CN201711326990 A CN 201711326990A CN 108052407 A CN108052407 A CN 108052407A
- Authority
- CN
- China
- Prior art keywords
- application program
- crash
- list
- current
- white list
- 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0751—Error or fault detection not based on redundancy
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0793—Remedial or corrective actions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例公开了一种应用程序崩溃防护方法、装置、设备及存储介质。该方法包括:在应用程序的使用过程中,若当前对象不能识别当前方法,则创建崩溃防护处理对象,且动态为创建的崩溃防护处理对象添加所述当前方法;控制所述崩溃防护处理对象执行添加的方法。本发明实施例提供的技术方案,在当前对象不能识别当前方法时,通过动态的将当前方法添加到崩溃防护对象,让该崩溃防护对象执行该方法,可避免由于当前对象不能识别当前方法导致的应用程序崩溃的现象,提高了产品的健壮性、稳定性以及用户的体验,同时,保持了代码的简洁性。
Description
技术领域
本发明涉及互联网应用技术领域,尤其涉及一种应用程序崩溃防护方法、装置、设备及存储介质。
背景技术
近年来随着移动终端及应用程序(Application,App)的普及,由苹果公司推出的iPhone系列手机与iPad系列平板电脑等均使用了IOS操作系统,而具有IOS操作系统的移动终端在执行应用程序中偶然会出现因为调用对象未识别方法导致应用程序崩溃的现象。这种崩溃多发生在调用具体对象的某一个方法过程中,如果该对象不能识别该方法,那么这种场景就会造成应用程序崩溃,从而中断应用程序对用户服务,影响了用户的体验。
而目前的做法是在不能确信对象是否可以识别具体的方法之前,先通过添加额外的代码去校验该对象是否可以识别该方法。如果对象能识别该方法,那么才执行正常逻辑。
但是该方法由于需要添加额外代码校验对象是否可以识别对应的方法,导致了代码量增加,同时,如果开发者忘记校验,会出现导致应用程序崩溃的现象。
发明内容
本发明实施例提供一种应用程序崩溃防护方法、装置、设备及存储介质,能够防止应用程序崩溃,从而提高产品的健壮性以及稳定性,同时,又能保持代码的简洁性。
第一方面,本发明实施例提供了一种应用程序崩溃防护方法,该方法包括:
在应用程序的使用过程中,若当前对象不能识别当前方法,则创建崩溃防护处理对象,且动态为创建的崩溃防护处理对象添加所述当前方法;
控制所述崩溃防护处理对象执行添加的方法。
第二方面,本发明实施例还提供了一种应用程序崩溃防护装置,该装置包括:
对象创建模块,用于在应用程序的使用过程中,若当前对象不能识别当前方法,则创建崩溃防护处理对象;
动态添加模块,用于动态为创建的崩溃防护处理对象添加所述当前方法;
控制模块,用于控制所述崩溃防护处理对象执行添加的方法。
第三方面,本发明实施例还提供了一种设备,该设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现第一方面中任意所述的应用程序崩溃防护方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面中任意所述的应用程序崩溃防护方法。
本发明实施例提供的应用程序崩溃防护方法、装置、设备及存储介质,在当前对象不能识别当前方法时,通过动态的将当前方法添加到崩溃防护对象,让该崩溃防护对象执行该方法,可避免由于当前对象不能识别当前方法导致的应用程序崩溃的现象,提高了产品的健壮性、稳定性以及用户的体验,同时,保持了代码的简洁性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1是本发明实施例一中提供的一种应用程序崩溃防护方法的流程图;
图2是本发明实施例二中提供的一种应用程序崩溃防护方法的流程图;
图3是本发明实施例三中提供的一种应用程序崩溃防护方法的流程图;
图4是本发明实施例四中提供的一种应用程序崩溃防护装置的结构框图;
图5是本发明实施例五中提供的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
实施例一
图1为本发明实施例一提供的一种应用程序崩溃防护方法的流程图,本实施例适用于具有IOS操作系统的移动终端,其应用程序使用过程中因为调用对象未识别方法导致应用程序崩溃的现象的情况。该方法可以由本发明实施例提供的应用程序崩溃防护装置/设备/计算机可读存储介质来执行,该装置/设备/计算机可读存储介质可采用软件和/或硬件的方式实现。参见图1,该方法具体包括:
S110,在应用程序的使用过程中,若当前对象不能识别当前方法,则创建崩溃防护处理对象,且动态为创建的崩溃防护处理对象添加当前方法。
其中,对象是指具有特征属性或功能的实体,比如消息。方法是指对象的手段。比如,图片是对象,能够执行放大、缩小、删除等操作,而放大、缩小、删除等是图片对应的方法。
IOS操作系统中偶然会出现因为调用对象未识别方法导致应用程序崩溃的现象。崩溃可以是应用程序闪退、死机或重启等现象。例如,用户在使用微信进行聊天时,在聊天页面发送了图片,而系统却调用的是播放方法,由于图片不能进行播放,此时就会造成微信闪退即崩溃。如果经常出现这种类似闪退等崩溃现象,不利于产品的健壮及稳定,从而降低用户的体验。其中,图片即为当前对象,播放即为当前方法。
现有的崩溃防护方法是在应用程序开发测试过程中,在不能确信对象是否可以识别具体的方法之前,先通过添加额外的代码去校验该对象是否可以识别该方法。如果对象可以识别该方法,那么才执行正常逻辑。该方法由于额外添加了一段校验代码,会使得系统的代码量增加,同时,也可能出现由于开发者忘记校验,导致应用程序崩溃的现象。
而本实施例中采用创建崩溃防护对象替换当前对象,执行当前方法,可实时收集崩溃信息,以此来避免由于当前对象不能识别当前方法导致的应用程序崩溃的现象,从而提高产品的健壮性、稳定性以及用户的体验。
具体的,崩溃防护对象是一个专门用来处理崩溃事件的对象,可以是自定义的;该对象本具有一个方法,该方法能够收集由于对象未识别方法导致崩溃的信息。例如自定义的崩溃防护对象为CrashProtectHandle对象,它本身具有的方法为collectCrashFun方法。
示例性的,动态为创建的崩溃防护处理对象添加当前方法可以包括:将崩溃防护处理对象所关联的方法的名称改为当前方法的名称。
其中,替换系统本身方法,给对象某一个具体方法修改名字,是IOS操作系统的固有能力。具体的,例如,崩溃防护对象为CrashProtectHandle对象,它本身具有的方法为collectCrashFun方法,当应用程序调用A对象的F1方法,如果A对象不能识别F1方法,将崩溃防护处理对象所关联的方法的名称改为当前方法的名称即为:将CrashProtectHandle对象的collectCrashFun方法名改为F1。此时,CrashProtectHandle对象就能够识别F1方法了。
此外,即使将CrashProtectHandle对象的collectCrashFun方法名改为F1,但是collectCrashFun方法本身收集由于对象未识别方法导致崩溃的信息的能力没有改变,因此,当收集到另一对象不能识别某一方法时,如应用程序调用C对象的F5方法,如果C不能识别F5方法,此时,利用系统固有的改方法名字的能力,将CrashProtectHandle对象的collectCrashFun方法名改为F5。
S120,控制崩溃防护处理对象执行添加的方法。
当前对象不能识别当前方法时,系统就会自动创建崩溃防护对象,且动态的将当前方法添加给该崩溃防护对象,该对象就可以替换当前对象执行当前方法,如CrashProtectHandle替换A对象来执行F1方法,进入执行F1方法的正常逻辑流程,直到该F1方法运行完,结束该流程。
本发明实施例提供的应用程序崩溃防护方法,在当前对象不能识别当前方法时,通过动态的将当前方法添加到崩溃防护对象,让该崩溃防护对象执行该方法,可避免由于当前对象不能识别当前方法导致的应用程序崩溃的现象,提高了产品的健壮性、稳定性以及用户的体验,同时,保持了代码的简洁性。
实施例二
图2为本发明实施例二提供的一种应用程序崩溃防护方法的流程图,该方法以本发明实施例一为基础,进一步的提供了一种若当前对象不能识别当前方法,则创建崩溃防护处理对象的方法。具体的,参见图2,该方法包括:
S210,若当前对象不能识别当前方法,则发出未识别消息。
未识别消息是指系统检测到一个对象调用了一个不属于它的方法后发出的消息,该消息中可以包括当前对象名称、当前方法名称等信息。
如果系统检测到当前对象不能识别当前方法,系统就会发出未识别消息。
S220,在自定义消息转发方法捕捉到未识别消息后,确定应用程序是否有关联的白名单列表。
其中,自定义消息转发方法可以拦截到系统发出的任何未识别信息,并执行相应的操作,以避免应用程序崩溃。例如,可以是custom_forwardingTargetForSelector方法。
系统可以对所有对象都进行保护,但这样会使得IOS操作系统出现异常情况,如系统屏幕闪烁不稳定。因此,本实施例中在应用程序中设置了白名单列表,有针对性的对所要保护的对象进行拦截。白名单列表是指用于存储系统或应用程序所需要保护的对象,可以包括经常调用的系统对象,以及用户自定义的对象等,如按钮,可根据实际情况实时更新白名单列表。
现有的系统基类中的消息转发方法即系统基类NSObject消息转发机制的forwardingTargetForSelector方法,如果一个对象不能识别当前方法,该forwardingTargetForSelector方法则可以将当前方法转发给其它对象来处理,但是如果系统未查询到可以识别当前方法的对象,最终会出现应用程序崩溃的现象。而本实施例中采用的自定的消息转发方法能够在系统未查询到可以识别当前方法的对象时,发出未识别消息后,及时捕捉到该信息,并进行相应操作,从而避免应用程序出现崩溃的现象。
为了使得自定义消息转发方法能够实时捕捉到未识别信息,以保证应用程序在使用过程中不会出现崩溃现象,示例性的,可以是在启动应用程序时,用自定义的消息转发方法代替系统基类中的消息转发方法,并向服务端发送获取白名单列表的请求;如果成功获取到白名单列表,则将白名单列表存储在预先设置的数据库中;若果没有获取到白名单列表,则执行正常的方法逻辑流程,即对象识别方法,若对象不能识别方法,最终会导致应用程序崩溃。
S230,若应用程序有关联的白名单列表,且白名单列表中包含当前对象,则创建崩溃防护处理对象。
如果应用程序中存储有白名单列表的数据库,把当前对象输入到该数据库中进行匹配,若匹配成功,即白名单列表中包含有当前对象,则创建崩溃防护对象来替换当前对象,执行当前方法,以避免应用程序崩溃。
示例性的,确定应用程序是否有关联的白名单列表之后,还可以包括:若应用程序没有关联的白名单列表,或者应用程序关联的白名单列表中不包含当前对象,则退出应用程序。
S240,动态为创建的崩溃防护处理对象添加当前方法。
S250,控制崩溃防护处理对象执行添加的方法。
具体的,当应用程序调用A对象的F1方法,如果A对象不能识别F1方法,且A对象属于白名单列表中保护的对象,则系统就会把CrashProtectHandle对象的collectCrashFun方法名改为F1,此时,CrashProtectHandle对象就能识别F1方法了,让CrashProtectHandle替换A对象来执行F1方法,从而避免了应用程序出现崩溃的现象。
本发明实施例提供的应用程序崩溃防护方法,在当前对象不能识别当前方法时,采用自定义消息转发方法捕捉未识别消息,并在执行相应的额操作后创建崩溃防护对象,通过动态的将当前方法添加到崩溃防护对象,让该崩溃防护对象执行该方法,可避免由于当前对象不能识别当前方法导致的应用程序崩溃的现象,提高了产品的健壮性、稳定性以及用户的体验,同时,保持了代码的简洁性。
实施例三
图3为本发明实施例三提供的一种应用程序崩溃防护方法的流程图,该方法是上述本发明实施例的一个优选实施例。具体的,参见图3,该方法包括:
S301,在启动应用程序时,用自定义的消息转发方法代替系统基类中的消息转发方法,并向服务端发送获取白名单列表的请求。
S302,判断应用程序是否成功获取到白名单列表。若成功获取到白名单列表则执行步骤S303;若没有,则执行步骤S304。
S303,将白名单列表存储在预先设置的数据库中,执行步骤S304。
S304,当前对象调用当前方法。
S305,判断当前对象能否识别当前方法。若不能识别,则执行步骤S306;若能识别,则执行步骤S311。
S306,发出未识别消息。
S307,在自定义消息转发方法捕捉到未识别消息后,确定应用程序是否有关联的白名单列表。若有,则执行步骤S308;若没有,则执行S312。
S308,判断应用程序关联的白名单列表中是否包含当前对象。若包含,则执行步骤S309;若不包含,则执行步骤S312。
S309,创建崩溃防护处理对象,动态为创建的崩溃防护处理对象添加当前方法。
S310,控制崩溃防护处理对象执行添加的方法。
S311,执行正常的方法逻辑流程。
S312,应用程序崩溃。
本发明实施例提供的应用程序崩溃防护方法,在当前对象不能识别当前方法时,采用自定义消息转发方法捕捉未识别消息,并在执行相应的额操作后创建崩溃防护对象,通过动态的将当前方法添加到崩溃防护对象,让该崩溃防护对象执行该方法,可避免由于当前对象不能识别当前方法导致的应用程序崩溃的现象,提高了产品的健壮性、稳定性以及用户的体验,同时,保持了代码的简洁性。
实施例四
图4为本发明实施例四提供的一种应用程序崩溃防护装置的结构框图,该装置可执行本发明任意实施例所提供的应用程序崩溃防护方法,具备执行方法相应的功能模块和有益效果。如图4所示,该装置可以包括:
对象创建模块410,用于在应用程序的使用过程中,若当前对象不能识别当前方法,则创建崩溃防护处理对象;
动态添加模块420,用于动态为创建的崩溃防护处理对象添加当前方法;
控制模块430,用于控制崩溃防护处理对象执行添加的方法。
本发明实施例提供的应用程序崩溃防护装置,在当前对象不能识别当前方法时,通过动态的将当前方法添加到崩溃防护对象,让该崩溃防护对象执行该方法,可避免由于当前对象不能识别当前方法导致的应用程序崩溃的现象,提高了产品的健壮性、稳定性以及用户的体验,同时,保持了代码的简洁性。
可选的,对象创建模块410具体可以包括:
若当前对象不能识别当前方法,则发出未识别消息;
在自定义消息转发方法捕捉到未识别消息后,确定应用程序是否有关联的白名单列表;
若应用程序有关联的白名单列表,且白名单列表中包含当前对象,则创建崩溃防护处理对象。
示例性的,上述装置还可以包括:
退出模块,用于在确定应用程序是否有关联的白名单列表之后,若应用程序没有关联的白名单列表,或者应用程序关联的白名单列表中不包含当前对象,则退出应用程序。
可选的,动态添加模块420具体可以用于:将崩溃防护处理对象所关联的方法的名称改为当前方法的名称。
示例性的,上述装置还可以包括:
替换模块,用于在启动应用程序时,用自定义的消息转发方法代替系统基类中的消息转发方法;
请求发送模块,用于向服务端发送获取白名单列表的请求;
存储模块,用于如果成功获取到白名单列表,则将白名单列表存储在预先设置的数据库中。
实施例五
图5为本发明实施例五提供的一种设备的结构示意图。图5示出了适于用来实现本发明实施方式的示例性设备12的框图。图5显示的设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,该设备12以通用计算设备的形式表现。该设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。系统存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如系统存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该设备交互的设备通信,和/或与使得该设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与设备12的其它模块通信。应当明白,尽管图中未示出,可以结合设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的应用程序崩溃防护方法。
实施例六
本发明实施例六还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可实现上述实施例中任一的应用程序崩溃防护方法。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络包括局域网(LAN)或广域网(WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
上述实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个计算装置上,或者分布在多个计算装置所组成的网络上,可选地,他们可以用计算机装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间的相同或相似的部分互相参见即可。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种应用程序崩溃防护方法,其特征在于,包括:
在应用程序的使用过程中,若当前对象不能识别当前方法,则创建崩溃防护处理对象,且动态为创建的崩溃防护处理对象添加所述当前方法;
控制所述崩溃防护处理对象执行添加的方法。
2.根据权利要求1所述的方法,其特征在于,若当前对象不能识别当前方法,则创建崩溃防护处理对象,包括:
若当前对象不能识别当前方法,则发出未识别消息;
在自定义消息转发方法捕捉到所述未识别消息后,确定所述应用程序是否有关联的白名单列表;
若所述应用程序有关联的白名单列表,且所述白名单列表中包含所述当前对象,则创建崩溃防护处理对象。
3.根据权利要求2所述的方法,其特征在于,确定所述应用程序是否有关联的白名单列表之后,还包括:
若所述应用程序没有关联的白名单列表,或者所述应用程序关联的白名单列表中不包含所述当前对象,则退出所述应用程序。
4.根据权利要求1所述的方法,其特征在于,动态为创建的崩溃防护处理对象添加所述当前方法,包括:
将所述崩溃防护处理对象所关联的方法的名称改为所述当前方法的名称。
5.根据权利要求1所述的方法,其特征在于,还包括:
在启动应用程序时,用自定义的消息转发方法代替系统基类中的消息转发方法,并向服务端发送获取白名单列表的请求;
如果成功获取到所述白名单列表,则将所述白名单列表存储在预先设置的数据库中。
6.一种应用程序崩溃防护装置,其特征在于,包括:
对象创建模块,用于在应用程序的使用过程中,若当前对象不能识别当前方法,则创建崩溃防护处理对象;
动态添加模块,用于动态为创建的崩溃防护处理对象添加所述当前方法;
控制模块,用于控制所述崩溃防护处理对象执行添加的方法。
7.根据权利要求6所述的装置,其特征在于,对象创建模块具体包括:
若当前对象不能识别当前方法,则发出未识别消息;
在自定义消息转发方法捕捉到所述未识别消息后,确定所述应用程序是否有关联的白名单列表;
若所述应用程序有关联的白名单列表,且所述白名单列表中包含所述当前对象,则创建崩溃防护处理对象。
8.根据权利要求7所述的装置,其特征在于,还包括:
退出模块,用于在确定所述应用程序是否有关联的白名单列表之后,若所述应用程序没有关联的白名单列表,或者所述应用程序关联的白名单列表中不包含所述当前对象,则退出所述应用程序。
9.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的应用程序崩溃防护方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一所述的应用程序崩溃防护方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201711326990.8A CN108052407A (zh) | 2017-12-13 | 2017-12-13 | 一种应用程序崩溃防护方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201711326990.8A CN108052407A (zh) | 2017-12-13 | 2017-12-13 | 一种应用程序崩溃防护方法、装置、设备及存储介质 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN108052407A true CN108052407A (zh) | 2018-05-18 |
Family
ID=62132097
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201711326990.8A Pending CN108052407A (zh) | 2017-12-13 | 2017-12-13 | 一种应用程序崩溃防护方法、装置、设备及存储介质 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN108052407A (zh) |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109408265A (zh) * | 2018-09-28 | 2019-03-01 | 广州虎牙信息科技有限公司 | 一种ios运行异常的保护方法、装置、终端设备及存储介质 |
| CN109408261A (zh) * | 2018-09-26 | 2019-03-01 | 中国平安财产保险股份有限公司 | 应用程序崩溃处理方法、装置、计算机设备和存储介质 |
| CN110083474A (zh) * | 2019-04-22 | 2019-08-02 | 无线生活(杭州)信息科技有限公司 | 防止应用程序崩溃的方法及装置 |
| CN110221961A (zh) * | 2019-04-26 | 2019-09-10 | 平安科技(深圳)有限公司 | 全局hook自动修复方法、装置、设备及存储介质 |
| CN112925667A (zh) * | 2021-03-29 | 2021-06-08 | 北京奇艺世纪科技有限公司 | 预防sdk崩溃的方法、装置、设备及可读存储介质 |
| CN113779562A (zh) * | 2021-09-22 | 2021-12-10 | 恒安嘉新(北京)科技股份公司 | 基于零信任的计算机病毒防护方法、装置、设备及介质 |
| CN115878086A (zh) * | 2022-11-02 | 2023-03-31 | 中国农业银行股份有限公司 | 一种应用程序的运行处理方法、装置、设备及存储介质 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104503770A (zh) * | 2015-01-12 | 2015-04-08 | 北京国双科技有限公司 | 异常信息的处理方法及装置 |
| CN107301095A (zh) * | 2017-06-14 | 2017-10-27 | 北京小度信息科技有限公司 | 系统运行方法以及操作系统 |
| US20170315856A1 (en) * | 2013-04-29 | 2017-11-02 | Moogsoft, Inc. | System for decomposing events from managed infrastructures |
| CN107391171A (zh) * | 2017-06-14 | 2017-11-24 | 广东网金控股股份有限公司 | 一种解决iOS热修复问题的方法以及用户终端 |
-
2017
- 2017-12-13 CN CN201711326990.8A patent/CN108052407A/zh active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20170315856A1 (en) * | 2013-04-29 | 2017-11-02 | Moogsoft, Inc. | System for decomposing events from managed infrastructures |
| CN104503770A (zh) * | 2015-01-12 | 2015-04-08 | 北京国双科技有限公司 | 异常信息的处理方法及装置 |
| CN107301095A (zh) * | 2017-06-14 | 2017-10-27 | 北京小度信息科技有限公司 | 系统运行方法以及操作系统 |
| CN107391171A (zh) * | 2017-06-14 | 2017-11-24 | 广东网金控股股份有限公司 | 一种解决iOS热修复问题的方法以及用户终端 |
Non-Patent Citations (1)
| Title |
|---|
| JINGXIANLI0922: "《https://blog.csdn.net/jasonjwl/article/details/54016750》", 4 January 2017 * |
Cited By (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109408261A (zh) * | 2018-09-26 | 2019-03-01 | 中国平安财产保险股份有限公司 | 应用程序崩溃处理方法、装置、计算机设备和存储介质 |
| CN109408261B (zh) * | 2018-09-26 | 2023-06-20 | 中国平安财产保险股份有限公司 | 应用程序崩溃处理方法、装置、计算机设备和存储介质 |
| CN109408265A (zh) * | 2018-09-28 | 2019-03-01 | 广州虎牙信息科技有限公司 | 一种ios运行异常的保护方法、装置、终端设备及存储介质 |
| CN109408265B (zh) * | 2018-09-28 | 2022-05-10 | 广州虎牙信息科技有限公司 | 一种ios运行异常的保护方法、装置、终端设备及存储介质 |
| CN110083474A (zh) * | 2019-04-22 | 2019-08-02 | 无线生活(杭州)信息科技有限公司 | 防止应用程序崩溃的方法及装置 |
| CN110221961A (zh) * | 2019-04-26 | 2019-09-10 | 平安科技(深圳)有限公司 | 全局hook自动修复方法、装置、设备及存储介质 |
| CN110221961B (zh) * | 2019-04-26 | 2024-05-28 | 平安科技(深圳)有限公司 | 全局hook自动修复方法、装置、设备及存储介质 |
| CN112925667A (zh) * | 2021-03-29 | 2021-06-08 | 北京奇艺世纪科技有限公司 | 预防sdk崩溃的方法、装置、设备及可读存储介质 |
| CN112925667B (zh) * | 2021-03-29 | 2024-03-08 | 北京奇艺世纪科技有限公司 | 预防sdk崩溃的方法、装置、设备及可读存储介质 |
| CN113779562A (zh) * | 2021-09-22 | 2021-12-10 | 恒安嘉新(北京)科技股份公司 | 基于零信任的计算机病毒防护方法、装置、设备及介质 |
| CN115878086A (zh) * | 2022-11-02 | 2023-03-31 | 中国农业银行股份有限公司 | 一种应用程序的运行处理方法、装置、设备及存储介质 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN108052407A (zh) | 一种应用程序崩溃防护方法、装置、设备及存储介质 | |
| US20120209921A1 (en) | Instant Message Management Method and Apparatus | |
| US20220053068A1 (en) | Methods, apparatuses and computer storage media for applet state synchronization | |
| EP3160150A1 (en) | Electronic device and method for executing function using speech recognition thereof | |
| US20140214879A1 (en) | Person-based information aggregation | |
| EP3340063A1 (en) | Method, device, terminal, server, and system for accessing usb device | |
| EP3547715A1 (en) | Method and apparatus for reducing continuous-wakeup delay of bluetooth loudspeaker, and bluetooth loudspeaker | |
| JP7467644B2 (ja) | メッセージ処理方法、装置及び電子機器 | |
| CN110362288B (zh) | 一种同屏控制方法、装置、设备及存储介质 | |
| US12511137B2 (en) | Method and apparatus for presenting information on lock screen interface, terminal, and storage medium | |
| CN110881224B (zh) | 一种网络长连接方法、装置、设备及存储介质 | |
| CN105100449B (zh) | 一种图片分享方法及移动终端 | |
| CN106330458A (zh) | 一种验证码的处理方法及装置 | |
| CN108337301A (zh) | 应用程序的网络请求处理方法、装置、服务器及存储介质 | |
| US20220245005A1 (en) | Methods, devices and computer storage media for inter-mini program platform discovery | |
| CN107817962B (zh) | 一种远程控制方法、装置、控制服务器及存储介质 | |
| CN111901221A (zh) | 消息的处理方法、设备和计算机存储介质 | |
| CN108737655B (zh) | 图片处理方法及相关装置 | |
| CN108762983A (zh) | 多媒体数据恢复方法及装置 | |
| CN110492935B (zh) | 数据处理系统、方法、装置及终端设备 | |
| WO2023241613A1 (zh) | 通话建立方法、装置、终端、系统及可读存储介质 | |
| CN112306371A (zh) | 存储管理的方法、设备和计算机程序产品 | |
| TW201642111A (zh) | 多介面生成系統及方法 | |
| CN108924308A (zh) | 摄像头的调用方法、装置、存储介质及终端 | |
| CN109005469A (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: 20180518 |