一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

软件更新方法、装置、电子设备和存储介质与流程

2021-10-30 02:06:00 来源:中国专利 TAG:互联网 软件更新 电子设备 装置 方法


1.本发明涉及互联网技术领域,具体涉及软件更新方法、装置、电子设备和存储介质。


背景技术:

2.为了增强软件的功能,提高软件安全性和稳定性,会频繁地对软件进行更新。软件更新主要是对软件的安装包中的文件进行更新,如修改、删除或新增文件等。因此,客户端在进行软件更新时,需要通过互联网下载该软件的补丁包,下载的过程需要付出相应的下载时间及流量。
3.目前,软件更新的效率较低。


技术实现要素:

4.本发明提供软件更新方法、装置、电子设备和存储介质,可以提升软件更新效率。
5.本发明提供一种软件更新方法,包括:
6.获取目标软件的多个文件的修改记录;
7.根据文件的修改记录确定文件的更新频繁度,更新频繁度表征文件被修改的概率;
8.根据文件的更新频繁度对文件进行压缩处理,得到目标软件的压缩包;
9.获取目标软件对应的多个更新文件;
10.基于更新文件更新目标软件的压缩包,以便采用更新后的压缩包更新目标软件。
11.本发明还提供一种软件更新装置,包括:
12.第一获取单元,用于获取目标软件的多个文件的修改记录;
13.确定单元,用于根据文件的修改记录确定文件的更新频繁度,更新频繁度表征文件被修改的概率;
14.压缩单元,用于根据文件的更新频繁度对文件进行压缩处理,得到目标软件的压缩包;
15.第二获取单元,用于获取目标软件对应的多个更新文件;
16.更新单元,用于基于更新文件更新目标软件的压缩包,以便采用更新后的压缩包更新目标软件。
17.在一些实施例中,确定单元具体用于:
18.确定文件的类型;
19.根据文件的修改记录和文件的类型确定文件的更新频繁度。
20.在一些实施例中,文件的类型包括美术资源类型、脚本类型,美术资源类型包括美术资源索引子类型、美术资源子类型,确定单元具体用于:
21.当文件的类型为美术资源索引子类型时,将文件的更新频繁度确定为第一等级;
22.当文件的类型为脚本类型或美术资源子类型时,根据文件的修改记录确定文件的
更新频繁度。
23.在一些实施例中,文件的类型还包括其他文件类型,确定单元具体用于:
24.确定文件所在的目录;
25.根据文件所在的目录,确定文件对应的目录等级;
26.根据文件的修改记录确定文件的更新频繁度;
27.基于文件对应的目录等级对文件的更新频繁度进行加权,得到加权后的文件的更新频繁度。
28.在一些实施例中,文件的修改记录包括修改时间和修改次数,确定单元具体用于:
29.根据修改时间确定标准时间差和时间聚集度,标准时间差表征文件的修改时间与当前时间的时间差关系,时间聚集度表征文件的修改时间的聚集程度;
30.当修改次数不小于预设修改次数,且标准时间差不大于预设时间差阈值时,将文件的更新频繁度确定为第一等级;
31.当修改次数不小于预设修改次数,且标准时间差大于预设时间差阈值时,将文件的更新频繁度确定为第二等级;
32.当时间聚集度位于预设时间聚集度范围内时,将文件的更新频繁度确定为第三等级;
33.当修改次数小于预设修改次数时,根据标准时间差和预设时间差阈值确定文件的更新频繁度。
34.在一些实施例中,压缩单元具体用于:
35.根据文件的更新频繁度对文件进行排序处理,得到排序后的文件;
36.对排序后的文件进行压缩处理,得到目标软件的压缩包。
37.在一些实施例中,目标软件的压缩包包括多个压缩文件,压缩单元具体用于:
38.根据网络环境确定压缩文件大小阈值;
39.基于压缩文件大小阈值,将排序后的文件压缩成多个压缩文件。
40.在一些实施例中,更新单元具体用于:
41.当目标软件的压缩包中存在更新文件对应的压缩文件时,基于更新文件对更新文件对应的压缩文件进行更新,得到更新后的压缩文件;
42.当目标软件的压缩包中不存在更新文件对应的压缩文件时,根据更新文件生成新的压缩文件;
43.上传更新后的压缩文件和新的压缩文件,以便客户端基于更新后的压缩文件和新的压缩文件更新目标软件。
44.在一些实施例中,更新单元具体还用于:
45.获取更新文件的文件信息;
46.基于更新文件对更新文件对应的压缩文件进行更新,还包括:
47.获取更新文件对应的压缩文件的文件信息;
48.基于更新文件对应的压缩文件的文件信息和更新文件的文件信息,生成更新引导文件;
49.上传更新引导文件,以便客户端根据更新引导文件下载更新后的压缩文件和新的压缩文件。
50.本发明还提供一种电子设备,包括存储器和处理器,存储器存储有多条指令;所述处理器从所述存储器中加载指令,以执行本发明所提供的任一种软件更新方法中的步骤。
51.本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本发明所提供的任一种软件更新方法中的步骤。
52.本发明可以获取目标软件的文件的修改记录,根据该修改记录确定文件的更新频繁度,从而得到文件未来可能被修改的概率;然后根据文件的更新频繁度来对目标软件的文件进行压缩处理,可以将更新频繁度较高的文件压缩在一起;从而在文件被修改时,可以仅对较少压缩文件进行更新,因此可以减少解压文件再重新压缩文件的时间;并且在更新目标软件时,也可以下载较少的压缩文件,能够提高下载速度。由此,本方案可以提升软件更新的效率。
附图说明
53.为了更清楚地说明本发明中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
54.图1a是本发明提供的软件更新方法的场景示意图;
55.图1b是本发明提供的软件更新方法的流程示意图;
56.图2a是本发明提供的软件更新方法应用在游戏软件场景中的流程示意图;
57.图2b是本发明提供的全量补丁的示意图;
58.图2c是本发明提供的增量补丁的示意图;
59.图3是本发明提供的软件更新装置的一种结构示意图;
60.图4是本发明提供的电子设备的结构示意图。
具体实施方式
61.下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
62.本发明提供软件更新方法、装置、电子设备和存储介质。
63.其中,该软件更新装置具体可以集成在电子设备中,该电子设备可以为终端、服务器等设备。其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、或者个人电脑(personal computer,pc)等设备;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群。在一些实施例中,服务器也可以以终端的形式来实现。
64.在一些实施例中,该软件更新装置还可以集成在多个电子设备中,比如,软件更新装置可以集成在多个服务器和终端设备中,由多个服务器和终端设备来实现本发明的软件更新方法。
65.例如,参考图1a,图1a是本发明实施例提供的软件更新方法的场景示意图。该软件更新方法的场景中,可以包括第一服务器、第二服务器和客户端。其中,第一服务器可以是版本控制系统(version control system,vcs)对应的服务器,如版本控制系统可以是svn
(subversion)、git等等,该版本控制系统可以记录目标软件的多个文件的内容变化。第二服务器可以是内容分发网络(content delivery network,cdn)对应的设备。客户端可以为安装了目标软件的终端设备,或者为准备安装目标软件的终端设备。
66.第一服务器获取目标软件的多个文件的修改记录;根据文件的修改记录确定文件的更新频繁度,更新频繁度表征文件被修改的概率;根据文件的更新频繁度对文件进行压缩处理,得到目标软件的压缩包;获取目标软件对应的多个更新文件;基于更新文件更新目标软件的压缩包,以便客户端采用更新后的压缩包更新目标软件。
67.本实施例中,第一服务器可以获取目标软件的文件的修改记录,根据该修改记录确定文件的更新频繁度,从而得到文件未来可能被修改的概率;然后根据文件的更新频繁度来对目标软件的文件进行压缩处理,可以将更新频繁度较高的文件压缩在一起;从而在文件被修改时,第一服务器可以仅对目标软件的压缩包中的较少压缩文件进行更新,因此可以减少解压文件再重新压缩文件的时间;并且客户端在更新目标软件时,也可以下载较少的压缩文件,能够提高下载速度。由此,本方案可以提升软件更新的效率。
68.以下分别进行详细说明。需说明的是,以下实施例的序号不作为对实施例优选顺序的限定。
69.在本实施例中,提供了一种软件更新方法,如图1b所示,该软件更新方法的具体流程可以如下:
70.110、获取目标软件的多个文件的修改记录。
71.其中,目标软件可以为是一系列按照特定顺序组织的计算机数据和指令的集合,可以为系统软件也可以为应用软件,其中应用软件可以包括游戏软件、即时通讯软件等。
72.目标软件的多个文件可以包括目标软件的安装和运行所需的所有文件。例如,以游戏软件为例,可以以文件类型对游戏软件的多个文件进行划分,该文件的类型可以包括但不限于美术资源类型、脚本类型和其他文件类型,美术资源类型包括美术资源索引子类型、美术资源子类型;该多个文件可以包括但不限于脚本类型对应的文件、美术资源类型对应的文件、以及其他类型对应的文件。其中,美术资源类型的文件可以包括美术资源子类型的文件(如游戏虚拟角色资源文件、贴图资源文件、用户界面贴图文件等)、美术资源索引子类型的文件(如美术资源的元文件resource.repository)等;其他类型的文件可以是目标目录下的文件,该目标目录可以包括但不限于用户界面目录(ui)、游戏虚拟角色目录(char)、预制件目录(prefab)、虚拟场景目录(worlds)、寻路网格目录(navigate)、音频目录(soundbanks)、游戏配置目录(gameconfig)、字体目录(fonts)、静态图片目录(uiimage)。可以理解的是,文件的文件类型也可以与目录相关,比如脚本类型可以对应script目录,美术资源类型可以对应仓库(repo)目录,该仓库目录包括虚拟模型、动画、特效、蒙皮、骨骼、材质、贴图等子目录。
73.修改记录可以是文件内容发生变化时的信息,例如,可以包括但不限于修改时间、修改次数;其中,修改时间可以是文件被修改时的标准时间。在一些实施例中,可以对修改时间进行统计得到修改次数。
74.每次对目标软件的多个文件进行修改时,版本控制系统记录文件的修改记录。在一些实施例中,版本控制系统可以获取预设时间段内目标软件的多个文件的修改记录;其中,预设时间段可以根据实际应用情况自定义设置,如根据软件更新的频率进行设置,软件
更新的频率越高则预设时间段可以相应缩短,例如可以为半年、两个月等。在一些实施例中,版本控制系统可以获取目标软件的多个文件的所有修改记录。
75.120、根据文件的修改记录确定文件的更新频繁度,该更新频繁度表征文件被修改的概率。
76.其中,更新频繁度可以分为不同的等级。在一些实施例中,更新频繁度可以包括第一等级、第二等级、第三等级、第四等级和第五等级,从第一等级到第五等级可以表示文件被修改的概率依次减小,即更新频繁度依次降低。可以理解的是,每个等级可以划分为多个小等级,可以采用n来表示更新频繁度,n的取值可以为任意整数,如可以为5或者6;例如,第一等级可以表示为n级,第三等级可以表示为n/2 1~n

