一种热补丁加载方法及装置与流程

文档序号:13982846阅读:233来源:国知局
一种热补丁加载方法及装置与流程

本发明涉及计算机技术领域,特别是涉及一种热补丁加载方法及装置。



背景技术:

电子设备的应用程序在启动过程中,经常因为代码错误,或者配置文件前后版本不兼容等漏洞,导致该应用程序在启动过程中发生崩溃。

在不升级应用程序版本的情况下,经常采用热补丁技术解决上述问题:

现有的应用程序包括业务线程和热补丁文件下载线程,其中,热补丁文件线程和应用程序的业务线程并行运行,其主要是检查是否有针对该应用程序当前版本的热补丁文件,如果有,则下载热补丁文件,热补丁文件下载完成后,加载该热补丁文件或下次应用程序启动时加载该热补丁文件。

然而,发明人在对现有技术进行研究的过程中发现,由于现有技术中业务线程和热补丁文件下载线程是两个并行的线程,在热补丁文件没有下载完成之前,应用程序的业务线程依然在执行,如果应用程序的业务线程恰好启动了存在漏洞的业务流程,则应用程序依然会发生崩溃。

因此,亟需一种能够解决应用程序启动崩溃的技术方案。



技术实现要素:

为解决上述技术问题,本发明实施例提供了一种热补丁加载方法及装置,以解决应用程序启动崩溃的问题,技术方案如下:

一种热补丁加载方法,包括:

在应用程序的业务流程启动前,获取所述应用程序的启动崩溃记录;

根据所述启动崩溃记录,判断所述应用程序是否存在未被修复的漏洞;

若是,获取与所述应用程序的当前版本对应的热补丁文件,并停止所述业务流程的启动。

优选地,根据所述应用程序的启动崩溃记录,判断所述应用程序是否存在未被修复的漏洞,具体包括:

从所述启动崩溃记录中,获取所述应用程序的崩溃次数;

判断所述崩溃次数是否大于预设的崩溃次数阈值;

若是,则确定所述应用程序存在未被修复的漏洞。

优选地,获取与所述应用程序的当前版本对应的热补丁文件,具体包括:

向服务端发送热补丁文件获取请求,所述热补丁文件获取请求至少携带所述应用程序的当前版本;

接收所述服务器响应于所述热补丁文件获取请求所发送的信息,所述信息携带与所述当前版本对应的热补丁文件。

优选地,获取所述应用程序的当前版本对应的热补丁文件之后,所述方法进一步包括:

加载所述热补丁文件,并启动所述业务流程。

一种热补丁加载装置,包括:

启动崩溃记录获取单元,用于在应用程序的业务流程启动前,获取所述应用程序的启动崩溃记录;

漏洞判断单元,用于根据所述启动崩溃记录,判断所述应用程序是否存在未被修复的漏洞;

热补丁文件获取单元,用于当所述漏洞判断单元判断所述应用程序存在未修复的漏洞时,获取与所述应用程序的当前版本对应的热补丁文件,并停止所述业务流程的启动。

优选地,所述漏洞判断单元,具体包括:

崩溃次数获取单元,用于从所述启动崩溃记录中,获取所述应用程序的崩溃次数;

崩溃次数判断单元,用于判断所述崩溃次数是否大于预设的崩溃次数阈值;

漏洞确定单元,用于当所述崩溃次数获取单元判断所述崩溃次数大于预设的崩溃次数阈值时,确定所述应用程序存在未被修复的漏洞。

优选地,所述热补丁文件获取单元,具体包括:

发送单元,用于向服务端发送热补丁文件获取请求,所述热补丁文件获取请求至少携带所述应用程序的当前版本;

接收单元,用于接收所述服务器响应于所述热补丁文件获取请求所发送的信息,所述信息携带与所述当前版本对应的热补丁文件。

优选地,所述装置进一步包括:

加载单元,用于获取所述应用程序的当前版本对应的热补丁文件之后,加载所述热补丁文件,并启动所述业务流程。

