CN108874426A - 一种应用程序更新方法、装置及可读存储介质 - Google Patents

一种应用程序更新方法、装置及可读存储介质 Download PDF

Info

Publication number
CN108874426A
CN108874426A CN201810688382.XA CN201810688382A CN108874426A CN 108874426 A CN108874426 A CN 108874426A CN 201810688382 A CN201810688382 A CN 201810688382A CN 108874426 A CN108874426 A CN 108874426A
Authority
CN
China
Prior art keywords
updated
file
destination application
update mode
update
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.)
Granted
Application number
CN201810688382.XA
Other languages
English (en)
Other versions
CN108874426B (zh
Inventor
杨亮
张文明
陈少杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201810688382.XA priority Critical patent/CN108874426B/zh
Publication of CN108874426A publication Critical patent/CN108874426A/zh
Application granted granted Critical
Publication of CN108874426B publication Critical patent/CN108874426B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

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)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种应用程序更新方法、装置及可读存储介质。该方法包括:获得与目标应用程序对应的第一版本控制文件;获得与目标应用程序对应的第二版本控制文件;基于第一版本控制文件与第二版本控制文件,判断是否需要对目标应用程序进行更新;如果是,获得第一版本控制文件中的更新方式字段的值,基于更新方式字段的值,对目标应用程序进行更新,其中,服务器中配置的更新方式字段的值可以设置为第一预设值或第二预设值,更新方式字段的值为第一预设值时,表示客户端可以采用显式更新方式进行更新,更新方式字段的值为第二预设值时,表示客户端可以采用隐式更新方式进行更新。

Description