1级,第二等级可以表示为n/2级,第四等级可以表示为2~n/2 1级,第五等级可以表示为1级;数值越大表示文件被修改的概率越高,即更新频繁度更高。在一些实施例中,可以根据软件的类型来确定更新频繁度的划分,例如游戏软件的更新频繁度可以划分成较多的等级,即时通讯软件可以划分相对较少的等级。
77.对于软件更新来说,一般压缩包中的部分文件会经常进行更新,而有些文件是基本不会更新的,因此,可以根据文件的修改记录确定文件的更新频繁度,从而得到文件可能被修改的概率。
78.在一些实施例中,可以确定文件的类型,然后根据文件的修改记录和文件的类型确定文件的更新频繁度。
79.其中,根据文件的修改记录和文件的类型确定文件的更新频繁度可以包括但不限于:当文件的类型为美术资源索引子类型时,将文件的更新频繁度确定为第一等级。当文件的类型为脚本类型或美术资源子类型时,根据文件的修改记录确定文件的更新频繁度。对于其他类型的文件,可以确定文件所在的目录;根据文件所在的目录,确定文件对应的目录等级,其中,目录等级可以划分为m个等级;根据文件的修改记录确定其他类型的文件的更新频繁度;基于文件对应的目录等级对其他类型的文件的更新频繁度进行加权,得到加权后的文件的更新频繁度,例如,可以将目录等级与文件的更新频繁度进行叠加。
80.其中,根据文件的修改记录确定文件的更新频繁度的具体实施方式不做限制。在一些实施例中,可以根据修改时间确定标准时间差和时间聚集度。其中,标准时间差表征文件的修改时间与当前时间的时间差关系,可以采用下式计算得到标准时间差:
[0081][0082]
其中,n表示修改次数,t表示当前时间,当前时间可以为获取修改记录的时间。
[0083]
时间聚集度表征文件的修改时间的聚集程度,可以采用下式计算得到时间聚集度:
[0084]
其中
[0085]
其中,x
i
表示第i次文件被修改时的修改时间,μ表示文件修改时间的平均值。
[0086]
当修改次数不小于预设修改次数,且标准时间差不大于预设时间差阈值时,将文件的更新频繁度确定为第一等级。
[0087]
当修改次数不小于预设修改次数,且标准时间差大于预设时间差阈值时,将文件的更新频繁度确定为第二等级。
[0088]
当时间聚集度位于预设时间聚集度范围内时,将文件的更新频繁度确定为第三等级。
[0089]
当修改次数小于预设修改次数时,根据标准时间差和预设时间差阈值确定文件的更新频繁度;如根据预设时间差阈值设置对应的时间差阈值范围;当文件的标准时间差在时间差阈值范围之外,且标准时间差大于时间差阈值范围的最大值,将文件的更新频繁度确定为第四等级;当文件的标准时间差在时间差阈值范围内,将文件的更新频繁度确定为第二等级;当文件的标准时间差在时间差阈值范围之外,且标准时间差小于时间差阈值范围的最小值,将文件的更新频繁度确定为第三等级。可知,通过文件的修改记录,并结合经验和统计学方法可以确定出文件的更新频繁度,从而得到了文件未来可能被修改的概率,符合软件更新的模式。
[0090]
举例来说,以游戏软件为例,对于脚本类型的文件,根据文件的修改记录确定文件的更新频繁度。
[0091]
对于美术资源类型的文件:1)普通的虚拟游戏角色、贴图资源文件,则根据文件的修改记录确定文件的更新频繁度。2)resource.repository是资源的元文件(美术资源索引类型的文件),将resource.repository的更新频繁度确定为n级。3)ui.local目录下的文件主要是合图以后的ui贴图文件,ui贴图文件是一类相对频繁更新的文件,所以变更的资源极其容易引起贴图的重新分布,因此可以独立地根据修改记录确定文件的更新频繁度。
[0092]
对于目标目录(其他类型)下的文件:1)ui、char和prefab目录下的文件是频繁更新的文件,确定目录等级为m级。2)worlds、navigate和soundbanks目录下的文件是次频繁更新的文件,确定目录等级为m