本发明实施例所提供的技术方案,在应用程序的业务流程启动前,获取应用程序的启动崩溃记录,当根据启动崩溃记录判断应用程序存在未被修复的漏洞时,获取与应用程序的当前版本对应的热补丁文件,并停止业务流程的启动。由于本发明在获取热补丁文件时,停止了后续业务流程的启动,因此,本申请的方案解决了应用程序因为未修复漏洞而导致启动崩溃的问题,提高了应用程序启动的可靠性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例所提供的一种热补丁加载方法的一种流程示意图;

图2为本发明实施例所提供的一种热补丁加载方法的另一种流程示意图;

图3为本发明实施例所提供的一种热补丁加载装置的一种结构示意图;

图4为本发明实施例所提供的一种热补丁加载装置的另一种结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,图1为本申请实施例提供的热补丁加载方法的一种实现流程图,所述方法包括:

步骤s101、在应用程序的业务流程启动前,获取所述应用程序的启动崩溃记录。

在实际应用中,启动崩溃记录可以仅记录某一个应用程序的崩溃记录,也可记录多个应用程序的崩溃记录。当启动崩溃记录记录了多个应用程序的崩溃记录时,为了便于区分,当应用程序启动发生崩溃时,启动崩溃记录中会记录发生启动崩溃的应用程序的标识,同时,根据对导致发生启动崩溃的漏洞的修复情况,该启动崩溃记录中还记录有该应用程序的崩溃修复情况。

步骤s102、根据所述启动崩溃记录,判断所述应用程序是否存在未被修复的漏洞,若是,执行步骤s103,若否,则结束流程。

步骤s103、获取与所述应用程序的当前版本对应的热补丁文件,并停止所述业务流程的启动。

当获取与应用程序的当前版本对应的热补丁文件后,可以选择退出应用程序的本次启动即停止业务流程的启动,或继续应用程序的本次启动,即加载补丁文件,并启动所述应用程序的业务流程。

本发明提供的技术方案可以和业务流程在同一个线程执行,或者与业务流程在两个线程中执行。当本发明提供的技术方案和业务流程在两个线程中执行时,优选地,该两个线程属于同一进程。

本实施例的方案,在应用程序的业务流程启动前,获取应用程序的启动崩溃记录,当根据启动崩溃记录判断应用程序存在未被修复的漏洞时,获取与应用程序的当前版本对应的热补丁文件,并停止业务流程的启动。由于本发明在获取热补丁文件时,停止了后续业务流程的启动,因此,本申请的方案解决了应用程序因为未修复漏洞而导致启动崩溃的问题,提高了应用程序启动的可靠性。

请参阅图2,图2为本申请实施例提供的热补丁加载方法的另一种实现流程图,所述方法包括:

步骤s201、在应用程序的业务流程启动前,获取所述应用程序的启动崩溃记录。

在实际应用中,启动崩溃记录可以仅记录某一个应用程序的崩溃记录,也可记录多个应用程序的崩溃记录。当启动崩溃记录记录了多个应用程序的崩溃记录时,为了便于区分,当应用程序启动发生崩溃时,启动崩溃记录中会记录发生启动崩溃的应用程序的标识,同时,根据对导致发生启动崩溃的漏洞的修复情况,该启动崩溃记录中还记录有该应用程序的崩溃修复情况。

步骤s202、从所述启动崩溃记录中,获取所述应用程序的崩溃次数。

步骤s203、判断所述崩溃的次数是否大于预设的崩溃次数阈值,若是,则执行步骤s204,若否,则结束流程。

当启动崩溃记录中记录有发生启动崩溃的应用程序的标识时,可以通过统计应用程序的标识的方式获取应用程序的崩溃次数,并通过判断应用程序的崩溃次数是否大于预设的崩溃次数阈值,确定应用程序是否存在未修复的启动崩溃。如,可以将崩溃次数阈值设为3次,并当崩溃次数大于3次时,确定应用程序发生了未修复的启动崩溃。