一种应用程序更新方法、装置及可读存储介质
技术领域
本发明涉及电子技术领域,尤其涉及一种应用程序更新方法、装置及可读存储介质。
背景技术
在Windows桌面应用程序中,自动更新是一个很重要的部分。现有的自动更新实现中,主要都是在应用程序刚启动时,去检测是否需要更新。如果需要更新,就会启动自动更新程序,首先检测应用程序安装目录中一一校验每个文件是否需要更新,确定出待更新的文件。然后从服务器下载待更新文件的最新版本,最后将下载后的文件覆盖到应用程序的安装目录中,最后重新启动应用程序,从而完成更新。由此可知,在应用程序更新时,用户只能等待应用程序中的文件更新完成后,才能启动应用程序进行对应的应用操作体验,导致用户的应用体验差。
发明内容
本发明实施例提供了一种应用程序更新方法、装置及可读存储介质,用于提供一种能动态配置应用程序更新方式的更新方法,有效提升用户体验。
第一方面,本发明实施例提供了一种应用程序更新方法,应用于客户端,包括:
获得与目标应用程序对应的第一版本控制文件,所述第一版本控制文件为服务器中存储的与所述目标应用程序对应的最新版本的版本控制文件;
获得与所述目标应用程序对应的第二版本控制文件,所述第二版本控制文件为所述客户端中与所述目标应用程序对应的本地安装目录中的版本控制文件;
基于所述第一版本控制文件与所述第二版本控制文件,判断是否需要对所述目标应用程序进行更新;
如果是,获得所述第一版本控制文件中的更新方式字段的值,基于所述更新方式字段的值,对所述目标应用程序进行更新,其中,所述服务器中配置的所述更新方式字段的值可以设置为第一预设值或第二预设值,所述更新方式字段的值为所述第一预设值时,表示所述客户端可以采用显式更新方式进行更新,所述更新方式字段的值为所述第二预设值时,表示所述客户端可以采用隐式更新方式进行更新,所述显式更新方式为待所目标应用程序完成更新后所述目标应用程序才能启动的更新方式,所述隐式更新方式为在所述目标应用程序本次启动运行至退出后进行更新的更新方式。
可选的,所述获得与目标应用程序对应的第一版本控制文件,包括:
在所述目标应用程序每次启动时,发送下载请求至所述服务器,接收所述基于所述下载请求发送的所述第一版本控制文件;或
在所述目标应用程序启动时,获得启动时刻,如果所述启动时刻距上一次发送下载请求的时刻间的时间间隔满足预设条件,发送下载请求至所述服务器,接收所述基于所述下载请求发送的所述第一版本控制文件。
可选的,所述基于所述第一版本控制文件与所述第二版本控制文件,判断是否需要对所述目标应用程序进行更新,包括:
获得所述第一版本控制文件中的第一版本号与所述第二版本控制文件中的第二版本号;
判断所述第一版本号是否大于所述第二版本号,如果是,表明需要对所述目标应用程序进行更新。
可选的,所述基于所述更新方式字段的值,对所述目标应用程序进行更新,包括:
如果所述更新方式字段的值为所述第一预设值,采用所述显式更新方式对所述目标应用程序进行更新;
如果所述更新方式字段的值为所述第二预设值,采用所述隐式更新方式对所述目标应用程序进行更新。
可选的,所述如果所述更新方式字段的值为所述第二预设值,采用所述隐式更新方式对所述目标应用程序进行更新,包括:
如果所述更新方式字段的值为所述第二预设值,获取所述第一版本控制文件中的最低版本要求字段的值,所述最低版本要求字段的值为所述服务器配置的在采用隐式更新方式时,要求客户端中安装目标应用程序的最低版本号;
判断所述第二版本号是否大于所述最低版本要求字段的值,如果是,采用所述隐式更新方式对所述目标应用程序进行更新。
可选的,所述对所述目标应用程序进行更新,包括:
在采用所述显式更新方式对所述目标应用程序进行更新时,下载待更新文件,将所述待更新文件存储至系统的临时目录中的更新文件夹中;
将所述更新文件夹中的所述待更新文件拷贝至所述本地安装目录中,将所述第二版本控制文件替换为所述第一版本控制文件;
启动所述目标应用程序以完成对所述目标应用程序的更新。
可选的,所述对所述目标应用程序进行更新,包括:
在采用所述隐式更新方式对所述目标应用程序进行更新时,启动所述目标应用程序以及下载待更新文件,将所述待更新文件存储至系统的临时目录中的更新文件夹中;
当检测到所述目标应用程序退出时,启动更新程序进程,将所述更新文件夹的路径传递至所述更新程序进程,将所述目标应用程序对应的当前进程的标识以命令行方式传递至所述更新程序进程;
在所述更新程序进程中调用打开进程句柄OpenProcess函数,将所述当前进程的进度标识传递至所述OpenProcess函数,基于所述OpenProcess函数,判断所述目标应用程序是否正在运行,如果是,调用结束进程TerminateProcess函数结束所述目标应用程序的运行进程,基于所述更新文件夹的路径,获得所述更新文件夹中的所述待更新文件,并将所述待更新文件拷贝至所述本地安装目录中,将所述第二版本控制文件替换为所述第一版本控制文件;如果否,基于所述更新文件夹的路径,获得所述更新文件夹中的所述待更新文件,并将所述待更新文件拷贝至所述本地安装目录中,将所述第二版本控制文件替换为所述第一版本控制文件。
第二方面,本发明实施例提供一种应用程序更新装置,应用于客户端,包括:
第一获取单元,用于获得与目标应用程序对应的第一版本控制文件,所述第一版本控制文件为服务器中存储的与所述目标应用程序对应的最新版本的版本控制文件;
第二获取单元,用于获得与所述目标应用程序对应的第二版本控制文件,所述第二版本控制文件为所述客户端中与所述目标应用程序对应的本地安装目录中的版本控制文件;
判断单元,用于基于所述第一版本控制文件与所述第二版本控制文件,判断是否需要对所述目标应用程序进行更新;
更新单元,用于如所述判断单元的判断结果为是,获得所述第一版本控制文件中的更新方式字段的值,基于所述更新方式字段的值,对所述目标应用程序进行更新,其中,所述服务器中配置的所述更新方式字段的值可以设置为第一预设值或第二预设值,所述更新方式字段的值为所述第一预设值时,表示所述客户端可以采用显式更新方式进行更新,所述更新方式字段的值为所述第二预设值时,表示所述客户端可以采用隐式更新方式进行更新,所述显式更新方式为待所目标应用程序完成更新后所述目标应用程序才能启动的更新方式,所述隐式更新方式为在所述目标应用程序本次启动运行至退出后进行更新的更新方式。
可选的,所述第一获取单元具体用于:
在所述目标应用程序每次启动时,发送下载请求至所述服务器,接收所述基于所述下载请求发送的所述第一版本控制文件;或
在所述目标应用程序启动时,获得启动时刻,如果所述启动时刻距上一次发送下载请求的时刻间的时间间隔满足预设条件,发送下载请求至所述服务器,接收所述基于所述下载请求发送的所述第一版本控制文件。
可选的,所述判断单元具体用于:
获得所述第一版本控制文件中的第一版本号与所述第二版本控制文件中的第二版本号;
判断所述第一版本号是否大于所述第二版本号,如果是,表明需要对所述目标应用程序进行更新。
可选的,所述更新单元具体用于:
如果所述更新方式字段的值为所述第一预设值,采用所述显式更新方式对所述目标应用程序进行更新;
如果所述更新方式字段的值为所述第二预设值,采用所述隐式更新方式对所述目标应用程序进行更新。
可选的,所述更新单元具体用于:
如果所述更新方式字段的值为所述第二预设值,获取所述第一版本控制文件中的最低版本要求字段的值,所述最低版本要求字段的值为所述服务器配置的在采用隐式更新方式时,要求客户端中安装目标应用程序的最低版本号;
判断所述第二版本号是否大于所述最低版本要求字段的值,如果是,采用所述隐式更新方式对所述目标应用程序进行更新。
可选的,所述更新单元具体用于:
在采用所述显式更新方式对所述目标应用程序进行更新时,下载待更新文件,将所述待更新文件存储至系统的临时目录中的更新文件夹中;
将所述更新文件夹中的所述待更新文件拷贝至所述本地安装目录中,将所述第二版本控制文件替换为所述第一版本控制文件;
启动所述目标应用程序以完成对所述目标应用程序的更新。
可选的,所述更新单元具体用于:
在采用所述隐式更新方式对所述目标应用程序进行更新时,启动所述目标应用程序以及下载待更新文件,将所述待更新文件存储至系统的临时目录中的更新文件夹中;
当检测到所述目标应用程序退出时,启动更新程序进程,将所述更新文件夹的路径传递至所述更新程序进程,将所述目标应用程序对应的当前进程的标识以命令行方式传递至所述更新程序进程;
在所述更新程序进程中调用打开进程句柄OpenProcess函数,将所述当前进程的进度标识传递至所述OpenProcess函数,基于所述OpenProcess函数,判断所述目标应用程序是否正在运行,如果是,调用结束进程TerminateProcess函数结束所述目标应用程序的运行进程,基于所述更新文件夹的路径,获得所述更新文件夹中的所述待更新文件,并将所述待更新文件拷贝至所述本地安装目录中,将所述第二版本控制文件替换为所述第一版本控制文件;如果否,基于所述更新文件夹的路径,获得所述更新文件夹中的所述待更新文件,并将所述待更新文件拷贝至所述本地安装目录中,将所述第二版本控制文件替换为所述第一版本控制文件。
第三方面,本发明实施例提供一种应用程序更新装置,应用于客户端,所述应用程序更新装置包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如前述第一方面实施例中所述的应用程序更新方法的步骤。
第四方面,本发明实施例提供了一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述第一方面实施例中所述的应用程序更新方法的步骤。
本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
在本发明实施例的技术方案中,服务器与客户端约定有两种应用程序更新方式,一种是显式更新方式,为待所目标应用程序完成更新后目标应用程序才能启动的更新方式。另一种是隐式更新方式,为在应用程序本次启动运行至退出后进行更新的更新方式。服务器中通过配置与目标应用程序对应的最新版本的第一版本控制文件,具体的,配置该文件中的更新方式字段的值,服务器中配置的更新方式字段的值可以设置为第一预设值或第二预设值,更新方式字段的值为第一预设值时,表示客户端可以采用显式更新方式进行更新,更新方式字段的值为第二预设值时,表示客户端可以采用隐式更新方式进行更新。进而,客户端在对目标应用程序进行更新时,从服务器中获得与目标应用程序对应的最新版本的第一版本控制文件,并获得目标应用程序对应的本地安装目录中的第二版本控制文件,在基于第一版本控制文件与第二版本控制文件,确定需要对目标应用程序进行更新时,获得第一版本控制文件中的更新方式字段的值,基于更新方式字段的值,对目标应用程序进行更新。可根据实际情况实现显式更新和隐藏式更新这两种更新方式的动态配置,更符合用户的更新需求,有效提升用户体验。
附图说明
图1为本发明第一实施例中的应用程序更新方法的流程图;
图2为本发明第二实施例中的应用程序更新装置的示意图;
图3为本发明第三实施例中应用程序更新装置的示意图。
具体实施方式
本发明实施例提供了一种应用程序更新方法、装置及可读存储介质,用于提供一种能动态配置应用程序更新方式的更新方法,该方法包括:获得与目标应用程序对应的第一版本控制文件,所述第一版本控制文件为服务器中存储的与所述目标应用程序对应的最新版本的版本控制文件;获得与所述目标应用程序对应的第二版本控制文件,所述第二版本控制文件为所述客户端中与所述目标应用程序对应的本地安装目录中的版本控制文件;基于所述第一版本控制文件与所述第二版本控制文件,判断是否需要对所述目标应用程序进行更新;如果是,获得所述第一版本控制文件中的更新方式字段的值,基于所述更新方式字段的值,对所述目标应用程序进行更新,其中,所述服务器中配置的所述更新方式字段的值可以设置为第一预设值或第二预设值,所述更新方式字段的值为所述第一预设值时,表示所述客户端可以采用显式更新方式进行更新,所述更新方式字段的值为所述第二预设值时,表示所述客户端可以采用隐式更新方式进行更新,所述显式更新方式为待所目标应用程序完成更新后所述目标应用程序才能启动的更新方式,所述隐式更新方式为在所述目标应用程序本次启动运行至退出后进行更新的更新方式。
下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
实施例
请参考图1,本发明第一实施例提供一种应用程序更新方法,应用于客户端,该应用程序更新方法包括如下步骤:
S101:获得与目标应用程序对应的第一版本控制文件,所述第一版本控制文件为服务器中存储的与所述目标应用程序对应的最新版本的版本控制文件;
S102:获得与所述目标应用程序对应的第二版本控制文件,所述第二版本控制文件为所述客户端中与所述目标应用程序对应的本地安装目录中的版本控制文件;
S103:基于所述第一版本控制文件与所述第二版本控制文件,判断是否需要对所述目标应用程序进行更新;
S104:如果是,获得所述第一版本控制文件中的更新方式字段的值,基于所述更新方式字段的值,对所述目标应用程序进行更新,其中,所述服务器中配置的所述更新方式字段的值可以设置为第一预设值或第二预设值,所述更新方式字段的值为所述第一预设值时,表示所述客户端可以采用显式更新方式进行更新,所述更新方式字段的值为所述第二预设值时,表示所述客户端可以采用隐式更新方式进行更新,所述显式更新方式为待所目标应用程序完成更新后所述目标应用程序才能启动的更新方式,所述隐式更新方式为在所述目标应用程序本次启动运行至退出后进行更新的更新方式。
具体的,本实施例中应用程序更新方法,不仅可以应用于例如智能手机、平板电脑之类的移动终端,还可以应用于台式计算机等设备,当然,还可以应用于其它电子设备,在此,本申请不做限制,这些电子设备即为客户端。
客户端内安装有目标应用程序,针对该目标应用程序,服务器与客户端约定有两种应用程序更新方式,一种是显式更新方式,为待目标应用程序完成更新后,目标应用程序才能启动的更新方式。另一种是隐式更新方式,为在目标应用程序本次启动运行至退出后进行更新的更新方式。服务器中通过配置与目标应用程序对应的最新版本的第一版本控制文件,具体的,配置该文件中的更新方式字段的值,更新方式字段的值可以设置为第一预设值或第二预设值,更新方式字段的值为第一预设值时,表示客户端可以采用显式更新方式进行更新,更新方式字段的值为第二预设值时,表示客户端可以采用隐式更新方式进行更新。
进而,客户端在对目标应用程序进行更新时,首先通过步骤S101,从服务器中获得与目标应用程序对应的最新版本的第一版本控制文件,然后通过步骤S102,获得目标应用程序对应的本地安装目录中的第二版本控制文件,然后通过步骤S103,基于第一版本控制文件与第二版本控制文件,判断是否需要对目标应用程序进行更新,如果确定需要更新,通过步骤S104,获得第一版本控制文件中的更新方式字段的值,基于更新方式字段的值,对目标应用程序进行更新。具体的,更新方式字段的值为第一预设值时,客户端可以采用显式更新方式进行更新,更新方式字段的值为第二预设值时,客户端可以采用隐式更新方式进行更新。这样,可根据实际情况实现显式更新和隐藏式更新这两种更新方式的动态配置,更符合用户的更新需求,有效提升用户体验。
进一步,在本实施例中,在确定需要对目标应用程序时,会去从服务器中下载第一版本控制文件version1.ini,以及检测目标应用程序的本地安装目录下的第二版本控制文件version2.ini。在版本控制文件version.ini中,有一些非常重要的字段信息,客户端通过读取这些字段的参数来控制更新流程。下面分别介绍version.ini文件中每个字段的意义。version.ini文件包括如下字段:
url字段:该字段用来告诉自动更新程序,从哪个URL地址去下载最新的文件。
version字段:当版本控制文件位于客户端本地的目标应用程序的安装目录时,即前述的第二版本控制文件version2.ini,该字段的值表示当前客户端中所使用的目标应用程序的第二版本号,标记为ClientVersion。当版本控制文件位于服务器上时,即前述的第一版本控制文件version1.ini,该字段的值表示目标应用程序的最新版本号,即第一版本号,标记为ServerVersion。
hide字段:该字段位于服务器中的第一版本控制文件,用于控制目标应用程序的自动更新程序是采用显式更新还是隐式更新的方式,当该字段的值为1时,表示自动更新程序可能会采用隐式更新,当该字段的值为0时,自动更新一定会采用显式更新的方式。服务器可根据实际情况配置该字段的值。
minHideVersion字段:该字段位于服务器中的第一版本控制文件,该字段用来表示可以采取隐式更新时,客户端的目标应用程序的安装目录下,最低要求的版本。该字段与hide字段联合使用,可以最终确定是否采用隐式更新。
进一步,在本实施例中,步骤S101中,获得与目标应用程序对应的第一版本控制文件的时机可采用以下两种中任意一种方式设定:
第一种:在所述目标应用程序每次启动时,发送下载请求至所述服务器,接收所述基于所述下载请求发送的所述第一版本控制文件。
具体的,在本实施例中,在目标应用程序每次启动时,均会检测目标应用程序是否需要更新,均会向服务器发送下载请求,下载服务器中的第一版本控制文件。首先,需要从与目标应用程序对应的本地安装目录中的第二版本控制文件中获取url字段指示的URL地址,然后基于该字段的值,客户端的目标应用程序的自动更新进程从指示的URL地址去下载该第一版本控制文件。
第二种:在所述目标应用程序启动时,获得启动时刻,如果所述启动时刻距上一次发送下载请求的时刻间的时间间隔满足预设条件,发送下载请求至所述服务器,接收所述基于所述下载请求发送的所述第一版本控制文件。
具体的,在本实施例中,在目标应用程序每次启动时,记录当前的启动时刻T1,并调取上一次发送下载请求的时刻T2,如果T1与T2间的时间间隔大于预设时间间隔,比如:7天、10天等时间间隔,确定向服务器发送下载请求,下载服务器中的第一版本控制文件。首先,需要从与目标应用程序对应的本地安装目录中的第二版本控制文件中获取统一资源定位符URL字段指示的URL地址,然后基于该字段的值,客户端的目标应用程序的自动更新进程从指示的URL地址去下载该第一版本控制文件。在具体实施过程中,预设条件可根据实际情况进行具体设置,在此,本申请不做限制。在此种方式中,目标应用程序按一定的时间间隔去检测是否需要更新,不会每次启动时均去检测是否需要更新,能有效减少客户端的处理负荷。
当然,在具体实施过程中,还可以在检测到用户点击目标应用程序的功能界面中的更新按键时,发送下载请求至服务器,下载该第一版本控制信息。下载获得第一版本控制文件的时机可根据实际需要进行设定,在此,本申请不做限制。
进一步,在本实施例中,步骤S103在具体实施过程中可包括如下步骤:
获得所述第一版本控制文件中的第一版本号与所述第二版本控制文件中的第二版本号;
判断所述第一版本号是否大于所述第二版本号,如果是,表明需要对所述目标应用程序进行更新。
具体的,在本实施例中,首先获得服务器对应的第一版本控制文件中的第一版本号,ServerVersion的值。然后获得本地安装目录中的第二版本控制文件中的第二版本号,ClientVersion的值。当ServerVersion的值大于ClientVersion的值时,就表示客户端上的目标应用程序的版本号小于服务器上的版本号,确定需要对目标应用程序进行更新。
在现有的技术方案中,version.ini文件中只有url和version两个字段,当客户端本地version2.ini文件中ClientVersion的值小于服务器version1.ini文件中ServerVersion的值时,就会采取显式更新的方式,直到更新完成后,用户才能最终启动目标应用程序。
而本实施例中的方案,为了能动态配置客户端目标应用程序的更新方式,服务器通过配置第一版本控制信息的更新方式字段,即前面所提及的hide字段,具体的,基于所述更新方式字段的值,对所述目标应用程序进行更新,在具体实施过程中包括如下步骤:
如果所述更新方式字段的值为所述第一预设值,采用所述显式更新方式对所述目标应用程序进行更新;
如果所述更新方式字段的值为所述第二预设值,采用所述隐式更新方式对所述目标应用程序进行更新。
具体的,在本实施例中,如果从服务器获得的第一版本控制文件中的更新方式字段的值为第一预设值0,即当hide=0时,采用显式更新方式对目标应用程序进行更新。如果从服务器获得的第一版本控制文件中的更新方式字段的值为第二预设值1,即当hide=1时,采用隐式更新方式对所述目标应用程序进行更新。在具体实施过程中,第一预设值与第二预设值可根据实际需要进行设定,在此本申请不做限制。
进一步,在本实施例中,为了不影响用户的应用体验,在客户端启动的目标应用程序的版本较低时,如果启动较低版本的目标应用程序,可能会出现卡顿、资源信息更新不充分等问题,此时不易采用隐式更新方式,而应该采用显式更新方式进行更新,在目标应用程序全部更新完成后启动更新后的目标应用程序。所以,在确定是否采用隐式更新方式时,还可以对客户端本地目标应用程序的最低版本进行限制,具体的,包括如下步骤:
如果所述更新方式字段的值为所述第二预设值,获取所述第一版本控制文件中的最低版本要求字段的值,所述最低版本要求字段的值为所述服务器配置的在采用隐式更新方式时,要求客户端中安装目标应用程序的最低版本号;判断所述第二版本号是否大于所述最低版本要求字段的值,如果是,采用所述隐式更新方式对所述目标应用程序进行更新。
具体的,在本实施例中,服务器中配置有最低版本要求字段,即前面提及的minHideVersion字段,服务器在第一版本控制文件version1.ini中新增了hide字段以及minHideVersion字段。通过version、hide、minHideVersion这三个字段之间的关系,来最终判断是否采用显式更新还是隐藏式更新。
如果从服务器获得的第一版本控制文件中的更新方式字段的值为第一预设值0,即当hide=0时,采用显式更新方式对目标应用程序进行更新。
如果从服务器获得的第一版本控制文件中的更新方式字段的值为第二预设值1,即当hide=1时,客户端中与目标应用程序对应的本地安装目录中第二版本控制文件version2.ini中的ClientVersion小于或等于服务器的第一版本控制文件version1.ini中的minHideVersion,表明客户端中的目标应用程序的版本不满足采用隐式更新的最低版本要求,所以,可以采用显式更新方式对目标应用程序进行更新。
如果从服务器获得的第一版本控制文件中的更新方式字段的值为第二预设值1,即当hide=1时,如果客户端中与目标应用程序对应的本地安装目录中第二版本控制文件version2.ini中的ClientVersion大于服务器的第一版本控制文件version1.ini中的minHideVersion,表明客户端中的目标应用程序的版本满足采用隐式更新的最低版本要求,所以,可以采用隐式更新方式对目标应用程序进行更新。在具体实施过程中,可根据实际情况设定最低版本要求字段的值,在此,本申请不做限制。
进一步,在本实施例中在采用显式更新方式对所述目标应用程序进行更新时,可通过如下步骤实现:
下载待更新文件,将所述待更新文件存储至系统的临时目录中的更新文件夹中;
将所述更新文件夹中的所述待更新文件拷贝至所述本地安装目录中,将所述第二版本控制文件替换为所述第一版本控制文件;
启动所述目标应用程序以完成对所述目标应用程序的更新。
进一步,在本实施例中在采用隐式更新方式对所述目标应用程序进行更新时,可通过如下步骤实现:
启动所述目标应用程序以及下载待更新文件,将所述待更新文件存储至系统的临时目录中的更新文件夹中;
当检测到所述目标应用程序退出时,启动更新程序进程,将所述更新文件夹的路径传递至所述更新程序进程,将所述目标应用程序对应的当前进程的标识以命令行方式传递至所述更新程序进程;
在所述更新程序进程中调用打开进程句柄OpenProcess函数,将所述当前进程的进度标识传递至所述OpenProcess函数,基于所述OpenProcess函数,判断所述目标应用程序是否正在运行,如果是,调用结束进程TerminateProcess函数结束所述目标应用程序的运行进程,基于所述更新文件夹的路径,获得所述更新文件夹中的所述待更新文件,并将所述待更新文件拷贝至所述本地安装目录中,将所述第二版本控制文件替换为所述第一版本控制文件;如果否,基于所述更新文件夹的路径,获得所述更新文件夹中的所述待更新文件,并将所述待更新文件拷贝至所述本地安装目录中,将所述第二版本控制文件替换为所述第一版本控制文件。
具体的,在本实施例中,无论采用隐式更新方式还是显式更新方式,都会采用计算本地安装目录文件中MD5(消息摘要算法第五版)值,然后与服务器中相应文件的MD5值进行比较。所以,需要将存储在服务器上的最新版本的目标应用程序对应的所有文件MD5值的数据库文件ProgramData.zdb下载下来,获取ProgrameData.zdb中的所有文件项,该文件项中有一个filename的文件名称字段,以及该文件的MD5值。然后,对ProgramData.zdb数据库中的每一项,根据其filename文件名称,计算该文件在客户端本地安装目录中的MD5值,如果客户端本地的安装目录中,没有该文件项,表示该文件为新增的文件,则需要下载,放到需要更新文件列表FileNeedUpdate中,然后将计算出来的MD5值与ProgramData.zdb中的MD5值进行比较,如果不相等,则说明该文件需要更新,同理将该文件名称放入到FileNeedUpdate列表中。对ProgramData.zdb数据库中的每一项处理完成之后,在FileNeedUpdate列表中,保存有所有的需要下载的待更新文件。最后利用相关的HTTP下载方法,将FileNeedUpdate列表中的所有待更新文件下载到系统临时目录中的更新文件夹UpdateFiles中。
将待更新文件保存至更新文件夹后,进行文件覆盖,采用显式更新方式和隐式更新方式的文件覆盖方式不同,下面分别阐述采用显式更新方式和采用隐式更新方式时的文件覆盖的详细过程。
在采用显式更新方式时,在系统的临时目录的UpdateFiles文件夹中,保存有所有最新的待更新文件。当采用显式更新时,直接将UpdateFiles文件夹内的所有待更新文件拷贝到客户端的安装目录中,并且将最终从服务器下载下来的第一版本控制文件version1.ini覆盖到客户端的安装目录中,即:将客户端本地的第二版本控制文件替换为该的第一版本控制文件version1.ini。最终调用系统的运行外部程序方法ShellExecute,将客户端的目标应用程序重新启动起来,用户才可以使用该目标应用程序进行对应的应用体验。
在采用隐式更新时,不同于显示更新方式中直接将UpdateFiles文件夹内的所有文件直接覆盖到客户端的安装目录中。因为隐式更新方式需要即可启动目标应用程序,目标应用程序已经在运行,从而不能覆盖文件,影响正在运行的目标应用程序。所以,在采用隐式更新方式时,拷贝UpdateFiles文件夹内的所有的待更新文件到客户端安装目录的过程如下所示:
首先调用系统的ShellExecute方法,立即启动客户端的目标应用程序,将临时保存下载后的UpdateFiles文件夹路径传递给目标应用程序。
进而,当检测到目标应用程序退出时,比如:检测到目标应用程序的关闭按键被点击时,确定检测到目标应用程序退出。此时调用ShellExecute方法,启动目标应用程序对应的更新程序进程,将UpdateFiles文件夹路径传递给更新程序进程,并且将目标应用程序当前的进程id以命令行方式传递给更新程序进程。
然后,更新程序进程启动后,还需要进一步确认目标应用程序相关进程是否全部关闭,所以,调用OpenProcess系统函数,将应用程序的进度id传入到该函数中,判断目标应用程序是否仍然在运行,如果没有运行则直接将UpdateFiles文件夹内的待更新文件拷贝到客户端的目标应用程序的安装目录中。如果目标应用程序仍然在运行,则调用强制结束进程的TerminateProcess系统函数,将目标应用程序对应的正在运行的相关进程杀死,然后拷贝UpdateFiles文件中的待更新文件到安装目录中。并且将最终从服务器下载下来的第一版本控制文件version1.ini覆盖到客户端的安装目录中,即:将客户端本地的第二版本控制文件替换为该的第一版本控制文件version1.ini。这样,即完成了对目标应用程序的更新。
在采用隐式更新方式时,目标应用程序仍能够立即启动,并将自动更新过程放在后台隐藏式的更新,当用户关闭掉目标应用程序时,将隐藏式更新后下载的所有文件拷贝到目标应用程序的安装目录中,那么当用户下次再重新启动目标应用程序时,所使用的就是更新后最新版本的目标应用程序。由于用户可以立即启动目标应用程序,而不需要等待原有的自动更新完成后,才能启动应用程序的弊端,从而可以提高用户体验。
在具体实施过程中,服务器可动态配置hide字段和minHideVersion字段的值来指示客户端对目标应用程序的更新方式。比如,在通过调研获得用户对显式更新方式更偏好时,可将hide字段的值设定为0。在通过调研获得用户对显式更新方式更偏好时,可将hide字段的值设定为1,并设定相应的minHideVersion字段的值。通过本本实施例中的应用程序更新方法,实现了显式更新与隐藏式更新之间的动态配置,即优化了显式更新时因为更新过程较长,影响用户体验的问题,又解决了隐藏式更新时更新率不如显式更新快的问题。
请参见图2,本发明的第二实施例提供了一种应用程序更新装置,应用于客户端,包括:
第一获取单元201,用于获得与目标应用程序对应的第一版本控制文件,所述第一版本控制文件为服务器中存储的与所述目标应用程序对应的最新版本的版本控制文件;
第二获取单元202,用于获得与所述目标应用程序对应的第二版本控制文件,所述第二版本控制文件为所述客户端中与所述目标应用程序对应的本地安装目录中的版本控制文件;
判断单元203,用于基于所述第一版本控制文件与所述第二版本控制文件,判断是否需要对所述目标应用程序进行更新;
更新单元204,用于如所述判断单元的判断结果为是,获得所述第一版本控制文件中的更新方式字段的值,基于所述更新方式字段的值,对所述目标应用程序进行更新,其中,所述服务器中配置的所述更新方式字段的值可以设置为第一预设值或第二预设值,所述更新方式字段的值为所述第一预设值时,表示所述客户端可以采用显式更新方式进行更新,所述更新方式字段的值为所述第二预设值时,表示所述客户端可以采用隐式更新方式进行更新,所述显式更新方式为待所目标应用程序完成更新后所述目标应用程序才能启动的更新方式,所述隐式更新方式为在所述目标应用程序本次启动运行至退出后进行更新的更新方式。
在一种可选实现方式中,所述第一获取单元具体用于:
在所述目标应用程序每次启动时,发送下载请求至所述服务器,接收所述基于所述下载请求发送的所述第一版本控制文件;或
在所述目标应用程序启动时,获得启动时刻,如果所述启动时刻距上一次发送下载请求的时刻间的时间间隔满足预设条件,发送下载请求至所述服务器,接收所述基于所述下载请求发送的所述第一版本控制文件。
在一种可选实现方式中,所述判断单元具体用于:
获得所述第一版本控制文件中的第一版本号与所述第二版本控制文件中的第二版本号;
判断所述第一版本号是否大于所述第二版本号,如果是,表明需要对所述目标应用程序进行更新。
在一种可选实现方式中,所述更新单元具体用于:
如果所述更新方式字段的值为所述第一预设值,采用所述显式更新方式对所述目标应用程序进行更新;
如果所述更新方式字段的值为所述第二预设值,采用所述隐式更新方式对所述目标应用程序进行更新。
在一种可选实现方式中,所述更新单元具体用于:
如果所述更新方式字段的值为所述第二预设值,获取所述第一版本控制文件中的最低版本要求字段的值,所述最低版本要求字段的值为所述服务器配置的在采用隐式更新方式时,要求客户端中安装目标应用程序的最低版本号;
判断所述第二版本号是否大于所述最低版本要求字段的值,如果是,采用所述隐式更新方式对所述目标应用程序进行更新。
在一种可选实现方式中,所述更新单元具体用于:
在采用所述显式更新方式对所述目标应用程序进行更新时,下载待更新文件,将所述待更新文件存储至系统的临时目录中的更新文件夹中;
将所述更新文件夹中的所述待更新文件拷贝至所述本地安装目录中,将所述第二版本控制文件替换为所述第一版本控制文件;
启动所述目标应用程序以完成对所述目标应用程序的更新。
在一种可选实现方式中,所述更新单元具体用于:
在采用所述隐式更新方式对所述目标应用程序进行更新时,启动所述目标应用程序以及下载待更新文件,将所述待更新文件存储至系统的临时目录中的更新文件夹中;
当检测到所述目标应用程序退出时,启动更新程序进程,将所述更新文件夹的路径传递至所述更新程序进程,将所述目标应用程序对应的当前进程的标识以命令行方式传递至所述更新程序进程;
在所述更新程序进程中调用打开进程句柄OpenProcess函数,将所述当前进程的进度标识传递至所述OpenProcess函数,基于所述OpenProcess函数,判断所述目标应用程序是否正在运行,如果是,调用结束进程TerminateProcess函数结束所述目标应用程序的运行进程,基于所述更新文件夹的路径,获得所述更新文件夹中的所述待更新文件,并将所述待更新文件拷贝至所述本地安装目录中,将所述第二版本控制文件替换为所述第一版本控制文件;如果否,基于所述更新文件夹的路径,获得所述更新文件夹中的所述待更新文件,并将所述待更新文件拷贝至所述本地安装目录中,将所述第二版本控制文件替换为所述第一版本控制文件。
请参见图3,本发明的第三实施例提供了一种应用程序更新装置,该实施例的装置包括:处理器301、存储器302以及存储在所述存储器中并可在所述处理器上运行的计算机程序,例如第一实施例中应用程序更新方法对应的程序。所述处理器执行所述计算机程序时实现上述第一实施例中各路径检测中的步骤。或者,所述处理器执行所述计算机程序时实现上述第二实施例的装置中各模块/单元的功能。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述计算机装置中的执行过程。例如,所述计算机程序可以被分割成创建单元、调用单元、处理单元的功能,各单元具体功能如下:
第一获取单元,用于获得与目标应用程序对应的第一版本控制文件,所述第一版本控制文件为服务器中存储的与所述目标应用程序对应的最新版本的版本控制文件;
第二获取单元,用于获得与所述目标应用程序对应的第二版本控制文件,所述第二版本控制文件为所述客户端中与所述目标应用程序对应的本地安装目录中的版本控制文件;
判断单元,用于基于所述第一版本控制文件与所述第二版本控制文件,判断是否需要对所述目标应用程序进行更新;
更新单元,用于如所述判断单元的判断结果为是,获得所述第一版本控制文件中的更新方式字段的值,基于所述更新方式字段的值,对所述目标应用程序进行更新,其中,所述服务器中配置的所述更新方式字段的值可以设置为第一预设值或第二预设值,所述更新方式字段的值为所述第一预设值时,表示所述客户端可以采用显式更新方式进行更新,所述更新方式字段的值为所述第二预设值时,表示所述客户端可以采用隐式更新方式进行更新,所述显式更新方式为待所目标应用程序完成更新后所述目标应用程序才能启动的更新方式,所述隐式更新方式为在所述目标应用程序本次启动运行至退出后进行更新的更新方式。
所述装置可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述示意图3仅仅是计算机装置的示例,并不构成对装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述装置还可以包括输入输出设备、网络接入设备、总线等。
所称处理器301可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
所述存储器302可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、视频数据等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
进一步,该装置所包括的处理器301还具有以下功能:
在所述目标应用程序每次启动时,发送下载请求至所述服务器,接收所述基于所述下载请求发送的所述第一版本控制文件;或
在所述目标应用程序启动时,获得启动时刻,如果所述启动时刻距上一次发送下载请求的时刻间的时间间隔满足预设条件,发送下载请求至所述服务器,接收所述基于所述下载请求发送的所述第一版本控制文件。
进一步,该装置所包括的处理器301还具有以下功能:
获得所述第一版本控制文件中的第一版本号与所述第二版本控制文件中的第二版本号;
判断所述第一版本号是否大于所述第二版本号,如果是,表明需要对所述目标应用程序进行更新。
进一步,该装置所包括的处理器301还具有以下功能:
如果所述更新方式字段的值为所述第一预设值,采用所述显式更新方式对所述目标应用程序进行更新;
如果所述更新方式字段的值为所述第二预设值,采用所述隐式更新方式对所述目标应用程序进行更新。
进一步,该装置所包括的处理器301还具有以下功能:
如果所述更新方式字段的值为所述第二预设值,获取所述第一版本控制文件中的最低版本要求字段的值,所述最低版本要求字段的值为所述服务器配置的在采用隐式更新方式时,要求客户端中安装目标应用程序的最低版本号;
判断所述第二版本号是否大于所述最低版本要求字段的值,如果是,采用所述隐式更新方式对所述目标应用程序进行更新。
进一步,该装置所包括的处理器301还具有以下功能:
在采用所述显式更新方式对所述目标应用程序进行更新时,下载待更新文件,将所述待更新文件存储至系统的临时目录中的更新文件夹中;
将所述更新文件夹中的所述待更新文件拷贝至所述本地安装目录中,将所述第二版本控制文件替换为所述第一版本控制文件;
启动所述目标应用程序以完成对所述目标应用程序的更新。
进一步,该装置所包括的处理器301还具有以下功能:
在采用所述隐式更新方式对所述目标应用程序进行更新时,启动所述目标应用程序以及下载待更新文件,将所述待更新文件存储至系统的临时目录中的更新文件夹中;
当检测到所述目标应用程序退出时,启动更新程序进程,将所述更新文件夹的路径传递至所述更新程序进程,将所述目标应用程序对应的当前进程的标识以命令行方式传递至所述更新程序进程;
在所述更新程序进程中调用打开进程句柄OpenProcess函数,将所述当前进程的进度标识传递至所述OpenProcess函数,基于所述OpenProcess函数,判断所述目标应用程序是否正在运行,如果是,调用结束进程TerminateProcess函数结束所述目标应用程序的运行进程,基于所述更新文件夹的路径,获得所述更新文件夹中的所述待更新文件,并将所述待更新文件拷贝至所述本地安装目录中,将所述第二版本控制文件替换为所述第一版本控制文件;如果否,基于所述更新文件夹的路径,获得所述更新文件夹中的所述待更新文件,并将所述待更新文件拷贝至所述本地安装目录中,将所述第二版本控制文件替换为所述第一版本控制文件。
本发明第四实施例提供了一种计算机可读存储介质,其上存储有计算机程序,本发明第二实施例中的所述应用程序更新装置集成的功能单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述第一实施例的应用程序更新方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种应用程序更新方法,应用于客户端,其特征在于,包括:
获得与目标应用程序对应的第一版本控制文件,所述第一版本控制文件为服务器中存储的与所述目标应用程序对应的最新版本的版本控制文件;
获得与所述目标应用程序对应的第二版本控制文件,所述第二版本控制文件为所述客户端中与所述目标应用程序对应的本地安装目录中的版本控制文件;
基于所述第一版本控制文件与所述第二版本控制文件,判断是否需要对所述目标应用程序进行更新;
如果是,获得所述第一版本控制文件中的更新方式字段的值,基于所述更新方式字段的值,对所述目标应用程序进行更新,其中,所述服务器中配置的所述更新方式字段的值可以设置为第一预设值或第二预设值,所述更新方式字段的值为所述第一预设值时,表示所述客户端可以采用显式更新方式进行更新,所述更新方式字段的值为所述第二预设值时,表示所述客户端可以采用隐式更新方式进行更新,所述显式更新方式为待所目标应用程序完成更新后所述目标应用程序才能启动的更新方式,所述隐式更新方式为在所述目标应用程序本次启动运行至退出后进行更新的更新方式。
2.如权利要求1所述的方法,其特征在于,所述获得与目标应用程序对应的第一版本控制文件,包括:
在所述目标应用程序每次启动时,发送下载请求至所述服务器,接收所述基于所述下载请求发送的所述第一版本控制文件;或
在所述目标应用程序启动时,获得启动时刻,如果所述启动时刻距上一次发送下载请求的时刻间的时间间隔满足预设条件,发送下载请求至所述服务器,接收所述基于所述下载请求发送的所述第一版本控制文件。
3.如权利要求1所述的方法,其特征在于,所述基于所述第一版本控制文件与所述第二版本控制文件,判断是否需要对所述目标应用程序进行更新,包括:
获得所述第一版本控制文件中的第一版本号与所述第二版本控制文件中的第二版本号;
判断所述第一版本号是否大于所述第二版本号,如果是,表明需要对所述目标应用程序进行更新。
4.如权利要求1所述的方法,其特征在于,所述基于所述更新方式字段的值,对所述目标应用程序进行更新,包括:
如果所述更新方式字段的值为所述第一预设值,采用所述显式更新方式对所述目标应用程序进行更新;
如果所述更新方式字段的值为所述第二预设值,采用所述隐式更新方式对所述目标应用程序进行更新。
5.如权利要求4所述的方法,其特征在于,所述如果所述更新方式字段的值为所述第二预设值,采用所述隐式更新方式对所述目标应用程序进行更新,包括:
如果所述更新方式字段的值为所述第二预设值,获取所述第一版本控制文件中的最低版本要求字段的值,所述最低版本要求字段的值为所述服务器配置的在采用隐式更新方式时,要求客户端中安装目标应用程序的最低版本号;
判断所述第二版本号是否大于所述最低版本要求字段的值,如果是,采用所述隐式更新方式对所述目标应用程序进行更新。
6.如权利要求1-5中任一权利要求所述的方法,其特征在于,所述对所述目标应用程序进行更新,包括:
在采用所述显式更新方式对所述目标应用程序进行更新时,下载待更新文件,将所述待更新文件存储至系统的临时目录中的更新文件夹中;
将所述更新文件夹中的所述待更新文件拷贝至所述本地安装目录中,将所述第二版本控制文件替换为所述第一版本控制文件;
启动所述目标应用程序以完成对所述目标应用程序的更新。
7.如权利要求1-5中任一权利要求所述的方法,其特征在于,所述对所述目标应用程序进行更新,包括:
在采用所述隐式更新方式对所述目标应用程序进行更新时,启动所述目标应用程序以及下载待更新文件,将所述待更新文件存储至系统的临时目录中的更新文件夹中;
当检测到所述目标应用程序退出时,启动更新程序进程,将所述更新文件夹的路径传递至所述更新程序进程,将所述目标应用程序对应的当前进程的标识以命令行方式传递至所述更新程序进程;
在所述更新程序进程中调用打开进程句柄OpenProcess函数,将所述当前进程的进度标识传递至所述OpenProcess函数,基于所述OpenProcess函数,判断所述目标应用程序是否正在运行,如果是,调用结束进程TerminateProcess函数结束所述目标应用程序的运行进程,基于所述更新文件夹的路径,获得所述更新文件夹中的所述待更新文件,并将所述待更新文件拷贝至所述本地安装目录中,将所述第二版本控制文件替换为所述第一版本控制文件;如果否,基于所述更新文件夹的路径,获得所述更新文件夹中的所述待更新文件,并将所述待更新文件拷贝至所述本地安装目录中,将所述第二版本控制文件替换为所述第一版本控制文件。
8.一种应用程序更新装置,应用于客户端,其特征在于,包括:
第一获取单元,用于获得与目标应用程序对应的第一版本控制文件,所述第一版本控制文件为服务器中存储的与所述目标应用程序对应的最新版本的版本控制文件;
第二获取单元,用于获得与所述目标应用程序对应的第二版本控制文件,所述第二版本控制文件为所述客户端中与所述目标应用程序对应的本地安装目录中的版本控制文件;
判断单元,用于基于所述第一版本控制文件与所述第二版本控制文件,判断是否需要对所述目标应用程序进行更新;
更新单元,用于如所述判断单元的判断结果为是,获得所述第一版本控制文件中的更新方式字段的值,基于所述更新方式字段的值,对所述目标应用程序进行更新,其中,所述服务器中配置的所述更新方式字段的值可以设置为第一预设值或第二预设值,所述更新方式字段的值为所述第一预设值时,表示所述客户端可以采用显式更新方式进行更新,所述更新方式字段的值为所述第二预设值时,表示所述客户端可以采用隐式更新方式进行更新,所述显式更新方式为待所目标应用程序完成更新后所述目标应用程序才能启动的更新方式,所述隐式更新方式为在所述目标应用程序本次启动运行至退出后进行更新的更新方式。
9.一种应用程序更新装置,应用于客户端,其特征在于,所述应用程序更新装置包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1-7中任一项所述的应用程序更新方法的步骤。
10.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的应用程序更新方法的步骤。
CN201810688382.XA 2018-06-28 2018-06-28 一种应用程序更新方法、装置及可读存储介质 Active CN108874426B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810688382.XA CN108874426B (zh) 2018-06-28 2018-06-28 一种应用程序更新方法、装置及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810688382.XA CN108874426B (zh) 2018-06-28 2018-06-28 一种应用程序更新方法、装置及可读存储介质

