CN109901950A - 一种规避应用程序崩溃的方法及装置 - Google Patents
一种规避应用程序崩溃的方法及装置 Download PDFInfo
- Publication number
- CN109901950A CN109901950A CN201910155117.XA CN201910155117A CN109901950A CN 109901950 A CN109901950 A CN 109901950A CN 201910155117 A CN201910155117 A CN 201910155117A CN 109901950 A CN109901950 A CN 109901950A
- Authority
- CN
- China
- Prior art keywords
- application program
- destination service
- service component
- collapsed
- function
- 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
- 238000000034 method Methods 0.000 title claims abstract description 57
- 230000008569 process Effects 0.000 claims description 20
- 230000005540 biological transmission Effects 0.000 claims description 10
- 230000009172 bursting Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 description 79
- 238000010586 diagram Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000032696 parturition Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Landscapes
- Stored Programmes (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明提供了一种规避应用程序崩溃的方法及装置,该方法包括:启动应用程序;当所述应用程序运行中发生崩溃时,获取所述应用程序发生崩溃时的函数调用信息;根据所述函数调用信息确定导致所述应用程序发生崩溃的目标服务组件,其中,所述目标服务组件为所述应用程序包括的增值服务组件;将所述目标服务组件的标识信息记录在所述应用程序的运行配置文件中,使得所述应用程序重新启动后根据所述运行配置文件中记录的所述标识信息不对所述目标服务组件进行执行;重新启动所述应用程序。本方案能够提高用户的使用体验。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种规避应用程序崩溃的方法及装置。
背景技术
随着计算机技术的不断发展与进步,智能手机、平板电脑等智能终端上的应用程序所提供的服务越来越多,一个应用程序所提供的各个服务包括核心服务和增值服务,比如视频服务类应用程序所包括的视频服务为核心服务,而该视频服务类应用程序所包括的广告服务为增值服务。核心服务和增值服务均依赖于云端的数据和配置,当云端数据或配置出现异常时,可能导致智能终端上的应用程序无法启动或无法正常运行。
当云端数据或配置出现异常导致应用程序无法启动或正常运行后,需要一定的时间对云端数据或配置进行修复,由于应用程序没有自修复能力,在这段时间内应用程序的核心服务也无法正常使用,导致用户的使用体验较差。
发明内容
本发明实施例提供了规避应用程序崩溃的方法及装置,能够提高用户的使用体验。
第一方面,本发明实施例提供了一种规避应用程序崩溃的方法,包括:
启动应用程序;
当所述应用程序运行中发生崩溃时,获取所述应用程序发生崩溃时的函数调用信息;
根据所述函数调用信息确定导致所述应用程序发生崩溃的目标服务组件,其中,所述目标服务组件为所述应用程序包括的增值服务组件;
将所述目标服务组件的标识信息记录在所述应用程序的运行配置文件中,使得所述应用程序重新启动后根据所述运行配置文件中记录的所述标识信息不对所述目标服务组件进行执行;
重新启动所述应用程序。
可选地,在所述重新启动所述应用程序之后,进一步包括:
向云端服务器发送查询指令,以确定存储在所述云端服务器上的与所述目标服务组件相对应的数据和配置是否被修复;
在确定存储在所述云端服务器上的与所述目标服务组件相对应的数据和配置已经被修复后,将所述运行配置文件中记录的所述标识信息删除。
可选地,所述根据所述函数调用信息确定导致所述应用程序发生崩溃的目标服务组件,包括:
对所述函数调用信息进行分析,获得所述应用程序发生崩溃时所调用函数的函数名;
将所述函数名对应的服务组件确定为导致所述应用程序发生崩溃的所述目标服务组件。
可选地,所述获取所述应用程序发生崩溃时的函数调用信息,包括:
对所述应用程序的崩溃日志进行分析,获得所述应用程序发生崩溃时的所述函数调用信息。
可选地,在所述启动应用程序之后,进一步包括:
注册信号处理函数,其中,所述信号处理函数用于截获所述应用程序的崩溃信号;
当所述信号处理函数截获所述崩溃信号后,确定所述应用程序发生崩溃。
第二方面,本发明实施例还提供了一种规避应用程序崩溃的装置,包括:启动单元、获取单元、识别单元、记录单元和重启动单元;
所述启动单元,用于启动应用程序;
所述获取单元,用于在所述启动单元启动所述应用程序后,当所述应用程序运行中发生崩溃时,获取所述应用程序发生崩溃时的函数调用信息;
所述识别单元,用于根据所述获取单元获取到的所述函数调用信息,确定导致所述应用程序发生崩溃的目标服务组件,其中,所述目标服务组件为所述应用程序包括的增值服务组件;
所述记录单元,用于将所述识别单元确定出的所述目标服务组件的标识信息记录在所述应用程序的运行配置文件中,使得所述应用程序重新启动后根据所述运行配置文件中记录的所述标识信息不对所述目标服务组件进行执行;
所述重启动单元,用于在所述记录单元将所述标识信息记录在所述运行配置文件中之后,重新启动所述应用程序。
可选地,该规避应用程序崩溃的装置进一步包括:发送单元和更新单元;
所述发送单元,用于在所述重启单元重新启动所述应用程序之后,向云端服务器发送查询指令,以确定存储在所述云端服务器上的与所述目标服务组件相对应的数据和配置是否被修复;
所述更新单元,用于在所述发送单元确定存储在所述云端服务器上的与所述目标服务组件相对应的数据和配置已经被修复后,将所述运行配置文件中记录的所述标识信息删除。
可选地,
所述识别单元,用于对所述函数调用信息进行分析,获得所述应用程序发生崩溃时所调用函数的函数名,并将所述函数名对应的服务组件确定为导致所述应用程序发生崩溃的所述目标服务组件。
可选地,
所述获取单元,用于对所述应用程序的崩溃日志进行分析,获得所述应用程序发生崩溃时的所述函数调用信息。
可选地,该规避应用程序崩溃的装置进一步包括:判断单元;
所述判断单元,用于注册信号处理函数,当所述信号处理函数截获所述应用程序的崩溃信号后,确定所述应用程序发生崩溃。
本发明实施例提供的规避应用程序崩溃的方法及装置,当应用程序启动之后在运行过程中发生崩溃时,获取该应用程序发生崩溃时的函数调用信息,根据获取到的函数调用信息确定导致该应用程序发生崩溃的目标服务组件,之后将确定出的目标服务组件的标识信息记录到该应用程序的运行配置文件中,之后对该应用程序进行重新启动,该应用程序重新启动之后会读取运行配置文件中的标识信息,进而根据读取到的标识信息不对目标服务组件进行执行。由此可见,通过函数调用信息确定出导致应用程序发生崩溃的目标服务组件后,将目标服务组件的标识信息记录在应用程序的运行配置文件中,使得应用程序重新启动后不对目标服务组件进行执行,避免应用程序由于执行目标服务组件而发生崩溃,保证应用程序除目标服务组件所对应增值服务之外的其他核心服务和增值服务均可以正常运行,使得用户可以继续对应用程序进行使用,从而可以提高用户的使用体验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的一种规避应用程序崩溃的方法的流程图;
图2是本发明一个实施例提供的另一种规避应用程序崩溃的方法的流程图;
图3是本发明一个实施例提供的一种规避应用程序崩溃的装置所在设备的示意图;
图4是本发明一个实施例提供的一种规避应用程序崩溃的装置的示意图;
图5是本发明一个实施例提供的另一种规避应用程序崩溃的装置的示意图;
图6是本发明一个实施例提供的又一种规避应用程序崩溃的装置的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种规避应用程序崩溃的方法,该方法可以包括以下步骤:
步骤101:启动应用程序;
步骤102:当应用程序运行中发生崩溃时,获取应用程序发生崩溃时的函数调用信息;
步骤103:根据函数调用信息确定导致应用程序发生崩溃的目标服务组件,其中,目标服务组件为应用程序包括的增值服务组件;
步骤104:将目标服务组件的标识信息记录在应用程序的运行配置文件中,使得应用程序重新启动后根据运行配置文件中记录的标识信息不对目标服务组件进行执行;
步骤105:重新启动应用程序。
本发明实施例提供的规避应用程序崩溃的方法,当应用程序启动之后在运行过程中发生崩溃时,获取该应用程序发生崩溃时的函数调用信息,根据获取到的函数调用信息确定导致该应用程序发生崩溃的目标服务组件,之后将确定出的目标服务组件的标识信息记录到该应用程序的运行配置文件中,之后对该应用程序进行重新启动,该应用程序重新启动之后会读取运行配置文件中的标识信息,进而根据读取到的标识信息不对目标服务组件进行执行。由此可见,通过函数调用信息确定出导致应用程序发生崩溃的目标服务组件后,将目标服务组件的标识信息记录在应用程序的运行配置文件中,使得应用程序重新启动后不对目标服务组件进行执行,避免应用程序由于执行目标服务组件而发生崩溃,保证应用程序除目标服务组件所对应增值服务之外的其他核心服务和增值服务均可以正常运行,使得用户可以继续对应用程序进行使用,从而可以提高用户的使用体验。
可选地,在图1所示规避应用程序崩溃的方法的基础上,目标服务组件被执行导致应用程序发生崩溃是由于目标服务组件所对应的数据和配置出现异常,而目标服务组件所对应的数据和配置从是云端服务器获取到的,步骤105对应用程序重新启动之后,可以查询云端服务器存储的对应于目标服务组件的数据和配置是否被修复,当目标服务组件对应的数据和配置被修复后可以使应用程序实现其全部服务。具体为:
向云端服务器发送查询指令,以确定存储在云端服务器上的与目标服务组件相对应的数据和配置是否被修复,如果存储在云端服务器上的与目标服务组件相对应的数据和配置已经被修复,则将运行配置文件中记录的目标服务组件的标识信息删除。
由于目标服务组件的标识信息被记录在应用程序的运行配置文件中,当应用程序启动并读取到运行配置文件中记录的标识信息后,目标服务组件不会被应用程序执行,进而目标服务组件所对应的服务无法实现。当存储在云端服务器上的与目标服务组件相对应的数据和配置被修复后,目标服务组件被执行时不会导致应用程序崩溃,从而可以将目标服务组件的标识信息从应用程序的运行配置文件中删除,进而当应用程序再次启动时可以正常对目标服务组件进行执行,使得目标服务组件对应的服务可以正常实现。
在应用程序重新启动后,查询存储在云端服务器上且与目标服务组件相对应的数据和配置是否被修正,当目标服务组件对应的数据和配置已经被修正后,及时将目标服务组件的标识信息从应用程序的运行配置文件中删除,保证应用程序可以正常实现目标服务组件对应的服务,从而及时恢复应用程序的全部服务,进一步提升用户的使用体验。
可选地,在图1所示规避应用程序崩溃的方法的基础上,步骤103确定导致应用程序发生崩溃的目标服务组件时,具体可以通过如下方式确定目标服务组件:
首先,对获取到的函数调用信息进行分析,获得应用程序发生崩溃时所调用函数的函数名;
然后,将获取到的函数名对应的服务组件确定为导致应用程序发生崩溃的目标服务组件。
在本发明实施例中,应用程序需要执行一个服务组件时需要调用该服务组件所对应的函数,而函数调用信息中存储有应用程序运行过程中所调用函数的函数名,从而根据应用程序发生崩溃的时间可以确定应用程序崩溃时所调用函数的函数名,而在应用程序崩溃时所调用函数对应的服务组件就是导致应用程序发生崩溃的目标服务组件,进而可以将所确定出的函数名对应的服务组件确定为导致应用程序发生崩溃的目标服务组件。
通过对应用程序的函数调用信息进行分析,确定出应用程序发生崩溃时所调用函数的函数名,进而根据函数名确定导致应用程序发生崩溃的目标服务组件,保证能够准确确定出导致应用程序崩溃的服务组件,进而在阻止目标服务组件运行后可以保证应用程序的核心服务能够正常使用。
可选地,在图1所示规避应用程序崩溃的方法的基础上,步骤102获取应用程序发生崩溃时的函数调用信息时,具体可以通过分析应用程序的崩溃日志来获得应用程序发生崩溃时的函数调用信息。
当应用程序发生崩溃时,应用程序崩溃时函数调用回溯会被记录在日志中,因此通过对应用程序发生崩溃时所形成的崩溃日志进行分析便可以获得应用程序的函数调用信息,这样可以保证函数调用信息的准确性,进而可以保证所确定出目标服务组件的准确性。
可选地,在图1所示规避应用程序崩溃的方法的基础上,步骤101启动应用程序之后需要判断应用程序是否发生崩溃,具体可以通过如下方式判断应用程序是否发生崩溃:
在应用程序启动之后,注册一个信号处理函数,该信号处理函数用于截获应用程序的崩溃信号,应用程序发生崩溃时会产生崩溃信号,当信号处理函数截获崩溃信号后便可以确定应用程序发生了崩溃,保证可以准确确定应用程序是否发生崩溃。
下面以属于视频服务类应用程序的应用程序X为例,对本发明实施例提供的规避应用程序崩溃的方法作进一步详细说明,如图2所示,该方法可以包括以下步骤:
步骤201:启动应用程序X。
在本发明实施例中,应用程序X为一个视频服务类应用程序,应用程序X包括视频服务模块、会员管理模块、商城模块、推荐模块和广告模块,其中视频服务模块为该应用程序的核心业务,在其他模块出现问题时需要保证视频服务继续可用。
步骤202:注册信号处理函数,监控应用程序X是否发生崩溃。
在本发明实施例中,在应用程序X启动之后,注册一个用于对应用程序的崩溃信号进行监控的信号处理函数。当应用程序X发生崩溃时,所注册的信号处理函数可以截获应用程序X的崩溃信号,进而在所注册的信号处理函数截获到应用程序X的崩溃信号后,可以确定应用程序X发生了崩溃。
步骤203:当应用程序X发生崩溃后,确定导致应用程序X发生崩溃的目标服务组件。
在本发明实施例中,当所注册的信号处理函数截获到应用程序X的崩溃信号后,确定应用程序X发生崩溃。之后通过对应用程序X的崩溃日志进行分析,获得应用程序X发生崩溃时的函数调用信息,进而根据所获取到的函数调用信息确定导致应用程序X发生崩溃的目标服务组件。
例如,根据所获取到的函数调用信息,确定导致应用程序X发生崩溃的目标服务组件是广告模块。
步骤204:将目标服务组件的标识信息记录到应用程序X的运行配置文件中。
在本发明实施例中,在确定出导致应用程序X发生崩溃的目标服务组件之后,将目标服务组件的标识信息记录到应用程序X的运行配置文件中。
例如,在确定广告模块是导致应用程序X发生崩溃的目标服务组件之后,将广告模块的标识信息记录到应用程序X的运行配置文件中。
步骤205:重新启动应用程序X。
在本发明实施例中,在将目标服务组件的标识信息记录到应用程序X的运行配置文件中之后,对应用程序X进行重新启动。应用程序X在重新启动之后,应用程序X可以读取其运行配置文件中所记录的标识信息,进而不对标识信息被记录在配置运行文件中的目标服务组件进行运行,从而规避了由于执行出现异常的目标服务组件导致应用程序X发生崩溃的情况出现。
例如,由于广告模块的标识信息被记录在配置运行文件中,当应用程序X重新启动后,应用程序X不会对广告模块进行执行,因此应用程序X不会因为执行了广告模块而发生崩溃,保证应用程序X的视频服务可以继续使用。
步骤206:在云端服务器存储的与目标服务组件相对应的数据和配置被修复后将目标服务组件的标识信息从运行配置文件中删除。
在本发明实施例中,当应用程序X重新启动之后,应用程序X可以查询云端服务器中存储的与目标服务组件相对应的数据和配置是否已经被修复,当确定与目标服务组件相对应的数据和配置已经被修复之后,将目标服务组件的标识信息从运行配置文件中删除,使得应用程序X再次启动时目标服务组件可以正常运行。
例如,在查询到云端服务器上存储的与广告模块相关的数据和配置已经被修复之后,将广告模块对应的标识信息从应用程序X的运行配置文件中删除。之后,当应用程序X再次重新启动时,应用程序X可以正常对广告模块进行执行。
需要说明的是,本发明各个实施例提供的规避应用程序崩溃的方法对应的应用程序的运行环境可以为安卓或IOS,具体可以应用于安卓或IOS***的手机、平板电脑、智能电视、机顶盒等智能设备。
如图3、图4所示,本发明实施例提供了一种规避应用程序崩溃的装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图3所示,为本发明实施例提供的规避应用程序崩溃的装置所在设备的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图4所示,作为一个逻辑意义上的装置,是通过其所在设备的CPU将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。本实施例提供的规避应用程序崩溃的装置,包括:启动单元401、获取单元402、识别单元403、记录单元404和重启动单元405;
启动单元401,用于启动应用程序;
获取单元402,用于在启动单元401启动应用程序后,当应用程序运行中发生崩溃时,获取应用程序发生崩溃时的函数调用信息;
识别单元403,用于根据获取单元402获取到的函数调用信息,确定导致应用程序发生崩溃的目标服务组件,其中,目标服务组件为应用程序包括的增值服务组件;
记录单元404,用于将识别单元403确定出的目标服务组件的标识信息记录在应用程序的运行配置文件中,使得应用程序重新启动后根据运行配置文件中记录的标识信息不对目标服务组件进行执行;
重启动单元405,用于在记录单元404将标识信息记录在运行配置文件中之后,重新启动应用程序。
可选地,在图4所示规避应用程序崩溃的装置的基础上,如图5所示,该规避应用程序崩溃的装置进一步包括:发送单元406和更新单元407;
发送单元406,用于在重启单元405重新启动应用程序之后,向云端服务器发送查询指令,以确定存储在云端服务器上的与目标服务组件相对应的数据和配置是否被修复;
更新单元407,用于在发送单元406确定存储在云端服务器上的与目标服务组件相对应的数据和配置已经被修复后,将运行配置文件中记录的标识信息删除。
可选地,在图4所示规避应用程序崩溃的装置的基础上,
识别单元403,用于对函数调用信息进行分析,获得应用程序发生崩溃时所调用函数的函数名,并将获得的函数名对应的服务组件确定为导致应用程序发生崩溃的目标服务组件。
可选地,在图4所示规避应用程序崩溃的装置的基础上,
获取单元402,用于对应用程序的崩溃日志进行分析,获得应用程序发生崩溃时的函数调用信息。
可选地,在图4或图5所示规避应用程序崩溃的装置的基础上,如图6所示,该规避应用程序崩溃的装置进一步包括:判断单元408;
判断单元408,用于注册信号处理函数,当信号处理函数截获应用程序的崩溃信号后,确定应用程序发生崩溃。
需要说明的是,上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本发明实施例还提供了一种可读介质,包括执行指令,当存储控制器的处理器执行所述执行指令时,所述存储控制器执行上述各个实施例提供的规避应用程序崩溃的方法。
本发明实施例还提供了一种存储控制器,包括:处理器、存储器和总线;
所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述存储控制器执行上述各个实施例提供的规避应用程序崩溃的方法。
综上所述,本发明各个实施例提供的规避应用程序崩溃的方法及装置,至少具有如下有益效果:
1、在本发明实施例中,当应用程序启动之后在运行过程中发生崩溃时,获取该应用程序发生崩溃时的函数调用信息,根据获取到的函数调用信息确定导致该应用程序发生崩溃的目标服务组件,之后将确定出的目标服务组件的标识信息记录到该应用程序的运行配置文件中,之后对该应用程序进行重新启动,该应用程序重新启动之后会读取运行配置文件中的标识信息,进而根据读取到的标识信息不对目标服务组件进行执行。由此可见,通过函数调用信息确定出导致应用程序发生崩溃的目标服务组件后,将目标服务组件的标识信息记录在应用程序的运行配置文件中,使得应用程序重新启动后不对目标服务组件进行执行,避免应用程序由于执行目标服务组件而发生崩溃,保证应用程序除目标服务组件所对应增值服务之外的其他核心服务和增值服务均可以正常运行,使得用户可以继续对应用程序进行使用,从而可以提高用户的使用体验。
2、在本发明实施例中,在应用程序重新启动后,查询存储在云端服务器上且与目标服务组件相对应的数据和配置是否被修正,当目标服务组件对应的数据和配置已经被修正后,及时将目标服务组件的标识信息从应用程序的运行配置文件中删除,保证应用程序可以正常实现目标服务组件对应的服务,从而及时恢复应用程序的全部服务,进一步提升用户的使用体验。
3、在本发明实施例中,通过对应用程序的函数调用信息进行分析,确定出应用程序发生崩溃时所调用函数的函数名,进而根据函数名确定导致应用程序发生崩溃的目标服务组件,保证能够准确确定出导致应用程序崩溃的服务组件,进而在阻止目标服务组件运行后可以保证应用程序的核心服务能够正常使用。
4、在本发明实施例中,当应用程序发生崩溃时,应用程序崩溃时函数调用回溯会被记录在日志中,因此通过对应用程序发生崩溃时所形成的崩溃日志进行分析便可以获得应用程序的函数调用信息,这样可以保证函数调用信息的准确性,进而可以保证所确定出目标服务组件的准确性。
5、在本发明实施例中,在应用程序启动之后,注册一个信号处理函数,该信号处理函数用于截获应用程序的崩溃信号,应用程序发生崩溃时会产生崩溃信号,当信号处理函数截获崩溃信号后便可以确定应用程序发生了崩溃,保证可以准确确定应用程序是否发生崩溃。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种规避应用程序崩溃的方法,其特征在于,包括:
启动应用程序;
当所述应用程序运行中发生崩溃时,获取所述应用程序发生崩溃时的函数调用信息;
根据所述函数调用信息确定导致所述应用程序发生崩溃的目标服务组件,其中,所述目标服务组件为所述应用程序包括的增值服务组件;
将所述目标服务组件的标识信息记录在所述应用程序的运行配置文件中,使得所述应用程序重新启动后根据所述运行配置文件中记录的所述标识信息不对所述目标服务组件进行执行;
重新启动所述应用程序。
2.根据权利要求1所述的方法,其特征在于,在所述重新启动所述应用程序之后,进一步包括:
向云端服务器发送查询指令,以确定存储在所述云端服务器上的与所述目标服务组件相对应的数据和配置是否被修复;
在确定存储在所述云端服务器上的与所述目标服务组件相对应的数据和配置已经被修复后,将所述运行配置文件中记录的所述标识信息删除。
3.根据权利要求1所述的方法,其特征在于,所述根据所述函数调用信息确定导致所述应用程序发生崩溃的目标服务组件,包括:
对所述函数调用信息进行分析,获得所述应用程序发生崩溃时所调用函数的函数名;
将所述函数名对应的服务组件确定为导致所述应用程序发生崩溃的所述目标服务组件。
4.根据权利要求1所述的方法,其特征在于,所述获取所述应用程序发生崩溃时的函数调用信息,包括:
对所述应用程序的崩溃日志进行分析,获得所述应用程序发生崩溃时的所述函数调用信息。
5.根据权利要求1至4中任一所述的方法,其特征在于,在所述启动应用程序之后,进一步包括:
注册信号处理函数,其中,所述信号处理函数用于截获所述应用程序的崩溃信号;
当所述信号处理函数截获所述崩溃信号后,确定所述应用程序发生崩溃。
6.一种规避应用程序崩溃的装置,其特征在于,包括:启动单元、获取单元、识别单元、记录单元和重启动单元;
所述启动单元,用于启动应用程序;
所述获取单元,用于在所述启动单元启动所述应用程序后,当所述应用程序运行中发生崩溃时,获取所述应用程序发生崩溃时的函数调用信息;
所述识别单元,用于根据所述获取单元获取到的所述函数调用信息,确定导致所述应用程序发生崩溃的目标服务组件,其中,所述目标服务组件为所述应用程序包括的增值服务组件;
所述记录单元,用于将所述识别单元确定出的所述目标服务组件的标识信息记录在所述应用程序的运行配置文件中,使得所述应用程序重新启动后根据所述运行配置文件中记录的所述标识信息不对所述目标服务组件进行执行;
所述重启动单元,用于在所述记录单元将所述标识信息记录在所述运行配置文件中之后,重新启动所述应用程序。
7.根据权利要求6所述的装置,其特征在于,进一步包括:发送单元和更新单元;
所述发送单元,用于在所述重启单元重新启动所述应用程序之后,向云端服务器发送查询指令,以确定存储在所述云端服务器上的与所述目标服务组件相对应的数据和配置是否被修复;
所述更新单元,用于在所述发送单元确定存储在所述云端服务器上的与所述目标服务组件相对应的数据和配置已经被修复后,将所述运行配置文件中记录的所述标识信息删除。
8.根据权利要求6所述的装置,其特征在于,
所述识别单元,用于对所述函数调用信息进行分析,获得所述应用程序发生崩溃时所调用函数的函数名,并将所述函数名对应的服务组件确定为导致所述应用程序发生崩溃的所述目标服务组件。
9.根据权利要求6所述的装置,其特征在于,
所述获取单元,用于对所述应用程序的崩溃日志进行分析,获得所述应用程序发生崩溃时的所述函数调用信息。
10.根据权利要求6至9中任一所述的装置,其特征在于,进一步包括:判断单元;
所述判断单元,用于注册信号处理函数,当所述信号处理函数截获所述应用程序的崩溃信号后,确定所述应用程序发生崩溃。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910155117.XA CN109901950A (zh) | 2019-03-01 | 2019-03-01 | 一种规避应用程序崩溃的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910155117.XA CN109901950A (zh) | 2019-03-01 | 2019-03-01 | 一种规避应用程序崩溃的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109901950A true CN109901950A (zh) | 2019-06-18 |
Family
ID=66946090
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910155117.XA Pending CN109901950A (zh) | 2019-03-01 | 2019-03-01 | 一种规避应用程序崩溃的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109901950A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110633163A (zh) * | 2019-09-26 | 2019-12-31 | 深圳市七星石科技有限公司 | 一种基于多进程服务器的预防应用程序崩溃的开发方法 |
CN111198725A (zh) * | 2019-12-30 | 2020-05-26 | 掌阅科技股份有限公司 | 应用启动的处理方法、计算设备及计算机存储介质 |
CN112379936A (zh) * | 2019-07-29 | 2021-02-19 | 阿里巴巴集团控股有限公司 | 用于终端设备运行应用程序的方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101030164A (zh) * | 2006-02-28 | 2007-09-05 | 国际商业机器公司 | 用于隔离错误的软件程序组件的方法和*** |
CN103595765A (zh) * | 2013-10-22 | 2014-02-19 | 北京奇虎科技有限公司 | 浏览器异常关闭的处理方法、***、浏览器和服务器 |
US20170177433A1 (en) * | 2015-12-16 | 2017-06-22 | Facebook, Inc. | Systems and methods for application crash management |
CN106919573A (zh) * | 2015-12-24 | 2017-07-04 | 北京奇虎科技有限公司 | 一种重新启动浏览器的方法和设备 |
CN108446226A (zh) * | 2018-03-08 | 2018-08-24 | 北京小米移动软件有限公司 | 应用异常的处理方法 |
-
2019
- 2019-03-01 CN CN201910155117.XA patent/CN109901950A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101030164A (zh) * | 2006-02-28 | 2007-09-05 | 国际商业机器公司 | 用于隔离错误的软件程序组件的方法和*** |
CN103595765A (zh) * | 2013-10-22 | 2014-02-19 | 北京奇虎科技有限公司 | 浏览器异常关闭的处理方法、***、浏览器和服务器 |
US20170177433A1 (en) * | 2015-12-16 | 2017-06-22 | Facebook, Inc. | Systems and methods for application crash management |
CN106919573A (zh) * | 2015-12-24 | 2017-07-04 | 北京奇虎科技有限公司 | 一种重新启动浏览器的方法和设备 |
CN108446226A (zh) * | 2018-03-08 | 2018-08-24 | 北京小米移动软件有限公司 | 应用异常的处理方法 |
Non-Patent Citations (2)
Title |
---|
MARTIN WHITE: "Generating Reproducible and Replayable Bug Reports from Android Application Crashes", 《 2015 IEEE 23RD INTERNATIONAL CONFERENCE ON PROGRAM COMPREHENSION》 * |
马涛: "计算机***崩溃时的若干处理方法", 《民营科技》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112379936A (zh) * | 2019-07-29 | 2021-02-19 | 阿里巴巴集团控股有限公司 | 用于终端设备运行应用程序的方法、装置、设备及介质 |
CN110633163A (zh) * | 2019-09-26 | 2019-12-31 | 深圳市七星石科技有限公司 | 一种基于多进程服务器的预防应用程序崩溃的开发方法 |
CN110633163B (zh) * | 2019-09-26 | 2022-12-09 | 深圳市七星石科技有限公司 | 一种基于多进程服务器的预防应用程序崩溃的开发方法 |
CN111198725A (zh) * | 2019-12-30 | 2020-05-26 | 掌阅科技股份有限公司 | 应用启动的处理方法、计算设备及计算机存储介质 |
CN111198725B (zh) * | 2019-12-30 | 2023-02-28 | 掌阅科技股份有限公司 | 应用启动的处理方法、计算设备及计算机存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109901950A (zh) | 一种规避应用程序崩溃的方法及装置 | |
CN106201811B (zh) | 应用程序的故障恢复方法和终端 | |
CN109361525B (zh) | 重启分布式部署多服务的方法、装置、控制终端及介质 | |
CN110502318A (zh) | 事件处理方法、事件处理服务器、存储介质及装置 | |
US20130055271A1 (en) | Apparatus and method for controlling polling | |
CN111694644A (zh) | 基于机器人操作***的消息处理方法、装置及计算机设备 | |
CN110727495A (zh) | 一种界面元素的自动分段截图方法及*** | |
CN109802842B (zh) | 应用拓扑的生成方法及相关设备 | |
CN105357267A (zh) | 一种获取服务器信息的方法、装置及*** | |
CN109246280B (zh) | 通讯录云处理方法、装置、计算机设备及可读存储介质 | |
CN110427296A (zh) | 一种基于硬件wdt进行监测的方法、设备及可读介质 | |
CN113065054A (zh) | 请求处理方法、装置、电子设备及存储介质 | |
CN108234795B (zh) | 语音告警方法、装置、***、存储介质及处理器 | |
CN111026613A (zh) | 日志处理方法及装置 | |
CN110674171A (zh) | 一种脚本生成方法、装置及数据处理方法、装置 | |
WO2016176919A1 (zh) | 一种实现考勤的方法和考勤服务端 | |
CN116010388A (zh) | 数据校验方法、数据采集服务端及数据校验*** | |
CN115525392A (zh) | 容器监控方法、装置、电子设备及存储介质 | |
CN113452533B (zh) | 计费自巡检、自愈合方法、装置、计算机设备和存储介质 | |
CN113723800A (zh) | 风险识别模型训练方法及装置、风险识别方法及装置 | |
CN113993149A (zh) | 通信诊断日志的处理方法、设备及可读存储介质 | |
CN112422682A (zh) | 数据发送方法及装置、存储介质、电子装置 | |
CN105988917A (zh) | 异常信息获取方法及装置 | |
CN110430093B (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN116384956B (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: 20190618 |