1级。3)其余如gameconfig、fonts、uiimage等目录下的文件更新的频率较低,确定目录等级为m

2级。不同目录等级下的文件,根据文件的修改记录确定更新频繁度,将目录等级叠加到文件的更新频繁度上,得到文件最终的更新频繁度。
[0093]
在一些实施例中,针对最近一次进行软件更新时的新增的文件,当新增的文件为热更新文件或者__init__.py文件等时,将新增的文件的更新频繁度确定为第五等级。其他新增的文件则确定更新频繁度为第二等级。
[0094]
在一些实施例中,可以只根据文件的修改记录来确定文件的更新频繁度。
[0095]
在一些实施例中,可以根据目标软件对应的目录为单位,将各目录下的文件单独进行更新频繁度的确定,也可以根据文件的修改记录来确定各目录下的文件的更新频繁度。
[0096]
130、根据文件的更新频繁度对文件进行压缩处理,得到目标软件的压缩包。
[0097]
目标软件的压缩包可以包括多个压缩文件,也可以是将多个压缩文件二次压缩成的一个大压缩文件;压缩文件的压缩格式不做限制,可以为rar和zip等。该目标软件的压缩包也可称为目标软件的全量patch或全量补丁;在特定情况下也可称为目标软件的安装包。
[0098]
根据文件的更新频繁度对文件进行压缩处理可以包括但不限于以下步骤:
[0099]
s1:根据文件的更新频繁度对文件进行排序处理,得到排序后的文件;可以根据更新频繁度由高到低对文件进行排序,也可以根据更新频繁度由低到高对文件进行排序。
[0100]
s2:对排序后的文件进行压缩处理,得到目标软件的压缩包。在一些实施例中,可
以根据网络环境确定压缩文件大小阈值;例如,windows等网络相对稳定的平台,压缩文件大小阈值可以为10m;其他网络不稳定的平台,压缩文件大小阈值可以为4m,等等。根据不同的网络环境确定压缩文件大小阈值,有较高的灵活度。
[0101]
基于压缩文件大小阈值,将排序后的文件压缩成多个压缩文件,从而得到目标软件的压缩包。在一些实施例中,可以对压缩文件进行编号,压缩文件对应的文件的更新频繁度越高则编号越大;并且每个压缩文件的编号可以是唯一的。
[0102]
在一些实施例中,可以以文件对应的目录为单位,各个目录下的文件独立根据文件的更新频繁度进行排序处理。然后对各个目录下排序后的文件进行压缩处理,得到目标软件的压缩包。在一些实施例中,当对各个文件类型对应的排序后的文件进行压缩处理时,若每个目录下剩余的文件不够压缩成压缩文件大小阈值的压缩文件,则可以将多个目录下的文件压缩成一个压缩文件。
[0103]
在一些实施例中,可以以文件的文件类型为单位,各个文件类型对应的文件独立根据文件的更新频繁度进行排序处理。然后对各个文件类型对应的排序后的文件进行压缩处理,得到目标软件的压缩包。
[0104]
在一些实施例中,版本控制系统得到目标软件的压缩包以后,可以将该压缩包上传到内容分发网络。若用户对应的客户端已经安装了目标软件,则客户端可以从内容分发网络下载目标软件的压缩包(此时该压缩包相当于补丁包),对目标软件进行更新;若用户对应的客户端还没安装目标软件,则可以下载该目标软件的压缩包(此时该压缩包相当于安装包),进行安装。
[0105]
140、获取目标软件对应的多个更新文件。
[0106]
更新文件可以包括但不限于被修改了的文件(修改文件)和新增文件。在一些实施例中,可以由研发人员将更新文件上传到版本控制系统,从而得到目标软件对应的多个更新文件。
[0107]
在一些实施例中,还可以获取更新文件的文件信息;该文件信息可以是更新文件列表(list),该更新文件列表存储了更新文件的文件标识(如文件名、文件编号等)等。
[0108]
150、基于更新文件更新目标软件的压缩包,以便采用更新后的压缩包更新目标软件。
[0109]
在一些实施例中,当目标软件的压缩包中存在更新文件对应的压缩文件时,基于更新文件对更新文件对应的压缩文件进行更新,得到更新后的压缩文件。如更新文件为被修改了的目标文件,该目标文件对应的压缩文件为目标压缩文件,目标压缩文件为目标软件的压缩包中的任一压缩文件;则可以对目标压缩文件进行解压得到目标文件集合,该目标文件集合中包括原目标文件,采用被修改了的目标文件替换原目标文件,然后对目标文件集合再次进行压缩,得到更新后的压缩文件。
[0110]
当目标软件的压缩包中不存在更新文件对应的压缩文件时,根据更新文件生成新的压缩文件。在一些实施例中,更新文件为新增文件,新增文件压缩成的压缩文件可以在之前的压缩文件的编号的基础上,再进行编号。
[0111]
上传更新后的压缩文件和新的压缩文件,以便客户端基于更新后的压缩文件和新的压缩文件更新目标软件。在一些实施例中,更新后的压缩文件和新的压缩文件也可合起来称为增量补丁或增量patch,版本控制系统将增量补丁上传到内容分发网络。仅对文件被
修改了的压缩文件进行解压替换,可以减少解压再重新压缩的时间;并且可以将上传到内容分发网络以及下载到客户端的文件大小控制在较小的范围,提高了上传和下载的速度。
[0112]
在一些实施例中,在基于更新文件对更新文件对应的压缩文件进行更新时,还可以获取更新文件对应的压缩文件的文件信息;压缩文件的文件信息可以是文件列表,该文件列表可以存储压缩文件中文件的标识等。
[0113]
基于更新文件对应的压缩文件的文件信息和更新文件的文件信息,生成更新引导文件;更新引导文件可以存储压缩文件的编号,以及该编号对应的压缩文件下的文件。
[0114]
上传更新引导文件,以便客户端根据更新引导文件下载更新后的压缩文件和新的压缩文件;版本控制系统可以将更新引导文件上传至内容分发网络,客户端启动目标软件后,该软件的更新程序可以获取更新引导文件,然后根据更新引导文件下载增量补丁,基于增量补丁对目标软件进行更新。
[0115]
在一些实施例中,版本控制系统也可以将增量补丁上传至内容分发网络,该内容分发网络将之前存储的目标软件的压缩包进行更新;客户端启动目标软件后,该软件的更新程序可以获取更新引导文件,然后根据更新引导文件从内容分发网络处下载更新后的压缩包,基于更新后的压缩包对目标软件进行更新。
[0116]
在一些实施例中,在各个目录下进行文件压缩,可以将需要修改的文件限制在单个目录内部,从而可以进一步降低增量补丁的大小。
[0117]
由上可知,本发明可以获取目标软件的文件的修改记录,然后结合经验和统计学方法确定出文件的更新频繁度,即得到了文件未来可能被修改的概率;然后根据文件的更新频繁度,以目录为单位来对目标软件的文件进行压缩处理,可以将更新频繁度较高的文件压缩在一起;从而在文件被修改时,可以仅对较少压缩文件进行更新,因此可以减少解压文件再重新压缩文件的时间;并且在更新目标软件时,也可以上传较少的压缩文件到内容分发网络,客户端也可以下载较少的压缩文件,能够提高上传和下载速度。由此,本方案可以提升软件更新的效率。
[0118]
本发明提供的软件更新方案可以应用在各种软件更新的场景中。比如,以游戏软件更新为例,对本发明的方法进行详细说明。
[0119]
如图2a所示,一种软件更新方法具体流程如下:
[0120]
210、获取游戏软件的多个文件的修改记录。
[0121]
版本控制系统可以获取预设时间段内游戏软件的多个文件的修改记录,包括文件被修改的记录和新增文件的记录;预设时间段与游戏软件更新频率相关,通常可以设置为1

