CN107817984A - 一种热补丁加载方法及装置 - Google Patents
一种热补丁加载方法及装置 Download PDFInfo
- Publication number
- CN107817984A CN107817984A CN201610822098.8A CN201610822098A CN107817984A CN 107817984 A CN107817984 A CN 107817984A CN 201610822098 A CN201610822098 A CN 201610822098A CN 107817984 A CN107817984 A CN 107817984A
- Authority
- CN
- China
- Prior art keywords
- application program
- hot patch
- collapse
- patch file
- leak
- 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
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种热补丁加载方法及装置,所述方法包括:在应用程序的业务流程启动前,获取所述应用程序的启动崩溃记录;根据所述启动崩溃记录,判断所述应用程序是否存在未被修复的漏洞;若是,获取与所述应用程序的当前版本对应的热补丁文件,并停止所述业务流程的启动。由于本发明在获取热补丁文件时,停止了后续业务流程的启动,因此,本申请的方案解决了应用程序因为未修复漏洞而导致启动崩溃的问题,提高了应用程序启动的可靠性。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种热补丁加载方法及装置。
背景技术
电子设备的应用程序在启动过程中,经常因为代码错误,或者配置文件前后版本不兼容等漏洞,导致该应用程序在启动过程中发生崩溃。
在不升级应用程序版本的情况下,经常采用热补丁技术解决上述问题:
现有的应用程序包括业务线程和热补丁文件下载线程,其中,热补丁文件线程和应用程序的业务线程并行运行,其主要是检查是否有针对该应用程序当前版本的热补丁文件,如果有,则下载热补丁文件,热补丁文件下载完成后,加载该热补丁文件或下次应用程序启动时加载该热补丁文件。
然而,发明人在对现有技术进行研究的过程中发现,由于现有技术中业务线程和热补丁文件下载线程是两个并行的线程,在热补丁文件没有下载完成之前,应用程序的业务线程依然在执行,如果应用程序的业务线程恰好启动了存在漏洞的业务流程,则应用程序依然会发生崩溃。
因此,亟需一种能够解决应用程序启动崩溃的技术方案。
发明内容
为解决上述技术问题,本发明实施例提供了一种热补丁加载方法及装置,以解决应用程序启动崩溃的问题,技术方案如下:
一种热补丁加载方法,包括:
在应用程序的业务流程启动前,获取所述应用程序的启动崩溃记录;
根据所述启动崩溃记录,判断所述应用程序是否存在未被修复的漏洞;
若是,获取与所述应用程序的当前版本对应的热补丁文件,并停止所述业务流程的启动。
优选地,根据所述应用程序的启动崩溃记录,判断所述应用程序是否存在未被修复的漏洞,具体包括:
从所述启动崩溃记录中,获取所述应用程序的崩溃次数;
判断所述崩溃次数是否大于预设的崩溃次数阈值;
若是,则确定所述应用程序存在未被修复的漏洞。
优选地,获取与所述应用程序的当前版本对应的热补丁文件,具体包括:
向服务端发送热补丁文件获取请求,所述热补丁文件获取请求至少携带所述应用程序的当前版本;
接收所述服务器响应于所述热补丁文件获取请求所发送的信息,所述信息携带与所述当前版本对应的热补丁文件。
优选地,获取所述应用程序的当前版本对应的热补丁文件之后,所述方法进一步包括:
加载所述热补丁文件,并启动所述业务流程。
一种热补丁加载装置,包括:
启动崩溃记录获取单元,用于在应用程序的业务流程启动前,获取所述应用程序的启动崩溃记录;
漏洞判断单元,用于根据所述启动崩溃记录,判断所述应用程序是否存在未被修复的漏洞;
热补丁文件获取单元,用于当所述漏洞判断单元判断所述应用程序存在未修复的漏洞时,获取与所述应用程序的当前版本对应的热补丁文件,并停止所述业务流程的启动。
优选地,所述漏洞判断单元,具体包括:
崩溃次数获取单元,用于从所述启动崩溃记录中,获取所述应用程序的崩溃次数;
崩溃次数判断单元,用于判断所述崩溃次数是否大于预设的崩溃次数阈值;
漏洞确定单元,用于当所述崩溃次数获取单元判断所述崩溃次数大于预设的崩溃次数阈值时,确定所述应用程序存在未被修复的漏洞。
优选地,所述热补丁文件获取单元,具体包括:
发送单元,用于向服务端发送热补丁文件获取请求,所述热补丁文件获取请求至少携带所述应用程序的当前版本;
接收单元,用于接收所述服务器响应于所述热补丁文件获取请求所发送的信息,所述信息携带与所述当前版本对应的热补丁文件。
优选地,所述装置进一步包括:
加载单元,用于获取所述应用程序的当前版本对应的热补丁文件之后,加载所述热补丁文件,并启动所述业务流程。
本发明实施例所提供的技术方案,在应用程序的业务流程启动前,获取应用程序的启动崩溃记录,当根据启动崩溃记录判断应用程序存在未被修复的漏洞时,获取与应用程序的当前版本对应的热补丁文件,并停止业务流程的启动。由于本发明在获取热补丁文件时,停止了后续业务流程的启动,因此,本申请的方案解决了应用程序因为未修复漏洞而导致启动崩溃的问题,提高了应用程序启动的可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图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、用于加载所述热补丁文件,并启动所述业务流程。
在应用程序的业务流程启动前,获取应用程序的启动崩溃记录,当根据启动崩溃记录中的崩溃次数判断应用程序存在未被修复的漏洞时,从服务器获取与应用程序的当前版本对应的热补丁文件,加载并启动业务流程。由于本发明在获取热补丁文件时,停止了后续业务流程的启动,因此,本申请的方案解决了应用程序因为未修复漏洞而导致启动崩溃的问题,提高了应用程序启动的可靠性。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种热补丁加载方法,其特征在于,包括:
在应用程序的业务流程启动前,获取所述应用程序的启动崩溃记录;
根据所述启动崩溃记录,判断所述应用程序是否存在未被修复的漏洞;
若是,获取与所述应用程序的当前版本对应的热补丁文件,并停止所述业务流程的启动。
2.根据权利要求1所述的方法,其特征在于,根据所述应用程序的启动崩溃记录,判断所述应用程序是否存在未被修复的漏洞,具体包括:
从所述启动崩溃记录中,获取所述应用程序的崩溃次数;
判断所述崩溃次数是否大于预设的崩溃次数阈值;
若是,则确定所述应用程序存在未被修复的漏洞。
3.根据权利要求1所述的方法,其特征在于,获取与所述应用程序的当前版本对应的热补丁文件,具体包括:
向服务端发送热补丁文件获取请求,所述热补丁文件获取请求至少携带所述应用程序的当前版本;
接收所述服务器响应于所述热补丁文件获取请求所发送的信息,所述信息携带与所述当前版本对应的热补丁文件。
4.根据权利要求1-3中任一项权利要求所述的方法,获取所述应用程序的当前版本对应的热补丁文件之后,所述方法进一步包括:
加载所述热补丁文件,并启动所述业务流程。
5.一种热补丁加载装置,其特征在于,包括:
启动崩溃记录获取单元,用于在应用程序的业务流程启动前,获取所述应用程序的启动崩溃记录;
漏洞判断单元,用于根据所述启动崩溃记录,判断所述应用程序是否存在未被修复的漏洞;
热补丁文件获取单元,用于当所述漏洞判断单元判断所述应用程序存在未修复的漏洞时,获取与所述应用程序的当前版本对应的热补丁文件,并停止所述业务流程的启动。
6.根据权利要求5所述的装置,其特征在于,所述漏洞判断单元,具体包括:
崩溃次数获取单元,用于从所述启动崩溃记录中,获取所述应用程序的崩溃次数;
崩溃次数判断单元,用于判断所述崩溃次数是否大于预设的崩溃次数阈值;
漏洞确定单元,用于当所述崩溃次数获取单元判断所述崩溃次数大于预设的崩溃次数阈值时,确定所述应用程序存在未被修复的漏洞。
7.根据权利要求5所述的装置,其特征在于,所述热补丁文件获取单元,具体包括:
发送单元,用于向服务端发送热补丁文件获取请求,所述热补丁文件获取请求至少携带所述应用程序的当前版本;
接收单元,用于接收所述服务器响应于所述热补丁文件获取请求所发送的信息,所述信息携带与所述当前版本对应的热补丁文件。
8.根据权利要求5-7中任一项权利要求所述的装置,所述装置进一步包括:
加载单元,用于获取所述应用程序的当前版本对应的热补丁文件之后,加载所述热补丁文件,并启动所述业务流程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610822098.8A CN107817984A (zh) | 2016-09-13 | 2016-09-13 | 一种热补丁加载方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610822098.8A CN107817984A (zh) | 2016-09-13 | 2016-09-13 | 一种热补丁加载方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107817984A true CN107817984A (zh) | 2018-03-20 |
Family
ID=61600488
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610822098.8A Pending CN107817984A (zh) | 2016-09-13 | 2016-09-13 | 一种热补丁加载方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107817984A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109298960A (zh) * | 2018-08-15 | 2019-02-01 | 中国平安人寿保险股份有限公司 | 应用崩溃处理方法、装置、计算机装置及存储介质 |
CN110262838A (zh) * | 2019-06-14 | 2019-09-20 | 深圳乐信软件技术有限公司 | 一种程序崩溃的处理方法、装置、终端及存储介质 |
CN111258841A (zh) * | 2018-12-03 | 2020-06-09 | 中兴通讯股份有限公司 | 应用热补丁监控方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060265630A1 (en) * | 2005-05-19 | 2006-11-23 | Enrica Alberti | Method, system and computer program for distributing software patches |
CN103428333A (zh) * | 2012-05-15 | 2013-12-04 | 宇龙计算机通信科技(深圳)有限公司 | 移动终端、服务器和错误修复方法 |
CN103677898A (zh) * | 2013-11-08 | 2014-03-26 | 北京奇虎科技有限公司 | 服务器侧审核加载的扩展和/或插件的方法及服务器 |
CN104915220A (zh) * | 2014-03-13 | 2015-09-16 | 中国移动通信集团安徽有限公司 | 一种客户端应用程序的升级方法和系统、客户端 |
US20160085970A1 (en) * | 2014-09-22 | 2016-03-24 | Mcafee, Inc. | Pre-launch process vulnerability assessment |
-
2016
- 2016-09-13 CN CN201610822098.8A patent/CN107817984A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060265630A1 (en) * | 2005-05-19 | 2006-11-23 | Enrica Alberti | Method, system and computer program for distributing software patches |
CN103428333A (zh) * | 2012-05-15 | 2013-12-04 | 宇龙计算机通信科技(深圳)有限公司 | 移动终端、服务器和错误修复方法 |
CN103677898A (zh) * | 2013-11-08 | 2014-03-26 | 北京奇虎科技有限公司 | 服务器侧审核加载的扩展和/或插件的方法及服务器 |
CN104915220A (zh) * | 2014-03-13 | 2015-09-16 | 中国移动通信集团安徽有限公司 | 一种客户端应用程序的升级方法和系统、客户端 |
US20160085970A1 (en) * | 2014-09-22 | 2016-03-24 | Mcafee, Inc. | Pre-launch process vulnerability assessment |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109298960A (zh) * | 2018-08-15 | 2019-02-01 | 中国平安人寿保险股份有限公司 | 应用崩溃处理方法、装置、计算机装置及存储介质 |
CN111258841A (zh) * | 2018-12-03 | 2020-06-09 | 中兴通讯股份有限公司 | 应用热补丁监控方法及装置 |
CN110262838A (zh) * | 2019-06-14 | 2019-09-20 | 深圳乐信软件技术有限公司 | 一种程序崩溃的处理方法、装置、终端及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104834602B (zh) | 一种程序发布方法、装置和程序发布系统 | |
CN107817984A (zh) | 一种热补丁加载方法及装置 | |
CN111522738A (zh) | 微服务系统的测试方法、装置、存储介质和电子设备 | |
CN106776324A (zh) | 接口测试方法及装置 | |
CN109977012B (zh) | 系统的联调测试方法、装置、设备及计算机可读存储介质 | |
CN103914302A (zh) | 一种网页加载进度监控方法和装置 | |
CN106874028A (zh) | 应用部署方法和装置 | |
CN106776784A (zh) | 一种web页面快速加载的方法 | |
CN104572085A (zh) | 应用程序的分析方法及装置 | |
CN106371881A (zh) | 一种用于服务器内程序版本更新的方法和系统 | |
CN112953983A (zh) | Sftp传输方法及装置 | |
CN105933309A (zh) | 自媒体平台之间的内容处理方法及装置 | |
CN104580380A (zh) | 登录状态的同步方法和系统 | |
CN108319551B (zh) | 一种软件的测试方法、装置、计算机设备及可读存储介质 | |
CN114647519A (zh) | 原生平台和Flutter平台间的数据传输方法、装置及存储介质 | |
CN102841843B (zh) | 兼容判断方法及装置 | |
CN106325868A (zh) | 一种在uefi中实现快捷键绑定启动设备的方法 | |
CN111736893B (zh) | 一种软件包版本核验方法及相关装置 | |
CN106339379A (zh) | 网站运行状态监控方法及装置 | |
CN107632909B (zh) | 用于自动测试设备功能的方法及系统 | |
CN105138451A (zh) | 一种用于测试插件的功能的方法、装置和系统 | |
WO2006058485A1 (fr) | Procede de generation d'un service de jeu | |
CN115357258B (zh) | 应用的部署方法、装置、存储介质及电子装置 | |
CN110413467A (zh) | 一种服务器bios的调试方法、装置、设备及介质 | |
CN105653445A (zh) | 一种满足do-178c测试结果的实现方法 |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200507 Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province Applicant after: Alibaba (China) Co.,Ltd. Address before: 100080 Beijing City, Haidian District Suzhou Street No. 3 floor 16 room 2 Applicant before: AUTONAVI INFORMATION TECHNOLOGY Co.,Ltd. |