步骤s204、向服务端发送热补丁文件获取请求,所述热补丁文件获取请求至少携带所述应用程序的当前版本。

为了进一步保证对获取的热补丁文件的可靠性,热补丁文件获取请求还可以包括版本号、渠道号、平台、硬件型号中的至少一种。

步骤s205、接收所述服务器响应于所述热补丁文件获取请求所发送的信息,所述信息携带与所述当前版本对应的热补丁文件。

本实施例,当确定应用程序发生了未修复的启动崩溃时,通过服务器与应用程序的交互握手机制,从服务器端获取与应用程序的当前版本对应的热补丁文件。

步骤s206、加载所述热补丁文件,并启动所述业务流程。

为了保证在业务流程启动时,应用程序不再发生启动崩溃,本实施例的方案获取补丁文件后,加载补丁文件,而后再启动业务流程。

在应用程序的业务流程启动前,获取应用程序的启动崩溃记录,当根据启动崩溃记录中的崩溃次数判断应用程序存在未被修复的漏洞时,从服务器获取与应用程序的当前版本对应的热补丁文件,加载并启动业务流程。由于本发明获取热补丁文件时,停止了后续业务流程的启动,因此,本申请的方案解决了应用程序因为未修复漏洞而导致启动崩溃的问题,提高了应用程序启动的可靠性。

请参阅图3,图3为本申请实施例提供的热补丁加载装置的一种结构示意图,该装置结构示意图中的各单元的工作过程参照图1对应的实施例中方法的执行过程,该装置包括:

启动崩溃记录获取单元310,用于在应用程序的业务流程启动前,获取所述应用程序的启动崩溃记录;

漏洞判断单元320,用于根据所述启动崩溃记录,判断所述应用程序是否存在未被修复的漏洞;

热补丁文件获取单元330,用于当所述漏洞判断单元320判断所述应用程序存在未被修复的漏洞时,获取与所述应用程序的当前版本对应的热补丁文件,并停止所述业务流程的启动。

本实施例的方案,在应用程序的业务流程启动前,获取应用程序的启动崩溃记录,当根据启动崩溃记录判断应用程序存在未被修复的漏洞时,获取与应用程序的当前版本对应的热补丁文件,并停止业务流程的启动。由于本发明在获取热补丁文件时,停止了后续业务流程的启动,因此,本申请的方案解决了应用程序因为未修复漏洞而导致启动崩溃的问题,提高了应用程序启动的可靠性。

请参阅图4,图4为本申请实施例提供的热补丁加载装置的另一种结构示意图,该装置结构示意图中的各单元的工作过程参照图2对应的实施例中方法的执行过程,该装置包括:

启动崩溃记录获取单元410、用于在应用程序的业务流程启动前,获取所述应用程序的启动崩溃记录。

崩溃次数获取单元420、用于从所述启动崩溃记录中,获取所述应用程序的崩溃次数。

崩溃次数判断单元430、用于判断所述崩溃次数是否大于预设的崩溃次数阈值。

发送单元440、用于当所述崩溃次数判断单元430判断所述崩溃次数大于预设的崩溃次数时,向服务端发送热补丁文件获取请求,所述热补丁文件获取请求至少携带所述应用程序的当前版本。

接收单元450、用于接收所述服务器响应于所述热补丁文件获取请求所发送的信息,所述信息携带与所述当前版本对应的热补丁文件。

加载单元460、用于加载所述热补丁文件,并启动所述业务流程。

在应用程序的业务流程启动前,获取应用程序的启动崩溃记录,当根据启动崩溃记录中的崩溃次数判断应用程序存在未被修复的漏洞时,从服务器获取与应用程序的当前版本对应的热补丁文件,加载并启动业务流程。由于本发明在获取热补丁文件时,停止了后续业务流程的启动,因此,本申请的方案解决了应用程序因为未修复漏洞而导致启动崩溃的问题,提高了应用程序启动的可靠性。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1