Publications (2)

Publication Number Publication Date
CN108874426A true CN108874426A (zh) 2018-11-23
CN108874426B CN108874426B (zh) 2022-05-13

Family

ID=64296374

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810688382.XA Active CN108874426B (zh) 2018-06-28 2018-06-28 一种应用程序更新方法、装置及可读存储介质

Country Status (1)

Country Link
CN (1) CN108874426B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109412873A (zh) * 2018-12-20 2019-03-01 中国移动通信集团江苏有限公司 配置更新方法及装置、终端设备及计算机存储介质
WO2020134545A1 (zh) * 2018-12-29 2020-07-02 深圳云天励飞技术有限公司 配置更新方法及相关产品
CN112114848A (zh) * 2020-09-11 2020-12-22 北京达佳互联信息技术有限公司 驱动更新方法、装置、系统、电子设备及存储介质
CN112181915A (zh) * 2019-07-03 2021-01-05 成都华为技术有限公司 执行业务的方法、装置、终端和存储介质
CN112527362A (zh) * 2021-02-08 2021-03-19 鹏城实验室 Fpga测试程序更新方法、装置、电子设备及存储介质
CN116339767A (zh) * 2022-05-10 2023-06-27 广州南天电脑系统有限公司 应用资源配置方法、装置、计算机设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521371A (zh) * 2011-12-16 2012-06-27 北京新媒传信科技有限公司 一种文件通过web上传并自动重启服务的方法及系统
CN105549998A (zh) * 2015-12-15 2016-05-04 Tcl集团股份有限公司 一种终端应用程序的动态关联升级的方法和系统
CN105700927A (zh) * 2016-01-15 2016-06-22 青岛海信移动通信技术股份有限公司 版本升级方法、终端设备及版本服务器
CN107220345A (zh) * 2017-05-27 2017-09-29 北京酷我科技有限公司 一种App使用的数据库中用户数据保护方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521371A (zh) * 2011-12-16 2012-06-27 北京新媒传信科技有限公司 一种文件通过web上传并自动重启服务的方法及系统
CN105549998A (zh) * 2015-12-15 2016-05-04 Tcl集团股份有限公司 一种终端应用程序的动态关联升级的方法和系统
CN105700927A (zh) * 2016-01-15 2016-06-22 青岛海信移动通信技术股份有限公司 版本升级方法、终端设备及版本服务器
CN107220345A (zh) * 2017-05-27 2017-09-29 北京酷我科技有限公司 一种App使用的数据库中用户数据保护方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109412873A (zh) * 2018-12-20 2019-03-01 中国移动通信集团江苏有限公司 配置更新方法及装置、终端设备及计算机存储介质
CN109412873B (zh) * 2018-12-20 2022-06-03 中国移动通信集团江苏有限公司 配置更新方法及装置、终端设备及计算机存储介质
WO2020134545A1 (zh) * 2018-12-29 2020-07-02 深圳云天励飞技术有限公司 配置更新方法及相关产品
CN112181915A (zh) * 2019-07-03 2021-01-05 成都华为技术有限公司 执行业务的方法、装置、终端和存储介质
CN112181915B (zh) * 2019-07-03 2023-12-08 成都华为技术有限公司 执行业务的方法、装置、终端和存储介质
CN112114848A (zh) * 2020-09-11 2020-12-22 北京达佳互联信息技术有限公司 驱动更新方法、装置、系统、电子设备及存储介质
CN112527362A (zh) * 2021-02-08 2021-03-19 鹏城实验室 Fpga测试程序更新方法、装置、电子设备及存储介质
CN116339767A (zh) * 2022-05-10 2023-06-27 广州南天电脑系统有限公司 应用资源配置方法、装置、计算机设备和存储介质
CN116339767B (zh) * 2022-05-10 2024-03-19 广州南天电脑系统有限公司 应用资源配置方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN108874426B (zh) 2022-05-13