2个月。文件被修改的记录可以包括修改时间,根据修改时间可以统计出修改次数。
[0122]
220、根据文件的修改记录确定文件的更新频繁度,更新频繁度表征文件被修改的概率。
[0123]
在一些实施例中,对于脚本类型的文件,根据文件的修改记录确定文件的更新频繁度。
[0124]
对于美术资源类型的文件:1)普通的虚拟游戏角色、贴图资源文件,则根据文件的修改记录确定文件的更新频繁度。2)resource.repository是资源的元文件(美术资源索引子类型的文件),将resource.repository的更新频繁度确定为n级。3)ui.local目录下的文件主要是ui贴图文件,ui贴图文件是一类相对频繁更新的文件,所以变更的资源极其容易
引起贴图的重新分布,因此可以独立地根据修改记录确定文件的更新频繁度。
[0125]
对于目标目录(其他类型)下的文件:1)ui、char和prefab目录下的文件是频繁更新的文件,确定目录等级为m级。2)worlds、navigate和soundbanks目录下的文件是次频繁更新的文件,确定目录等级为m

1级。3)其余如gameconfig、fonts、uiimage等目录下的文件更新的频率较低,确定目录等级为m

2级。不同目录等级下的文件,根据文件的修改记录确定更新频繁度,将目录等级叠加到文件的更新频繁度上,得到文件最终的更新频繁度。可知,通过游戏软件的文件的修改记录,并结合经验和统计学方法确定出文件的更新频繁度,从而得到了文件未来可能被修改的概率,符合游戏软件更新的模式,更新频繁度的准确性更高。
[0126]
在一些实施例中,根据文件的修改记录确定文件的更新频繁度包括:
[0127]
1)可以根据修改时间确定标准时间差和时间聚集度。其中,标准时间差表征文件的修改时间与当前时间的时间差关系,可以采用下式计算得到标准时间差:
[0128][0129]
其中,n表示修改次数,t表示当前时间,当前时间可以为获取修改记录的时间。
[0130]
时间聚集度表征文件的修改时间的聚集程度,可以采用下式计算得到时间聚集度:
[0131]
其中
[0132]
其中,x
i
表示第i次文件被修改时的修改时间,μ表示文件修改时间的平均值。
[0133]
2)预设修改次数为m
t
,预设时间差阈值d
t

