CN109558151A - 软件更新方法和系统 - Google Patents
软件更新方法和系统 Download PDFInfo
- Publication number
- CN109558151A CN109558151A CN201811190052.4A CN201811190052A CN109558151A CN 109558151 A CN109558151 A CN 109558151A CN 201811190052 A CN201811190052 A CN 201811190052A CN 109558151 A CN109558151 A CN 109558151A
- Authority
- CN
- China
- Prior art keywords
- file
- update
- packet
- backup
- network
- 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种软件更新方法和系统,采用心跳包方式循环判断网络是否处于连通状态,若网络连通,则下载更新包;若网络不连通,则中断下载,删除已下载的更新包;将更新配置文件中记录的更新包大小与已下载的更新包大小比较是否文件大小一致,若文件大小一致,则更新包下载成功,将下载成功的更新包记为更新文件,关闭网络状态判断;若文件大小不一致,则更新包下载失败;在软件更新前对原文件备份,记为备份文件;根据软件更新结果判断备份文件、更新文件是否需要删除,若软件更新结果为更新成功,则保存更新文件,删除备份文件;若软件更新结果为更新失败,则删除更新文件,还原备份文件。保证更新过程的成功性和软件更新失败时原软件的完整性。
Description
技术领域
本发明涉及Qt编程领域,具体地,涉及一种软件更新方法和系统。
背景技术
目前应用程序的更新方式有两种:全量更新、增量更新,但两种更新方式都存在共同的问题,问题比较集中在更新过程中失败及更新结果失败的融错处理机制。
目前对与增量更新的理解就是通过某种算法找出新版本和旧版本不一样的地方(这个过程也叫做差分),然后将不一样的地方抽取出来形成所谓的更新补丁(patch),也称之为差分包。客户端在检测到更新的时候,只需要下载差分包到本地,然后将差分包合并至本地的安装包,形成新版本的安装包,文件校验通过后再执行安装即可。但有在其过程中会出现一些不确定因素致使文件的下载出现问题,或差分包在合并多校验失败等问题。当出现这些不确定因素时如何保证原有软件的完整性是很有必要的,基于更新过程中失败及更新结果失败的融错机制的研究具有保障软件稳定性的重大意义。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种软件更新方法和系统。
根据本发明提供的一种软件更新方法,包括如下步骤,网络状态判断步骤:采用心跳包方式循环判断网络是否处于连通状态,若网络连通,则下载更新包;若网络不连通,则中断下载,删除已下载的更新包;下载文件判断步骤:将更新配置文件中记录的更新包大小与已下载的更新包大小比较是否文件大小一致,校验已下载的更新包是否文件损坏,若文件大小一致且文件未损坏,则更新包下载成功,将下载成功的更新包记为更新文件,关闭网络状态判断;否则,则更新包下载失败。
优选地,所述软件更新方法,还包括原文件备份步骤:在软件更新前对原文件备份,记为备份文件。
优选地,所述软件更新方法,还包括更新校验步骤:根据软件更新结果判断备份文件、更新文件是否需要删除,若软件更新结果为更新成功,则保存更新文件,删除备份文件;若软件更新结果为更新失败,则删除更新文件,还原备份文件。
根据本发明提供的一种软件更新系统,包括如下模块,网络状态判断模块:采用心跳包方式循环判断网络是否处于连通状态,若网络连通,则下载更新包;若网络不连通,则中断下载,删除已下载的更新包;下载文件判断模块:将更新配置文件中记录的更新包大小与已下载的更新包大小比较是否文件大小一致,校验已下载的更新包是否文件损坏,若文件大小一致且文件未损坏,则更新包下载成功,将下载成功的更新包记为更新文件,关闭网络状态判断;若文件大小不一致,则更新包下载失败。
优选地,所述软件更新系统,还包括原文件备份模块:在软件更新前对原文件备份,记为备份文件。
优选地,所述软件更新系统,还包括更新校验模块:根据软件更新结果判断备份文件、更新文件是否需要删除,若软件更新结果为更新成功,则保存更新文件,删除备份文件;若软件更新结果为更新失败,则删除更新文件,还原备份文件。
根据本发明提供的一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现上述方法的步骤。
与现有技术相比,本发明具有如下的有益效果:
1、采用心跳判断当前网络状态判断文件下载中的问题,确保应用软件更新的文件下载时的网络连通稳定性;
2、结合更新文件下载后大小校验来控制心跳的发送来确保更新文件下载的成功性;
3、结合应用软件原文件的备份来确保软件更新后软件的完整性,对应用软件更新提供完整性保障机制。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明的结构框架图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
根据本发明提供的一种软件更新方法,包括如下步骤:网络状态判断步骤:采用心跳包方式循环判断网络是否处于连通状态,若网络连通,则下载更新包;若网络不连通,则中断下载,删除已下载的更新包;下载文件判断步骤:将更新配置文件中记录的更新包大小与已下载的更新包大小比较是否文件大小一致,若文件大小一致,则更新包下载成功,将下载成功的更新包记为更新文件,关闭网络状态判断;否则,则更新包下载失败。
具体地,所述软件更新方法还包括原文件备份步骤;原文件备份步骤:在软件更新前对原文件备份,记为备份文件。
具体地,所述软件更新方法还包括更新校验步骤;更新校验步骤:根据软件更新结果判断备份文件、更新文件是否需要删除,若软件更新结果为更新成功,则保存更新文件,删除备份文件;若软件更新结果为更新失败,则删除更新文件,还原备份文件。
根据本发明提供的一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现上述方法的步骤。
根据本发明提供的一种软件更新系统,包括如下模块:网络状态判断模块:采用心跳包方式循环判断网络是否处于连通状态,若网络连通,则下载更新包;若网络不连通,则中断下载,删除已下载的更新包;下载文件判断模块:将更新配置文件中记录的更新包大小与已下载的更新包大小比较是否文件大小一致,若文件大小一致,则更新包下载成功,将下载成功的更新包记为更新文件,关闭网络状态判断;若文件大小不一致,则更新包下载失败。
具体地,所述软件更新系统还包括原文件备份模块;原文件备份模块:在软件更新前对原文件备份,记为备份文件。
具体地,所述软件更新系统还包括更新校验模块;更新校验模块:根据软件更新结果判断备份文件、更新文件是否需要删除,若软件更新结果为更新成功,则保存更新文件,删除备份文件;若软件更新结果为更新失败,则删除更新文件,还原备份文件。
本发明提供的软件更新系统,可以通过软件更新方法的步骤流程实现。本领域技术人员可以将软件更新方法理解为所述软件更新系统的优选例。
本发明是在原有的增量更新的基础上,结合目前Qt提供的QtNetwork、QDir、QFile等类实现。在更新过程中为了保证更新结果的完整性,提高应用软件更新的稳定性,在实现过程中添加了部分融错机制,在下载分差包及安装包的过程中针对网络突然断开及无响应的状态,采用心跳包的方式循环判断当前网络是否处于联通的状态,采用服务端单方面发送心跳包判断服务端网络是否畅通,不判断客户端的网络是否畅通,并根据更新配置文件中的大小和当前下载的文件大小判断文件是否下载完成并关闭心跳的发送,具体为,下载完成后的升级文件以压缩包形式存储,首先判断文件的大小,而后使用CRC 校验方法判断文件是否损坏,文件大小符合且文件未损坏,则判定为下载完成。这样避免下载过程中的出现下载文件错误或者下载文件不齐全的问题;在校验文件及更新文件时采用先备份后更新的方法,具体地,在备份中把源文件拷贝到临时目录下,但有些文件是多级目录,采用递归的方法创建多级目录后拷贝文件,有些文件或目录的权限不够,在备份时会先把用户切换到管理员权限然后执行备份和之后的相关操作,这样可以保证文件的权限一致,1、如果是整个文件更新时,首先是判断文件的大小,然后使用CRC校验的方法来比较更新后的文件和更新文件是否一致;2、当是对某个文件中的部分内容进行更新的时候,先对比文件内容确定更新的起始位置,然后把之后的内容进行更新,然后再采用判断文件大小和CRC校验来判断文件的完整性。根据校验结果来判断备份文件是否需要删除及更新文件是否需要删除。如果校验成功,更换更新文件然后删除备份文件,至此应用软件的更新完成;如果校验失败,先删除下载的更新文件然后还原备份文件。这样保证更新失败后原软件的完整性。通过对应用程序进行版本监控,实现应用程序线上分类更新,保证更新过程的成功性和软件更新失败时原软件的完整性。
在具体的实施中,当用户在开启软件时,首先根据版本的监控判断是否需要进行软件的更新,如果需要更新就启动更新进程并根据分差包信息进行更新,用户也可根据需要选择是否需要更新,若选择不需要更新则直接启动应用程序。如果用户选择立即更新,则启动软件的更新进程进行更新,其更新方式有两种:全量更新、增量更新。在更新过程中包含有过程提示和结果提示,具体如图1所示。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (7)
1.一种软件更新方法,其特征在于,包括如下步骤:
网络状态判断步骤:采用心跳包方式循环判断网络是否处于连通状态,若网络连通,则下载更新包;若网络不连通,则中断下载,删除已下载的更新包;
下载文件判断步骤:将更新配置文件中记录的更新包大小与已下载的更新包大小比较是否文件大小一致,校验已下载的更新包是否文件损坏,若文件大小一致且文件未损坏,则更新包下载成功,将下载成功的更新包记为更新文件,关闭网络状态判断;否则,则更新包下载失败。
2.根据权利要求1所述的软件更新方法,其特征在于,还包括原文件备份步骤;
原文件备份步骤:在软件更新前对原文件备份,记为备份文件。
3.根据权利要求2所述的软件更新方法,其特征在于,还包括更新校验步骤;
更新校验步骤:根据软件更新结果判断备份文件、更新文件是否需要删除,若软件更新结果为更新成功,则保存更新文件,删除备份文件;若软件更新结果为更新失败,则删除更新文件,还原备份文件。
4.一种软件更新系统,其特征在于,包括如下模块:
网络状态判断模块:采用心跳包方式循环判断网络是否处于连通状态,若网络连通,则下载更新包;若网络不连通,则中断下载,删除已下载的更新包;
下载文件判断模块:将更新配置文件中记录的更新包大小与已下载的更新包大小比较是否文件大小一致,校验已下载的更新包是否文件损坏,若文件大小一致且文件未损坏,则更新包下载成功,将下载成功的更新包记为更新文件,关闭网络状态判断;若文件大小不一致,则更新包下载失败。
5.根据权利要求4所述的软件更新系统,其特征在于,还包括原文件备份模块;
原文件备份模块:在软件更新前对原文件备份,记为备份文件。
6.根据权利要求5所述的软件更新系统,其特征在于,还包括更新校验模块;
更新校验模块:根据软件更新结果判断备份文件、更新文件是否需要删除,若软件更新结果为更新成功,则保存更新文件,删除备份文件;若软件更新结果为更新失败,则删除更新文件,还原备份文件。
7.一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算机程序被处理器执行时实现权利要求1至3中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811190052.4A CN109558151A (zh) | 2018-10-12 | 2018-10-12 | 软件更新方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811190052.4A CN109558151A (zh) | 2018-10-12 | 2018-10-12 | 软件更新方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109558151A true CN109558151A (zh) | 2019-04-02 |
Family
ID=65864973
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811190052.4A Pending CN109558151A (zh) | 2018-10-12 | 2018-10-12 | 软件更新方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109558151A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782249A (zh) * | 2020-07-10 | 2020-10-16 | 上海淇毓信息科技有限公司 | 一种升级客户端业务功能的方法、装置和电子设备 |
CN111858487A (zh) * | 2020-07-09 | 2020-10-30 | 上海龙旗科技股份有限公司 | 数据更新方法及设备 |
CN112187453A (zh) * | 2020-09-10 | 2021-01-05 | 中信银行股份有限公司 | 一种数字证书更新方法、系统、电子设备和可读存储介质 |
CN112448965A (zh) * | 2019-08-27 | 2021-03-05 | 深圳Tcl数字技术有限公司 | 一种数据更新方法、装置、存储介质及智能终端 |
WO2023092409A1 (zh) * | 2021-11-25 | 2023-06-01 | 西门子股份公司 | 边缘子设备的软件更新方法、系统、计算设备及存储介质 |
CN116932015A (zh) * | 2023-09-18 | 2023-10-24 | 中汽智联技术有限公司 | 一种车辆软件远程升级方法、装置、系统及电子设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101132573A (zh) * | 2006-08-23 | 2008-02-27 | 中兴通讯股份有限公司 | 一种终端批量升级的实现方法 |
CN101753345A (zh) * | 2008-12-10 | 2010-06-23 | 中兴通讯股份有限公司 | 一种数据远程汇总备份装置、方法及系统 |
US8621054B2 (en) * | 2009-02-05 | 2013-12-31 | Fujitsu Limited | Computer-readable recording medium storing software update command program, software update command method, and information processing device |
CN104156244A (zh) * | 2014-08-06 | 2014-11-19 | 北京奇虎科技有限公司 | 一种软件升级的方法和装置 |
CN104978209A (zh) * | 2014-04-14 | 2015-10-14 | 腾讯科技(深圳)有限公司 | 应用的更新方法及装置 |
CN105786538A (zh) * | 2014-12-24 | 2016-07-20 | 博雅网络游戏开发(深圳)有限公司 | 基于安卓系统的软件升级方法和装置 |
CN106528086A (zh) * | 2016-10-10 | 2017-03-22 | 广州视源电子科技股份有限公司 | 一种安卓软件升级的方法及系统 |
CN107423078A (zh) * | 2017-02-28 | 2017-12-01 | 福建中金在线信息科技有限公司 | 一种软件更新方法及装置 |
CN107797812A (zh) * | 2017-09-15 | 2018-03-13 | 许继电源有限公司 | 一种充电机远程在线升级方法及系统 |
CN108182080A (zh) * | 2017-12-28 | 2018-06-19 | 重庆德科电子仪表有限公司 | 一种汽车仪表软件升级的方法 |
-
2018
- 2018-10-12 CN CN201811190052.4A patent/CN109558151A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101132573A (zh) * | 2006-08-23 | 2008-02-27 | 中兴通讯股份有限公司 | 一种终端批量升级的实现方法 |
CN101753345A (zh) * | 2008-12-10 | 2010-06-23 | 中兴通讯股份有限公司 | 一种数据远程汇总备份装置、方法及系统 |
US8621054B2 (en) * | 2009-02-05 | 2013-12-31 | Fujitsu Limited | Computer-readable recording medium storing software update command program, software update command method, and information processing device |
CN104978209A (zh) * | 2014-04-14 | 2015-10-14 | 腾讯科技(深圳)有限公司 | 应用的更新方法及装置 |
CN104156244A (zh) * | 2014-08-06 | 2014-11-19 | 北京奇虎科技有限公司 | 一种软件升级的方法和装置 |
CN105786538A (zh) * | 2014-12-24 | 2016-07-20 | 博雅网络游戏开发(深圳)有限公司 | 基于安卓系统的软件升级方法和装置 |
CN106528086A (zh) * | 2016-10-10 | 2017-03-22 | 广州视源电子科技股份有限公司 | 一种安卓软件升级的方法及系统 |
CN107423078A (zh) * | 2017-02-28 | 2017-12-01 | 福建中金在线信息科技有限公司 | 一种软件更新方法及装置 |
CN107797812A (zh) * | 2017-09-15 | 2018-03-13 | 许继电源有限公司 | 一种充电机远程在线升级方法及系统 |
CN108182080A (zh) * | 2017-12-28 | 2018-06-19 | 重庆德科电子仪表有限公司 | 一种汽车仪表软件升级的方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112448965A (zh) * | 2019-08-27 | 2021-03-05 | 深圳Tcl数字技术有限公司 | 一种数据更新方法、装置、存储介质及智能终端 |
CN112448965B (zh) * | 2019-08-27 | 2022-12-13 | 深圳Tcl数字技术有限公司 | 一种数据更新方法、装置、存储介质及智能终端 |
CN111858487A (zh) * | 2020-07-09 | 2020-10-30 | 上海龙旗科技股份有限公司 | 数据更新方法及设备 |
CN111782249A (zh) * | 2020-07-10 | 2020-10-16 | 上海淇毓信息科技有限公司 | 一种升级客户端业务功能的方法、装置和电子设备 |
CN111782249B (zh) * | 2020-07-10 | 2024-03-29 | 上海淇毓信息科技有限公司 | 一种升级客户端业务功能的方法、装置和电子设备 |
CN112187453A (zh) * | 2020-09-10 | 2021-01-05 | 中信银行股份有限公司 | 一种数字证书更新方法、系统、电子设备和可读存储介质 |
WO2023092409A1 (zh) * | 2021-11-25 | 2023-06-01 | 西门子股份公司 | 边缘子设备的软件更新方法、系统、计算设备及存储介质 |
CN116932015A (zh) * | 2023-09-18 | 2023-10-24 | 中汽智联技术有限公司 | 一种车辆软件远程升级方法、装置、系统及电子设备 |
CN116932015B (zh) * | 2023-09-18 | 2023-12-15 | 中汽智联技术有限公司 | 一种车辆软件远程升级方法、装置、系统及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109558151A (zh) | 软件更新方法和系统 | |
US5901320A (en) | Communication system configured to enhance system reliability using special program version management | |
CN105260215A (zh) | 一种u盘升级车载行车记录仪终端的方法 | |
US9804933B2 (en) | System differential upgrade method, apparatus, and mobile terminal | |
US20070061800A1 (en) | System and method for updating software in a network device | |
CN107239288B (zh) | 一种移动终端的版本升级方法及装置 | |
CN106325929B (zh) | 一种固件升级方法、固件升级装置、冰箱和服务端 | |
WO2019062635A1 (zh) | 升级方法和装置 | |
CN109491698B (zh) | 基于热补丁的系统更新方法及装置 | |
US20160253170A1 (en) | Efficient deployment of thin client applications to end user | |
TWI533216B (zh) | 作業系統更新方法 | |
CN102053853A (zh) | 一种网络游戏版本更新方法 | |
WO2015154513A1 (zh) | 基于cpld的远程升级控制方法和装置 | |
CN107783776B (zh) | 固件升级包的处理方法及装置、电子设备 | |
CN109062598A (zh) | 一种安全的ota升级方法及系统 | |
CN105573780A (zh) | 一种基于容器的移动终端操作系统升级方法和装置 | |
CN111158719B (zh) | 应用软件升级方法及装置 | |
CN112152846B (zh) | 一种基于物联网的计量仪表远程升级方法 | |
WO2017198156A1 (zh) | 业务部署方法、装置和系统 | |
CN105511920A (zh) | 一种基于容器的移动终端操作系统升级方法和装置 | |
CN108322540A (zh) | 客制化数据导入方法、终端及计算机可读存储介质 | |
CN114840242A (zh) | 一种电子设备的系统升级方法、装置及可读存储介质 | |
CN114356855A (zh) | 文件管理方法、装置、电子装置及可读存储介质 | |
EP1584005B1 (en) | Mobile handset with a fault tolerant update agent | |
CN109218345A (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: 20190402 |