Similar Documents

Publication Publication Date Title
CN108874426A (zh) 一种应用程序更新方法、装置及可读存储介质
US9092286B2 (en) System to automatically process components on a device
KR101150041B1 (ko) 델타 압축 패칭을 이용하여 파일을 업데이트하기 위한시스템 및 방법
US8370826B2 (en) Automatically managing versioning of mashup widgets
CN109284205B (zh) 快照备份方法、装置、计算机设备及存储介质
US20150100955A1 (en) Method and System for Updating Software
US9448781B2 (en) Application installer transmission system, server, and program
US10652315B2 (en) Method, apparatus, and system for distributing information in graphic code
CN108874427A (zh) 一种更新进度获取方法、装置及可读存储介质
KR101201276B1 (ko) 액션 리스트 및 버저닝을 이용한 무선 디바이스상에서액션을 수행하기 위한 방법, 소프트웨어 및 장치
CN111405300A (zh) 挂件展示方法、装置、电子设备及计算机可读存储介质
CN110365745B (zh) 数据处理系统、方法、装置、服务器和计算机可读介质
CN110647739A (zh) 软件安装检测方法、装置、终端及存储介质
EP2624527A1 (en) Terminal application search system
CN114035830A (zh) 软件升级方法、装置及电子设备
GB2507037A (en) Software application discovery using variable frequency file system scanning
CN106293790B (zh) 基于Firefox操作系统的应用程序升级方法和装置
KR101638689B1 (ko) 클라이언트 단말에 대한 사용자 맞춤형 동기화 서비스 제공 방법 및 시스템
CN107154936B (zh) 登录方法、装置和系统
CN110704760B (zh) 数据处理方法和装置
CN113721936B (zh) 一种应用管理方法及智能终端、装置及存储介质
US20040188510A1 (en) System for registry-based automatic installation and component handling on a device
CN115309457B (zh) 应用实例的重启方法、装置、电子设备及可读存储介质
CN117130697A (zh) 在任务栏固定应用的方法和装置
WO2019096269A1 (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
GR01 Patent grant
GR01 Patent grant