[0134]
i、当n≥m
t
,且moddis≤d
t
时,将文件的更新频繁度确定为n级。
[0135]
当n≥m
t
,且moddis>d
t
时,将文件的更新频繁度确定为n/2级。
[0136]
ii、预设时间聚集度范围为(s
t1
,s
t2
),当s
t1
≤modstd≤s
t2
时,文件的修改时间分布比较均匀,则将文件的更新频繁度确定为n/2 1~n

1级。
[0137]
iii、当n<m
t
时,若修改时间出现在早期mod dis>>d
t
,即moddis显著大于d
t
;则将文件的更新频繁度确定为2~n/2 1级;若修改时间出现在中期mod dis≈d
t
;则将文件的更新频繁度确定为n/2级;若修改时间出现在后期mod dis>>d
t
,即moddis显著小于d
t
;则将文件的更新频繁度确定为n/2 1~n

1级。
[0138]
在一些实施例中,针对最近一次进行软件更新时的新增的文件,当新增的文件为热更文件和__init__.py文件等时,将新增的文件的更新频繁度确定为1级。其他新增的文件则确定更新频繁度为n/2级。
[0139]
在一些实施例中,删除的文件未来重新恢复的概率很低,因此删除的情况基本可以不用考虑。
[0140]
在一些实施中,对脚本类型、美术资源类型和其他类型的文件及其子类文件的更新频繁度进行归一化,并得到归一化后的更新频繁度与文件之间的映射表。按照更新频繁度由低到高对文件进行排序,就可以得到按照文件被修改的概率从低到高排列的文件的集合。
[0141]
230、根据文件的更新频繁度对文件进行压缩处理,得到游戏软件的压缩包。
[0142]
对排序后的文件利用压缩软件进行压缩,得到多个压缩文件(也可称big文件),即游戏软件的压缩包。
[0143]
压缩时设置压缩文件大小阈值,如压缩文件超过4m,则需要新建一个不同编号的压缩文件,对于windows等网络相对稳定的平台,可以把压缩文件的压缩文件大小阈值适当设置大一些,例如10m。根据更新频繁度以及压缩文件大小阈值可以生成如图2b所示的游戏软件的压缩包。根据不同的网络环境确定压缩文件大小阈值,有较高的灵活度。
[0144]
版本控制系统得到游戏软件的压缩包以后,可以将该压缩包上传到内容分发网络。客户端可以从内容分发网络下载游戏软件的压缩包,并更新游戏软件。
[0145]
240、获取游戏软件对应的多个更新文件。
[0146]
版本控制系统对比游戏软件的压缩包得到更新文件的集合,以及更新文件的更新文件列表。
[0147]
250、基于更新文件更新游戏软件的压缩包,以便采用更新后的压缩包更新游戏软件。
[0148]
在游戏软件的压缩包中查询更新文件对应的压缩文件,若目标压缩文件中的文件被修改,解压目标压缩文件,将更新文件对应的文件删除,然后将剩余的文件合并到更新文件的集合中;并将目标压缩文件中的文件列表更新到更新文件的文件列表,得到更新引导文件。
[0149]
对于新增文件(游戏软件的压缩包中不存在对应的压缩文件),则合并在更新文件的集合的末尾。
[0150]
根据压缩文件大小阈值对更新文件的集合进行重新压缩,得到增量补丁。压缩文件的编号可以递增,编号唯一,如图2c所示。
[0151]
版本控制系统将增量补丁和更新引导文件上传到内容分发网络。客户端启动游戏软件后,该软件的更新程序可以获取更新引导文件,然后根据更新引导文件下载增量补丁,基于增量补丁对游戏软件进行更新。仅对文件被修改了的压缩文件进行解压替换,可以将上传到内容分发网络以及下载到客户端的文件控制在较小的范围,提高了上传和下载的速度。
[0152]
由上可知,本发明可以获取游戏软件的文件的修改记录,然后结合经验和统计学方法确定出文件的更新频繁度,即得到了文件未来可能被修改的概率;然后根据文件的更新频繁度,以目录为单位来对游戏软件的文件进行压缩处理,可以将更新频繁度较高的文件压缩在一起;从而在文件被修改时,可以仅对较少压缩文件进行更新,因此可以减少解压文件再重新压缩文件的时间;并且在更新游戏软件时,也可以上传较少的压缩文件到内容分发网络,客户端也可以下载较少的压缩文件,能够提高上传和下载速度。由此,本方案可以提升软件更新的效率。
[0153]
为了更好地实施以上方法,本发明还提供一种软件更新装置,该软件更新装置具体可以集成在电子设备中,该电子设备可以为终端、服务器等设备。其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、个人电脑等设备;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群。
[0154]
比如,在本实施例中,将以软件更新装置具体集成在第一服务器为例,对本发明的
方法进行详细说明。
[0155]
例如,如图3所示,该软件更新装置可以包括第一获取单元301、确定单元302、压缩单元303、第二获取单元304以及更新单元305,如下:
[0156]
(一)第一获取单元301
[0157]
第一获取单元301,用于获取目标软件的多个文件的修改记录。
[0158]
(二)确定单元302
[0159]
确定单元302,用于根据文件的修改记录确定文件的更新频繁度,更新频繁度表征文件被修改的概率。
[0160]
(三)压缩单元303
[0161]
压缩单元303,用于根据文件的更新频繁度对文件进行压缩处理,得到目标软件的压缩包。
[0162]
(四)第二获取单元304
[0163]
第二获取单元304,用于获取目标软件对应的多个更新文件。
[0164]
(五)更新单元305
[0165]
更新单元305,用于基于更新文件更新目标软件的压缩包,以便采用更新后的压缩包更新目标软件。
[0166]
在一些实施例中,确定单元302具体用于:
[0167]
确定文件的类型;
[0168]
根据文件的修改记录和文件的类型确定文件的更新频繁度。
[0169]
在一些实施例中,文件的类型包括美术资源类型、脚本类型,美术资源类型包括美术资源索引子类型、美术资源子类型,确定单元302具体用于:
[0170]
当文件的类型为美术资源索引子类型时,将文件的更新频繁度确定为第一等级;
[0171]
当文件的类型为脚本类型或美术资源子类型时,根据文件的修改记录确定文件的更新频繁度。
[0172]
在一些实施例中,文件的类型还包括其他文件类型,确定单元302具体用于:
[0173]
确定文件所在的目录;
[0174]
根据文件所在的目录,确定文件对应的目录等级;
[0175]
根据文件的修改记录确定文件的更新频繁度;
[0176]
基于文件对应的目录等级对文件的更新频繁度进行加权,得到加权后的文件的更新频繁度。
[0177]
在一些实施例中,文件的修改记录包括修改时间和修改次数,确定单元302具体用于:
[0178]
根据修改时间确定标准时间差和时间聚集度,标准时间差表征文件的修改时间与当前时间的时间差关系,时间聚集度表征文件的修改时间的聚集程度;
[0179]
当修改次数不小于预设修改次数,且标准时间差不大于预设时间差阈值时,将文件的更新频繁度确定为第一等级;
[0180]
当修改次数不小于预设修改次数,且标准时间差大于预设时间差阈值时,将文件的更新频繁度确定为第二等级;
[0181]
当时间聚集度位于预设时间聚集度范围内时,将文件的更新频繁度确定为第三等
级;
[0182]
当修改次数小于预设修改次数时,根据标准时间差和预设时间差阈值确定文件的更新频繁度。
[0183]
在一些实施例中,压缩单元303具体用于:
[0184]
根据文件的更新频繁度对文件进行排序处理,得到排序后的文件;
[0185]
对排序后的文件进行压缩处理,得到目标软件的压缩包。
[0186]
在一些实施例中,目标软件的压缩包包括多个压缩文件,压缩单元303具体用于:
[0187]
根据网络环境确定压缩文件大小阈值;
[0188]
基于压缩文件大小阈值,将排序后的文件压缩成多个压缩文件。
[0189]
在一些实施例中,更新单元305具体用于:
[0190]
当目标软件的压缩包中存在更新文件对应的压缩文件时,基于更新文件对更新文件对应的压缩文件进行更新,得到更新后的压缩文件;
[0191]
当目标软件的压缩包中不存在更新文件对应的压缩文件时,根据更新文件生成新的压缩文件;
[0192]
上传更新后的压缩文件和新的压缩文件,以便客户端基于更新后的压缩文件和新的压缩文件更新目标软件。
[0193]
在一些实施例中,更新单元305具体还用于:
[0194]
获取更新文件的文件信息;
[0195]
基于更新文件对更新文件对应的压缩文件进行更新,还包括:
[0196]
获取更新文件对应的压缩文件的文件信息;
[0197]
基于更新文件对应的压缩文件的文件信息和更新文件的文件信息,生成更新引导文件;
[0198]
上传更新引导文件,以便客户端根据更新引导文件下载更新后的压缩文件和新的压缩文件。
[0199]
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
[0200]
由上可知,本实施例的软件更新装置可以获取目标软件的文件的修改记录,根据该修改记录确定文件的更新频繁度,从而得到文件未来可能被修改的概率;然后根据文件的更新频繁度来对目标软件的文件进行压缩处理,可以将更新频繁度较高的文件压缩在一起;从而在文件被修改时,可以仅对较少压缩文件进行更新,因此可以减少解压文件再重新压缩文件的时间;并且在更新目标软件时,也可以下载较少的压缩文件,能够提高下载速度。由此,本方案可以提升软件更新的效率。
[0201]
相应的,本技术实施例还提供一种电子设备,该电子设备可以为第一服务器或第二服务器或者客户端。
[0202]
如图4所示,图4为本技术实施例提供的电子设备的结构示意图,该电子设备400包括有一个或者一个以上处理核心的处理器401、有一个或一个以上计算机可读存储介质的存储器402及存储在存储器402上并可在处理器上运行的计算机程序。其中,处理器401与存储器402电性连接。本领域技术人员可以理解,图中示出的电子设备结构并不构成对电子设
备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0203]
处理器401是电子设备400的控制中心,利用各种接口和线路连接整个电子设备400的各个部分,通过运行或加载存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行电子设备400的各种功能和处理数据,从而对电子设备400进行整体监控。
[0204]
在本技术实施例中,电子设备400中的处理器401会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能:
[0205]
获取目标软件的多个文件的修改记录;
[0206]
根据文件的修改记录确定文件的更新频繁度,更新频繁度表征文件被修改的概率;
[0207]
根据文件的更新频繁度对文件进行压缩处理,得到目标软件的压缩包;
[0208]
获取目标软件对应的多个更新文件;
[0209]
基于更新文件更新目标软件的压缩包,以便采用更新后的压缩包更新目标软件。
[0210]
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
[0211]
可选的,如图4所示,电子设备400还包括:触控显示屏403、射频电路404、音频电路405、输入单元406以及电源407。其中,处理器401分别与触控显示屏403、射频电路404、音频电路405、输入单元406以及电源407电性连接。本领域技术人员可以理解,图4中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0212]
触控显示屏403可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏403可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的信息或提供给用户的信息以及电子设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。可选的,可以采用液晶显示器(lcd,liquid crystal display)、有机发光二极管(oled,organic light

emitting diode)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器401,并能接收处理器401发来的命令并加以执行。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器401以确定触摸事件的类型,随后处理器401根据触摸事件的类型在显示面板上提供相应的视觉输出。在本技术实施例中,可以将触控面板与显示面板集成到触控显示屏403而实现输入和输出功能。但是在某些实施例中,触控面板与触控面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏403也可以作为输入单元406的一部分实现输入功能。
[0213]
在本技术实施例中,通过处理器401执行游戏软件在触控显示屏403上生成图形用户界面。该触控显示屏403用于呈现图形用户界面以及接收用户作用于图形用户界面产生的操作指令。
[0214]
射频电路404可用于收发射频信号,以通过无线通信与网络设备或其他电子设备建立无线通讯,与网络设备或其他电子设备之间收发信号。
[0215]
音频电路405可以用于通过扬声器、传声器提供用户与电子设备之间的音频接口。音频电路405可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路405接收后转换为音频数据,再将音频数据输出处理器401处理后,经射频电路404以发送给比如另一电子设备,或者将音频数据输出至存储器402以便进一步处理。音频电路405还可能包括耳塞插孔,以提供外设耳机与电子设备的通信。
[0216]
输入单元406可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
[0217]
电源407用于给电子设备400的各个部件供电。可选的,电源407可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源407还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
[0218]
尽管图4中未示出,电子设备400还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。
[0219]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0220]
由上可知,本实施例提供的电子设备可以获取目标软件的文件的修改记录,根据该修改记录确定文件的更新频繁度,从而得到文件未来可能被修改的概率;然后根据文件的更新频繁度来对目标软件的文件进行压缩处理,可以将更新频繁度较高的文件压缩在一起;从而在文件被修改时,可以仅对较少压缩文件进行更新,因此可以减少解压文件再重新压缩文件的时间;并且在更新目标软件时,也可以下载较少的压缩文件,能够提高下载速度。由此,本方案可以提升软件更新的效率。
[0221]
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
[0222]
为此,本技术实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本技术实施例所提供的任一种软件更新方法中的步骤。例如,该计算机程序可以执行如下步骤:
[0223]
获取目标软件的多个文件的修改记录;
[0224]
根据文件的修改记录确定文件的更新频繁度,更新频繁度表征文件被修改的概率;
[0225]
根据文件的更新频繁度对文件进行压缩处理,得到目标软件的压缩包;
[0226]
获取目标软件对应的多个更新文件;
[0227]
基于更新文件更新目标软件的压缩包,以便采用更新后的压缩包更新目标软件。
[0228]
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
[0229]
其中,该存储介质可以包括:只读存储器(rom,read only memory)、随机存取记忆
体(ram,random access memory)、磁盘或光盘等。
[0230]
由于该存储介质中所存储的计算机程序,可以执行本技术实施例所提供的任一种软件更新方法中的步骤,因此,可以实现本技术实施例所提供的任一种软件更新方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
[0231]
以上对本技术实施例所提供的一种软件更新方法、装置、存储介质及电子设备进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