【技术实现步骤摘要】
应用程序的修复方法和装置、存储介质及电子设备
[0001]本申请涉及计算机领域,具体而言,涉及一种应用程序的修复方法和装置、存储介质及电子设备。
技术介绍
[0002]目前,大多数应用程序由于系统漏洞或者功能节点问题会发生异常,现有技术往往采用发布新版本应用程序的方式来进行旧版本应用程序的更新升级,以修复当前应用程序出现的异常,上述方案无法应对应用程序启动过程中发生异常或者单个功能节点频繁异常的情况,往往修复异常的耗时较长,版本升级也存在较高风险,导致应用程序的修复效率较低,无法满足实际业务需要。
[0003]针对上述的问题,目前尚未提出有效的解决方案。
技术实现思路
[0004]本申请实施例提供了一种应用程序的修复方法和装置、存储介质及电子设备,以至少解决由于通过发布新版本应用程序来修复应用程序异常的耗时较长,升级过程风险大,导致应用程序的修复效率较低的技术问题。
[0005]根据本申请实施例的一个方面,提供了一种应用程序的修复方法,包括:在目标应用程序满足预设启动条件的情况下,启动所述目标 ...
【技术保护点】
【技术特征摘要】
1.一种应用程序的修复方法,其特征在于,包括:在目标应用程序满足预设启动条件的情况下,启动所述目标应用程序,其中,所述目标应用程序的工程架构包括框架层和业务层,所述框架层用于启动所述目标应用程序,所述业务层用于执行所述目标应用程序的业务功能,所述业务层被设置为通过接入一组插件实现所述业务功能;在需要更新所述目标应用程序的目标业务功能的情况下,将目标插件由第一版本更新为第二版本,并保存所述第一版本对应的第一插件数据,其中,所述目标插件表示所述一组插件中与所述目标业务功能关联的插件;在检测到所述目标应用程序出现异常,且造成异常的插件为所述目标插件的情况下,利用所述第一插件数据将所述目标插件由所述第二版本回滚为所述第一版本。2.根据权利要求1所述的方法,其特征在于,所述在检测到所述目标应用程序出现异常,且造成异常的插件为所述目标插件的情况下,利用所述第一插件数据将所述目标插件由所述第二版本回滚为所述第一版本,包括:在检测到所述目标应用程序出现异常的情况下,确定造成异常的原因是否为所述目标插件;在确定造成异常的原因为所述目标插件,且所述目标插件由所述第一版本更新为所述第二版本的情况下,查找所述第一插件数据;在查找到所述第一插件数据的情况下,利用所述第一插件数据将所述目标插件由所述第二版本回滚为所述第一版本。3.根据权利要求2所述的方法,其特征在于,所述在查找到所述第一插件数据的情况下,利用所述第一插件数据将所述目标插件由所述第二版本回滚为所述第一版本,包括:在所述第一版本不属于预设插件版本集合的情况下,查找所述第一插件数据,其中,所述预设插件版本集合表示造成异常的次数满足预设阈值的插件版本集合;利用所述第一插件数据将所述目标插件由所述第二版本回滚为所述第一版本;将所述第二版本添加至所述预设插件版本集合,并保存所述第二版本对应的第二插件数据,其中,所述第一版本对应的所述目标插件允许使用所述第二插件数据中的业务数据。4.根据权利要求2所述的方法,其特征在于,在检测到所述目标应用程序出现异常的情况下,确定造成异常的原因是否为所述目标插件,包括:在检测到所述目标应用程序出现异常的情况下,获取异常堆栈信息,其中,所述异常堆栈信息表示所述目标应用程序出现异常时记录的堆栈信息;根据所述异常堆栈信息确定目标异常类,并通过类加载器加载所述目标异常类,其中,所述目标异常类包括造成所述目标应用程序出现异常的代码片段;根据所述目标异常类的加载结果确定造成异常的原因,其中,在所述加载结果表示所述目标异常类加载成功的情况下,所述造成异常的原因与插件相关,在所述加载结果表示所述目标异常类加载失败的情况下,所述造成异常的原因与插件不相关。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:在所述加载结果表示所述目标异常类加载失败的情况下,禁止将所述目标插件由所述第二版本回滚为所述第一版本;在所述加载结果表示所述目标异常类加载成功,造成异常的插件为所述目标插件,且
所述目标插件由所述第一版本更新为所述第二版本,但未在本地查找到所述第一插件数据的情况下,禁止将所述目标插件由所述第二版本回滚为所述第一版本;在所述加载结果表示所述目标异常类加载成功,造成异常的插件为所述目标插件,所述目标插件由所述第一版本更新为所述第二版本,且所述第一版本属于预设插件版本集合的情况下,禁止将所述目标插件由所述第二版本回滚为所述第一版本,其中,所述预设插件版本集合表示造成异常的次数满足预设阈值的插件版本集合;在禁止将所述目标插件由所述第二版本回滚为所述第一版本的情况下,获取第三版本对应的第三插件数据,其中,所述第一版本对应的所述目标插件由所述第三版本对应的所述目标插件更新得到;利用所述第三插件数据将所述目标插件由所述第二版本回滚为所述第三版本。6.根据权利要求4所述的方法,其特征在于,所述根据所述异常堆栈信息确定目标异常类,并通过类加载器加载所述目标异常类之后,所述方法还包括:通过公共类加载器加载所述目标异常类,获取目标类列表,从所述目标类列表中根据所述目标异常类确定所述目标插件,其中,所述公共类加载器与所述目标应用程序相关联,所述目标类列表中的一个列表项与所述目标应用程序接入的一个插件相关联;或者通过独立类加载器加载所述目标异常类,确...
【专利技术属性】
技术研发人员:刘鸿达,侯锦坤,郭润增,王少鸣,张志强,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。