CN107015821A - 增量更新的方法和装置 - Google Patents

增量更新的方法和装置 Download PDF

Info

Publication number
CN107015821A
CN107015821A CN201610059651.7A CN201610059651A CN107015821A CN 107015821 A CN107015821 A CN 107015821A CN 201610059651 A CN201610059651 A CN 201610059651A CN 107015821 A CN107015821 A CN 107015821A
Authority
CN
China
Prior art keywords
application program
delta patch
patch
installation kit
terminal
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
CN201610059651.7A
Other languages
English (en)
Other versions
CN107015821B (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201610059651.7A priority Critical patent/CN107015821B/zh
Publication of CN107015821A publication Critical patent/CN107015821A/zh
Application granted granted Critical
Publication of CN107015821B publication Critical patent/CN107015821B/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
    • G06F8/658Incremental updates; Differential updates

Abstract

本发明涉及一种增量更新的方法和装置。所述方法包括以下步骤:获取终端上已安装的应用程序及终端的设备信息;判断所述已安装的应用程序是否有更新;若已安装的应用程序有更新,则获取有更新的应用程序的增量补丁包;获取所述有更新的应用程序的增量补丁包的大小和合成成功率;根据所述设备信息、增量补丁包的大小和合成成功率从所述应用程序的增量补丁包筛选相应的增量补丁包;将筛选出相应的增量补丁包下发给终端。上述增量更新的方法和装置,根据设备信息、增量补丁包的合成成功率和补丁包大小能筛选出适合终端的增量补丁包,且能最大限度的节省流量,且能提高合成成功率。

Description

增量更新的方法和装置
技术领域
本发明涉及数据处理领域,特别是涉及一种增量更新的方法和装置。
背景技术
随着网络技术和移动终端的发展,用户通过移动终端连接网络,从事各种网络活动,为此需要下载各种各样的应用程序安装包,并安装该应用程序安装包。当应用程序存在更新时,需要下载更新的数据,更新的数据即增量,对增量进行更新。传统的应用程序更新方法是将新旧文件进行比较,若不同,则将新文件写入补丁包,作为增量进行更新,然而采用直接将新文件写入补丁包进行更新,其补丁包比较大,下载该补丁包需要耗费较多流量。
发明内容
基于此,有必要针对传统的增量更新耗费较多流量的问题,提供一种增量更新的方法,能节省流量。
此外,还有必要提供一种增量更新的装置,能节省流量。
一种增量更新的方法,包括以下步骤:
获取终端上已安装的应用程序及终端的设备信息;
判断所述已安装的应用程序是否有更新;
若已安装的应用程序有更新,则获取有更新的应用程序的增量补丁包;
获取所述有更新的应用程序的增量补丁包的大小和合成成功率;
根据所述设备信息、增量补丁包的大小和合成成功率从所述应用程序的增量补丁包筛选相应的增量补丁包;
将筛选出相应的增量补丁包下发给终端。
一种增量更新的方法,包括以下步骤:
显示应用程序有更新的提示信息;
获取对所述提示信息的触发操作,根据所述触发操作上传已安装的应用程序及终端的设备信息;
若已安装的应用程序有更新,接收服务器根据设备信息、增量补丁包的大小和合成成功率从所述应用程序的增量补丁包筛选出的相应的增量补丁包。
一种增量更新的装置,包括:
第一获取模块,用于获取终端上已安装的应用程序及终端的设备信息;
判断模块,用于判断所述已安装的应用程序是否有更新;
第二获取模块,用于若已安装的应用程序有更新,则获取有更新的应用程序的增量补丁包;
第三获取模块,用于获取所述有更新的应用程序的增量补丁包的大小和合成成功率;
筛选模块,用于根据所述设备信息、增量补丁包的大小和合成成功率从所述应用程序的增量补丁包筛选相应的增量补丁包;
下发模块,用于将筛选出相应的增量补丁包下发给终端。
一种增量更新的装置,包括:
显示模块,用于显示应用程序有更新的提示信息;
上传模块,用于获取对所述提示信息的触发操作,根据所述触发操作上传已安装的应用程序及终端的设备信息;
接收模块,用于若已安装的应用程序有更新,接收服务器根据设备信息、增量补丁包的大小和合成成功率从所述应用程序的增量补丁包筛选出的相应的增量补丁包。
上述增量更新的方法和装置,通过获取终端上已安装的应用程序及设备信息,判断出应用程序有更新,则获取应用程序的增量补丁包,并根据设备信息、增量补丁包的合成成功率和补丁包大小筛选出适合的增量补丁包下发给终端,能选择最合适终端的增量补丁包,且能最大限度的节省流量,且能提高合成成功率。
附图说明
图1为一个实施例中增量更新的方法的具体应用场景;
图2A为一个实施例中终端的内部结构示意图;
图2B为一个实施例中服务器的内部结构示意图;
图3为一个实施例中增量更新的方法的流程图;
图4为另一个实施例中增量更新的方法的详细流程图;
图5为另一个实施例中增量更新的方法的流程图;
图6为一个实施例中增量更新的装置的结构框图;
图7为另一个实施例中增量更新的装置的结构框图;
图8为另一个实施例中增量更新的装置的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
可以理解,本发明所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本发明的范围的情况下,可以将第一客户端称为第二客户端,且类似地,可将第二客户端称为第一客户端。第一客户端和第二客户端两者都是客户端,但其不是同一客户端。
图1为一个实施例中增量更新的方法的具体应用场景。如图1所示,该应用场景包括终端110和服务器120。终端110与服务器120通过网络进行通信。终端110获取已安装的应用程序及设备信息,上报到服务器120。服务器120将已安装的应用程序与数据库中对应的应用程序进行比较,若存在更新,则获取应用程序的增量补丁包,并获取增量补丁包的大小和合成成功率,根据终端的设备信息、增量补丁包的大小和合成成功率综合选取适合该终端110的增量补丁包,将筛选出的增量补丁包下发给终端110,以便终端110根据增量补丁包和已安装的应用程序的版本的安装包合成新的安装包,安装该合成后的安装包,实现应用程序的更新,节省了流量。
图2A为一个实施例中终端的内部结构示意图。如图2A所示,该终端包括通过系统总线连接的处理器、存储介质、内存和网络接口、声音采集装置、显示屏、扬声器和输入装置。其中,终端的存储介质存储有操作系统,还包括一种增量更新的装置,该增量更新的装置用于实现一种增量更新的方法。该处理器用于提供计算和控制能力,支撑整个终端的运行。终端中的内存为存储介质中的增量更新的装置的运行提供环境,网络接口用于与服务器进行网络通信,如发送更新请求至服务器,接收服务器返回的增量补丁包等。终端的显示屏可以是液晶显示屏或者电子墨水显示屏等,输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是外接的键盘、触控板或鼠标等。该终端可以是手机、平板电脑或者个人数字助理。本领域技术人员可以理解,图2A中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的终端的限定,具体的终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
图2B为一个实施例中服务器的内部结构示意图。如图2B所示,该服务器包括通过系统总线连接的处理器、存储介质、内存和网络接口。其中,该服务器的存储介质存储有操作系统、数据库和增量更新的处理装置,数据库中存储有增量更新的数据,该增量更新的装置用于实现适用于服务器的一种增量更新的方法。该服务器的处理器用于提供计算和控制能力,支撑整个服务器的运行。该服务器的内存为存储介质中的增量更新的装置的运行提供环境。该服务器的显示屏可以是液晶显示屏或者电子墨水显示屏等,输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是外接的键盘、触控板或鼠标等。该服务器的网络接口用于据以与外部的终端通过网络连接通信,比如接收终端发送的更新请求以及向终端返回增量补丁包等。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。本领域技术人员可以理解,图2B中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的服务器的限定,具体的服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
图3为一个实施例中增量更新的方法的流程图。如图3所示,一种增量更新的方法,以服务器角度描述,包括以下步骤:
步骤302,获取终端上已安装的应用程序及终端的设备信息。
具体地,终端上的已安装的应用程序可以列表形式统计出来。终端的设备信息可包括所支持的算法类型、CPU(Central Processing Unit,中央处理单元)类型等。算法类型可为subdiff算法、bsdiff算法、xd3diff算法等。
步骤304,判断该已安装的应用程序是否有更新。
在一个实施例中,该判断该已安装的应用程序是否有更新的步骤包括:获取已安装的应用程序当前版本与应用程序的最新版本;判断该已安装的应用程序的当前版本与应用程序的最新版本是否相同,若不同,则已安装的应用程序有更新,若相同,则该已安装的应用程序没有更新。
具体地,已安装的应用程序的当前版本是指安装在终端上的应用程序的版本,例如当前版本为V1.0。在服务器的数据库中存储有该应用程序的最新版本为V2.0,则该应用程序有更新。
步骤306,若已安装的应用程序有更新,则获取有更新的应用程序的增量补丁包。
具体地,该更新的应用程序的增量补丁包可为一个或多个。获取终端上有更新的应用程序的当前版本的安装包的文件信息。
步骤308,获取该有更新的应用程序的增量补丁包的大小和合成成功率。
具体地,增量补丁包是一个文件,直接用程序代码getfilesize获取文件大小,得到增量补丁包的大小。不同的算法得出的增量补丁包的大小可能不同。
补丁包合成成功率是指客户端拉取补丁包后,进行合成操作,完成后会将是否成功的数据存入数据库,统计该是否成功的数据计算出补丁包的合成成功率。
步骤310,根据该设备信息、增量补丁包的大小和合成成功率从该应用程序的增量补丁包筛选相应的增量补丁包。
具体地,根据设备信息中客户端支持的算法,subdiff,bsdiff,x3ddiff等。CPU类型,非ARM只支持subdiff算法,ARM则支持subdiff、bsdiff和x3ddiff。选择补丁包合成成功率大于或等于预定值,例如预定值为95%。满足了客户端支持的算法、CPU类型支持的算法和补丁包合成成功率,则选择增量补丁包的大小最小的增量补丁包下载。
步骤312,将筛选出相应的增量补丁包下发给终端。
上述增量更新的方法,通过获取终端上已安装的应用程序及设备信息,判断出应用程序有更新,则获取应用程序的增量补丁包,并根据设备信息、增量补丁包的合成成功率和补丁包大小筛选出适合的增量补丁包下发给终端,能选择最合适终端的增量补丁包,且能最大限度的节省流量,且能提高合成成功率;实现了通过根据用户场景下发增量补丁包,提升了增量补丁包的合成成功率,且增量更新覆盖应用程序安装包达到100%。
在一个实施例中,该获取有更新的应用程序的增量补丁包的步骤包括:获取终端上已安装的应用程序的当前版本安装包中的文件信息;将终端上的应用程序的当前版本安装包中的文件信息与数据库中该应用程序的最新版本安装包中的文件信息进行比较,若相同,则使用旧文件,不写入补丁包,若不同,则使用新文件,将新文件写入补丁包,计算出该应用程序的增量补丁包。
在一个实施例中,采用subdiff算法计算出该应用程序的增量补丁包。
具体地,文件信息是指所有文件的CRC(Cyclic Redundancy Check,循环冗余校验)32值或信息摘要值(如md5值)。
Subdiff算法是基于Zip的文本格式,循环遍历对比新旧应用程序安装包的所有文件的CRC32值,进行差分计算,上报终端上应用程序当前版本的安装包的CRC32值和最新版本的安装包的CRC32值。将终端上应用程序当前版本的安装包的CRC32值与最新版本的安装包的CRC32值进行比较,若相同,则使用旧文件,不写入补丁包,若不同,则使用新文件,将新文件写入补丁包。
例如,将新旧两个安装包中每个文件进行CRC32对比,若两个安装包中都有10个文件,7个文件是相同的,只有文件2、5、8不相同是新文件,则补丁包只包含2、5、8三个文件。
此外,也可采用新旧安装包中每个文件的信息摘要值进行比较,若信息摘要值不同,则使用新文件,将新文件写入补丁包,若信息摘要值相同,则使用旧文件,不写入补丁包。
在一个实施例中,该数据库中存在与该已安装应用程序的当前版本的安装包完全相同的安装包,该获取有更新的应用程序的增量补丁包的步骤包括:获取终端上已安装的应用程序的当前版本安装包中的文件信息;将终端上的应用程序的当前版本安装包中的文件信息与数据库中该应用程序的最新版本安装包中的文件信息进行比较,若相同,则使用旧文件,不写入补丁包,若不同,且最新版本安装包中的新文件小于或等于第一预设值,则使用新文件,将新文件写入补丁包,若最新版本的安装包中的新文件大小大于第一预设值,采用Bsdiff算法或xd3diff计算出该应用程序的补丁文件,若新文件的大小与计算出的补丁文件的大小之差小于或等于第二预设值,则使用新文件,将新文件写入补丁包,若新文件与计算出的补丁文件的大小之差超过第二预设值,则将补丁文件写入补丁包。
具体地,文件信息可为文件的CRC32值或信息摘要值。第一预设值和第二预设值可根据需要设定。例如第一预设值可为1KB(千字节),第二预设值可为4KB,但不限于此。则终端上的应用程序的当前版本安装包中的CRC32与数据库中应用程序的最新版本安装包中的CRC32进行比较,若相同,则使用旧文件,不写入补丁包,若不同,且新文件小于或等于1KB,则使用新文件,将新文件写入补丁包,若新文件大小大于1KB,则使用Bsdiff算法或xd3diff算法计算出应用程序的补丁文件,且当新文件大小与补丁文件大小之差小于或等于4KB,则使用新文件,若新文件与补丁文件大小之差大于4KB,则使用补丁文件。
在一个实施例中,该数据库中存在与该已安装应用程序的当前版本同版本的安装包,该获取有更新的应用程序的增量补丁包的步骤包括:获取终端上已安装的应用程序的当前版本安装包中的文件信息;将终端上的应用程序的当前版本安装包中的文件信息与数据库中该应用程序的最新版本安装包中的文件信息进行比较,若相同,则使用旧文件,不写入补丁包,若不同,且最新版本安装包中的新文件小于或等于第一预设值,则使用新文件,将新文件写入补丁包,若最新版本的安装包中的新文件大小大于第一预设值,将终端上的应用程序的当前版本安装包中的文件信息与数据库中该应用程序的当前版本同版本的安装包中的文件信息进行比较,若相同,则将该应用程序的当前版本同版本的安装包中的文件与应用程序的最新版本安装包中的文件进行Bsdiff算法或xd3diff计算,得出该应用程序的补丁文件,若不同,则将使用新文件,则将新文件写入补丁包。
具体地,数据库中存在与已安装应用程序的当前版本同版本的安装包是指数据库中的应用程序与已安装应用程序的当前版本相同,但来源不同,文件存在差别。
例如终端上的应用程序的当前版本(即旧版本)的安装包采用UserOldapp,数据库中与终端上的应用程序同版本的安装包采用DataOldApp,数据库中对应的应用程序的最新版本的安装包采用DataNewApp。
文件信息可为文件的CRC32值或信息摘要值。第一预设值和第二预设值可根据需要设定。例如第一预设值可为1KB(千字节),第二预设值可为4KB,但不限于此。则终端上的应用程序的当前版本安装包UserOldapp中的CRC32与数据库中应用程序的最新版本安装包DataNewApp中的CRC32进行比较,若相同,则使用旧文件,不写入补丁包,若不同,且新文件小于或等于1KB,则使用新文件,将新文件写入补丁包,若新文件大小大于1KB,则因数据库中没有终端中应用程序的当前版本的安装包,将终端上的应用程序的当前版本安装包UserOldapp中的CRC32与数据库中该应用程序的当前版本同版本的安装包DataOldApp中的CRC32进行比较,若相同,则使用DataOldApp的文件和DataNewApp中文件进行Bsdiff算法或xd3diff算法计算出应用程序的补丁文件,若不同,则使用新文件。
采用该Bsdiff算法,使Bsdiff的使用占比由原有的15%提高到了90%以上,进一步省流量。
在一个实施例中,在获取有更新的应用程序的增量补丁包的步骤之后,上述增量更新的方法还包括:按照自定义格式对该增量补丁包进行处理得到自定义补丁包。
进一步的,根据该设备信息、增量补丁包的大小和合成成功率从该应用程序的增量补丁包筛选相应的增量补丁包的步骤包括:根据该设备信息、增量补丁包的大小和合成成功率从该应用程序的增量补丁包筛选相应的自定义补丁包。
本实施例中,根据该设备信息判断终端支持的算法,根据终端支持的算法获取增量补丁包,再从该增量补丁包中选择增量补丁包的合成成功率大于或等于预定值的增量补丁包,再选择大小最小的增量补丁包。
自定义补丁包的文件整体格式如下:
Head············文件头部结构
CentralDirFileHeader1·············目录文件头部结构1至n,具体结构看后面
CentralDirFileHeader2
...
CentralDirFileHeadern
AppdendixType············附加类型2位,目前固定值0x01
EndOfCentralDirRecord·············目录结束标识结构
文件头部结构
目录文件头部结构
补丁文件子项类型定义:
子项类型为目录 FILEDATATYPE_DIR=0x00;
子项类型数据来自新版本 FILEDATATYPE_NEWAPKDATA=0x01;
子项类型数据来自旧版本 FILEDATATYPE_OLDAPKDATA=0x02;
子项类型数据来自新旧版本的BSDIFFFILEDATATYPE_RAWDIFFDATANOCOMPRESS=0x03;
子项类型数据来自新旧版本的xd3
FILEDATATYPE_RAWXD3DATANOCOMPRESS=0x04。
图4为另一个实施例中增量更新的方法的详细流程图。如图4所示,一种增量更新的方法,包括以下步骤:
步骤402,获取终端上已安装的应用程序当前版本及设备信息。
步骤404,判断已安装的应用程序是否有更新,若是,执行步骤406,若否,执行步骤402。
步骤406,判断是否有增量补丁包,若是,则执行步骤412,若否,执行步骤408。
步骤408,获取终端上传的应用程序当前版本的安装包的文件信息。
具体地,终端上传的应用程序的当前版本的安装包(即用户本地安装包)信息包括:ManifestMd5、fileCRC32、FilelistMd5、localVersionCode、localVersionName、packageName;
其中,ManifestMd5:安装包文件中Manifest.mf文件的md5值;
FileCRC32:安装包文件中每个文件的Crc32值;
FileListMD5:安装包中所有文件的(文件名1+Crc32值1+文件名2+Crc32值2+...)内容组合后的md5值;
localVersionCode:用户本地安装包的版本号;
localVersionName:用户本地安装包的版本名;
packageName:用户本地安装包的包名。
步骤410,采用subdiff、Bsdiff、xd3diff算法分别计算得到增量补丁包,并存入数据库中。
步骤412,根据终端的设备信息判断终端支持的算法。
步骤414,根据终端支持的算法选择自定义格式的增量补丁包,获取增量补丁包的大小和合成成功率。
步骤416,根据终端支持的算法、增量补丁包的合成成功率和增量补丁包大小选择最佳的增量补丁包。
步骤418,下发最佳的增量补丁包给终端。
上述增量更新的方法,通过获取终端上已安装的应用程序及设备信息,判断出应用程序有更新,则获取应用程序的增量补丁包,并根据设备信息、增量补丁包的合成成功率和补丁包大小筛选出适合的增量补丁包下发给终端,能选择最合适终端的增量补丁包,且能最大限度的节省流量,且能提高合成成功率。
图5为另一个实施例中增量更新的方法的流程图。如图5所示,一种增量更新的方法,以终端角度描述,包括以下步骤:
步骤502,显示应用程序有更新的提示信息。
具体地,在终端的应用商店或应用市场等应用程序管理软件中显示应用程序有更新的提示信息。
步骤504,获取对该提示信息的触发操作,根据该触发操作上传已安装的应用程序及终端的设备信息。
步骤506,若已安装的应用程序有更新,接收服务器根据设备信息、增量补丁包的大小和合成成功率从该应用程序的增量补丁包筛选出的相应的增量补丁包。
上述增量更新的方法,通过上传已安装的应用程序及设备信息,判断出应用程序有更新,则获取应用程序的增量补丁包,接收根据设备信息、增量补丁包的合成成功率和补丁包大小筛选出适合的增量补丁包,能选择最合适终端的增量补丁包,且能最大限度的节省流量,且能提高合成成功率。
在一个实施例中,接收服务器根据设备信息、增量补丁包的大小和合成成功率从该应用程序的增量补丁包筛选出的相应的增量补丁包的步骤包括:
接收服务器根据该设备信息、增量补丁包的大小和合成成功率从该应用程序的增量补丁包筛选相应的自定义补丁包。
图6为一个实施例中增量更新的装置的结构框图。如图6所示,一种增量更新的装置,运行于服务器上,包括第一获取模块602、判断模块604、第二获取模块606、第三获取模块608、筛选模块610和下发模块612。其中:
第一获取模块602用于获取终端上已安装的应用程序及终端的设备信息。
判断模块604用于判断该已安装的应用程序是否有更新。
第二获取模块606用于若已安装的应用程序有更新,则获取有更新的应用程序的增量补丁包。
第三获取模块608用于获取该有更新的应用程序的增量补丁包的大小和合成成功率。
筛选模块610用于根据该设备信息、增量补丁包的大小和合成成功率从该应用程序的增量补丁包筛选相应的增量补丁包。
下发模块612用于将筛选出相应的增量补丁包下发给终端。
上述增量更新的装置,通过获取终端上已安装的应用程序及设备信息,判断出应用程序有更新,则获取应用程序的增量补丁包,并根据设备信息、增量补丁包的合成成功率和补丁包大小筛选出适合的增量补丁包下发给终端,能选择最合适终端的增量补丁包,且能最大限度的节省流量,且能提高合成成功率;实现了通过根据用户场景下发增量补丁包,提升了增量补丁包的合成成功率,且增量更新覆盖应用程序安装包达到100%。
在一个实施例中,判断模块604还用于获取已安装的应用程序当前版本与应用程序的最新版本;以及判断该已安装的应用程序的当前版本与应用程序的最新版本是否相同,若不同,则已安装的应用程序有更新。
在一个实施例中,第二获取模块606还用于获取终端上已安装的应用程序的当前版本安装包中的文件信息;将终端上的应用程序的当前版本安装包中的文件信息与数据库中该应用程序的最新版本安装包中的文件信息进行比较,若相同,则使用旧文件,不写入补丁包,若不同,则使用新文件,将新文件写入补丁包;采用subdiff算法计算出该应用程序的增量补丁包。
在一个实施例中,数据库中存在与该已安装应用程序的当前版本的安装包完全相同的安装包;
第二获取模块606还用于获取终端上已安装的应用程序的当前版本安装包中的文件信息;
判断模块604将终端上的应用程序的当前版本安装包中的文件信息与数据库中该应用程序的最新版本安装包中的文件信息进行比较,若相同,则使用旧文件,不写入补丁包,若不同,且最新版本安装包中的新文件小于或等于第一预设值,则使用新文件,将新文件写入补丁包,若最新版本的安装包中的新文件大小大于第一预设值,采用Bsdiff算法或xd3diff计算出该应用程序的补丁文件,若新文件的大小与计算出的补丁文件的大小之差小于或等于第二预设值,则使用新文件,将新文件写入补丁包,若新文件与计算出的补丁文件的大小之差超过第二预设值,则将补丁文件写入补丁包;
在一个实施例中,该数据库中存在与该已安装应用程序的当前版本同版本的安装包,该第二获取模块606还用于获取终端上已安装的应用程序的当前版本安装包中的文件信息;
判断模块604将终端上的应用程序的当前版本安装包中的文件信息与数据库中该应用程序的最新版本安装包中的文件信息进行比较,若相同,则使用旧文件,不写入补丁包,若不同,且最新版本安装包中的新文件小于或等于第一预设值,则使用新文件,将新文件写入补丁包,若最新版本的安装包中的新文件大小大于第一预设值,将终端上的应用程序的当前版本安装包中的文件信息与数据库中该应用程序的当前版本同版本的安装包中的文件信息进行比较,若相同,则将该应用程序的当前版本同版本的安装包中的文件与应用程序的最新版本安装包中的文件进行Bsdiff算法或xd3diff计算,得出该应用程序的补丁文件,若不同,则将使用新文件,则将新文件写入补丁包。
图7为另一个实施例中增量更新的装置的结构框图。如图7所示,一种增量更新的装置,除了包括第一获取模块602、判断模块604、第二获取模块606、第三获取模块608、筛选模块610和下发模块612,还包括补丁包处理模块614。其中:
补丁包处理模块614用于在获取有更新的应用程序的增量补丁包之后,按照自定义格式对该增量补丁包进行处理得到自定义补丁包。
筛选模块610还用于根据该设备信息、增量补丁包的大小和合成成功率从该应用程序的增量补丁包筛选相应的自定义补丁包。
图8为另一个实施例中增量更新的装置的结构框图。如图8所示,一种增量更新的装置,运行于终端上,包括显示模块802、上传模块804和接收模块806。其中:
显示模块802用于显示应用程序有更新的提示信息。
上传模块804用于获取对该提示信息的触发操作,根据该触发操作上传已安装的应用程序及终端的设备信息。
接收模块806用于若已安装的应用程序有更新,接收服务器根据设备信息、增量补丁包的大小和合成成功率从该应用程序的增量补丁包筛选出的相应的增量补丁包。
上述增量更新的装置,通过上传已安装的应用程序及设备信息,判断出应用程序有更新,则获取应用程序的增量补丁包,接收根据设备信息、增量补丁包的合成成功率和补丁包大小筛选出适合的增量补丁包,能选择最合适终端的增量补丁包,且能最大限度的节省流量,且能提高合成成功率。
进一步的,接收模块804还用于接收服务器根据该设备信息、增量补丁包的大小和合成成功率从该应用程序的增量补丁包筛选相应的自定义补丁包。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)等。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (20)

1.一种增量更新的方法,包括以下步骤:
获取终端上已安装的应用程序及终端的设备信息;
判断所述已安装的应用程序是否有更新;
若已安装的应用程序有更新,则获取有更新的应用程序的增量补丁包;
获取所述有更新的应用程序的增量补丁包的大小和合成成功率;
根据所述设备信息、增量补丁包的大小和合成成功率从所述应用程序的增量补丁包筛选相应的增量补丁包;
将筛选出相应的增量补丁包下发给终端。
2.根据权利要求1所述的方法,其特征在于,所述判断所述已安装的应用程序是否有更新的步骤包括:
获取已安装的应用程序当前版本与应用程序的最新版本;
判断所述已安装的应用程序的当前版本与应用程序的最新版本是否相同,若不同,则已安装的应用程序有更新。
3.根据权利要求1所述的方法,其特征在于,所述获取有更新的应用程序的增量补丁包的步骤包括:
获取终端上已安装的应用程序的当前版本安装包中的文件信息;
将终端上的应用程序的当前版本安装包中的文件信息与数据库中所述应用程序的最新版本安装包中的文件信息进行比较,若相同,则使用旧文件,不写入补丁包,若不同,则使用新文件,将新文件写入补丁包,计算出所述应用程序的增量补丁包。
4.根据权利要求3所述的方法,其特征在于,所述计算出所述应用程序的增量补丁包的步骤包括:采用subdiff算法计算出所述应用程序的增量补丁包。
5.根据权利要求3所述的方法,其特征在于,所述数据库中存在与所述已安装应用程序的当前版本的安装包完全相同的安装包;在将终端上的应用程序的当前版本安装包中的文件信息与数据库中所述应用程序的最新版本安装包中的文件信息进行比较,若不同之后,所述方法还包括:
当最新版本安装包中的新文件小于或等于第一预设值,则使用新文件,将新文件写入补丁包,若最新版本的安装包中的新文件大小大于第一预设值,采用Bsdiff算法或xd3diff计算出所述应用程序的补丁文件,若新文件的大小与计算出的补丁文件的大小之差小于或等于第二预设值,则使用新文件,将新文件写入补丁包,若新文件与计算出的补丁文件的大小之差超过第二预设值,则将补丁文件写入补丁包。
6.根据权利要求3所述的方法,其特征在于,所述数据库中存在与所述已安装应用程序的当前版本同版本的安装包;在将终端上的应用程序的当前版本安装包中的文件信息与数据库中所述应用程序的最新版本安装包中的文件信息进行比较,若不同之后,所述方法还包括:
当最新版本安装包中的新文件小于或等于第一预设值,则使用新文件,将新文件写入补丁包,若最新版本的安装包中的新文件大小大于第一预设值,将终端上的应用程序的当前版本安装包中的文件信息与数据库中所述应用程序的当前版本同版本的安装包中的文件信息进行比较,若相同,则将所述应用程序的当前版本同版本的安装包中的文件与应用程序的最新版本安装包中的文件进行Bsdiff算法或xd3diff计算,得出所述应用程序的补丁文件,若不同,则使用新文件,则将新文件写入补丁包。
7.根据权利要求1至6中任一项所述的方法,其特征在于,在获取有更新的应用程序的增量补丁包的步骤之后,所述方法还包括:
按照自定义格式对所述增量补丁包进行处理得到自定义补丁包;
根据所述设备信息、增量补丁包的大小和合成成功率从所述应用程序的增量补丁包筛选相应的增量补丁包的步骤包括:
根据所述设备信息、增量补丁包的大小和合成成功率从所述应用程序的增量补丁包筛选相应的自定义补丁包。
8.根据权利要求1至6中任一项所述的方法,其特征在于,根据所述设备信息、增量补丁包的大小和合成成功率从所述应用程序的增量补丁包筛选相应的增量补丁包的步骤包括:
根据所述设备信息判断终端支持的算法,根据终端支持的算法获取增量补丁包,再从所述增量补丁包中选择增量补丁包的合成成功率大于或等于预定值的增量补丁包,再选择大小最小的增量补丁包。
9.一种增量更新的方法,包括以下步骤:
显示应用程序有更新的提示信息;
获取对所述提示信息的触发操作,根据所述触发操作上传已安装的应用程序及终端的设备信息;
若已安装的应用程序有更新,接收服务器根据设备信息、增量补丁包的大小和合成成功率从所述应用程序的增量补丁包筛选出的相应的增量补丁包。
10.根据权利要求9所述的方法,其特征在于,接收服务器根据设备信息、增量补丁包的大小和合成成功率从所述应用程序的增量补丁包筛选出的相应的增量补丁包的步骤包括:
接收服务器根据所述设备信息、增量补丁包的大小和合成成功率从所述应用程序的增量补丁包筛选相应的自定义补丁包。
11.一种增量更新的装置,其特征在于,包括:
第一获取模块,用于获取终端上已安装的应用程序及终端的设备信息;
判断模块,用于判断所述已安装的应用程序是否有更新;
第二获取模块,用于若已安装的应用程序有更新,则获取有更新的应用程序的增量补丁包;
第三获取模块,用于获取所述有更新的应用程序的增量补丁包的大小和合成成功率;
筛选模块,用于根据所述设备信息、增量补丁包的大小和合成成功率从所述应用程序的增量补丁包筛选相应的增量补丁包;
下发模块,用于将筛选出相应的增量补丁包下发给终端。
12.根据权利要求11所述的装置,其特征在于,所述判断模块还用于获取已安装的应用程序当前版本与应用程序的最新版本;以及判断所述已安装的应用程序的当前版本与应用程序的最新版本是否相同,若不同,则已安装的应用程序有更新。
13.根据权利要求11所述的装置,其特征在于,所述第二获取模块还用于获取终端上已安装的应用程序的当前版本安装包中的文件信息;将终端上的应用程序的当前版本安装包中的文件信息与数据库中所述应用程序的最新版本安装包中的文件信息进行比较,若相同,则使用旧文件,不写入补丁包,若不同,则使用新文件,将新文件写入补丁包,计算出所述应用程序的增量补丁包。
14.根据权利要求13所述的装置,其特征在于,所述第二获取模块还用于采用subdiff算法计算出所述应用程序的增量补丁包。
15.根据权利要求13所述的装置,其特征在于,所述数据库中存在与所述已安装应用程序的当前版本的安装包完全相同的安装包;
所述第二获取模块还用于当最新版本安装包中的新文件小于或等于第一预设值,则使用新文件,将新文件写入补丁包,若最新版本的安装包中的新文件大小大于第一预设值,采用Bsdiff算法或xd3diff计算出所述应用程序的补丁文件,若新文件的大小与计算出的补丁文件的大小之差小于或等于第二预设值,则使用新文件,将新文件写入补丁包,若新文件与计算出的补丁文件的大小之差超过第二预设值,则将补丁文件写入补丁包。
16.根据权利要求13所述的装置,其特征在于,所述数据库中存在与所述已安装应用程序的当前版本同版本的安装包,所述第二获取模块还用于当最新版本安装包中的新文件小于或等于第一预设值,则使用新文件,将新文件写入补丁包,若最新版本的安装包中的新文件大小大于第一预设值,将终端上的应用程序的当前版本安装包中的文件信息与数据库中所述应用程序的当前版本同版本的安装包中的文件信息进行比较,若相同,则将所述应用程序的当前版本同版本的安装包中的文件与应用程序的最新版本安装包中的文件进行Bsdiff算法或xd3diff计算,得出所述应用程序的补丁文件,若不同,则将使用新文件,则将新文件写入补丁包。
17.根据权利要求11至16中任一项所述的装置,其特征在于,所述装置还包括:
补丁包处理模块,用于在获取有更新的应用程序的增量补丁包之后,按照自定义格式对所述增量补丁包进行处理得到自定义补丁包;
所述筛选模块还用于根据所述设备信息、增量补丁包的大小和合成成功率从所述应用程序的增量补丁包筛选相应的自定义补丁包。
18.根据权利要求11至16中任一项所述的装置,其特征在于,所述筛选模块还用于根据所述设备信息判断终端支持的算法,根据终端支持的算法获取增量补丁包,再从所述增量补丁包中选择增量补丁包的合成成功率大于或等于预定值的增量补丁包,再选择大小最小的增量补丁包。
19.一种增量更新的装置,其特征在于,包括:
显示模块,用于显示应用程序有更新的提示信息;
上传模块,用于获取对所述提示信息的触发操作,根据所述触发操作上传已安装的应用程序及终端的设备信息;
接收模块,用于若已安装的应用程序有更新,接收服务器根据设备信息、增量补丁包的大小和合成成功率从所述应用程序的增量补丁包筛选出的相应的增量补丁包。
20.根据权利要求19所述的装置,其特征在于,所述接收模块还用于接收服务器根据所述设备信息、增量补丁包的大小和合成成功率从所述应用程序的增量补丁包筛选相应的自定义补丁包。
CN201610059651.7A 2016-01-28 2016-01-28 增量更新的方法和装置 Active CN107015821B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610059651.7A CN107015821B (zh) 2016-01-28 2016-01-28 增量更新的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610059651.7A CN107015821B (zh) 2016-01-28 2016-01-28 增量更新的方法和装置

Publications (2)

Publication Number Publication Date
CN107015821A true CN107015821A (zh) 2017-08-04
CN107015821B CN107015821B (zh) 2021-05-11

Family

ID=59438657

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610059651.7A Active CN107015821B (zh) 2016-01-28 2016-01-28 增量更新的方法和装置

Country Status (1)

Country Link
CN (1) CN107015821B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110471829A (zh) * 2018-05-09 2019-11-19 阿里巴巴集团控股有限公司 软件代码测试覆盖率的检查方法及装置
CN110543324A (zh) * 2019-08-27 2019-12-06 贝壳技术有限公司 一种应用程序的插件增量更新方法及装置
CN111090444A (zh) * 2019-12-03 2020-05-01 航天信息股份有限公司 版本升级方法、装置、存储介质及电子设备

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060048140A1 (en) * 2004-08-31 2006-03-02 International Business Machines Corporation Method, system and article for generating installation merge packages
CN1777867A (zh) * 2003-12-15 2006-05-24 微软公司 使用增量压缩打补丁更新文件的系统和方法
CN101361051A (zh) * 2006-06-19 2009-02-04 三星电子株式会社 用于具有空中广播能力设备的信息升级系统和方法
CN101467129A (zh) * 2006-07-14 2009-06-24 三星电子株式会社 能够空中下载的移动终端的程序升级系统和方法
US20090271768A1 (en) * 2008-04-24 2009-10-29 International Business Machines Corporation Discriminating program code updates after merging for live review
CN103188097A (zh) * 2011-12-30 2013-07-03 金蝶软件(中国)有限公司 一种实现补丁管理的方法、装置及系统
CN103442026A (zh) * 2013-02-05 2013-12-11 华为技术有限公司 一种应用程序处理方法、装置和系统
CN103853574A (zh) * 2012-12-06 2014-06-11 腾讯科技(深圳)有限公司 一种软件升级的方法及系统
US20140196020A1 (en) * 2013-01-08 2014-07-10 Sap Ag Generating software updates
CN103973475A (zh) * 2013-02-05 2014-08-06 腾讯科技(深圳)有限公司 差异补丁包生成方法及下载方法、服务器、客户端
CN104252364A (zh) * 2013-06-25 2014-12-31 腾讯科技(深圳)有限公司 增量更新的方法、设备及系统
CN104426924A (zh) * 2013-08-21 2015-03-18 腾讯科技(深圳)有限公司 一种更新应用软件的方法、装置、客户端、服务器及系统
CN104539676A (zh) * 2014-12-18 2015-04-22 深圳市腾讯计算机系统有限公司 提供、获取应用安装包的方法、装置和系统
US9110756B1 (en) * 2012-11-14 2015-08-18 Amazon Technologies, Inc. Tag-based deployment to overlapping host sets
CN104978215A (zh) * 2014-10-08 2015-10-14 腾讯科技(深圳)有限公司 一种文件更新方法、相关设备和系统
CN105138347A (zh) * 2015-07-17 2015-12-09 广东欧珀移动通信有限公司 一种差分升级包生成方法、软件升级方法及相应装置

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1777867A (zh) * 2003-12-15 2006-05-24 微软公司 使用增量压缩打补丁更新文件的系统和方法
US20060048140A1 (en) * 2004-08-31 2006-03-02 International Business Machines Corporation Method, system and article for generating installation merge packages
CN101361051A (zh) * 2006-06-19 2009-02-04 三星电子株式会社 用于具有空中广播能力设备的信息升级系统和方法
CN101467129A (zh) * 2006-07-14 2009-06-24 三星电子株式会社 能够空中下载的移动终端的程序升级系统和方法
US20090271768A1 (en) * 2008-04-24 2009-10-29 International Business Machines Corporation Discriminating program code updates after merging for live review
CN103188097A (zh) * 2011-12-30 2013-07-03 金蝶软件(中国)有限公司 一种实现补丁管理的方法、装置及系统
US9110756B1 (en) * 2012-11-14 2015-08-18 Amazon Technologies, Inc. Tag-based deployment to overlapping host sets
CN103853574A (zh) * 2012-12-06 2014-06-11 腾讯科技(深圳)有限公司 一种软件升级的方法及系统
US20140196020A1 (en) * 2013-01-08 2014-07-10 Sap Ag Generating software updates
CN103973475A (zh) * 2013-02-05 2014-08-06 腾讯科技(深圳)有限公司 差异补丁包生成方法及下载方法、服务器、客户端
CN103442026A (zh) * 2013-02-05 2013-12-11 华为技术有限公司 一种应用程序处理方法、装置和系统
CN104252364A (zh) * 2013-06-25 2014-12-31 腾讯科技(深圳)有限公司 增量更新的方法、设备及系统
CN104426924A (zh) * 2013-08-21 2015-03-18 腾讯科技(深圳)有限公司 一种更新应用软件的方法、装置、客户端、服务器及系统
CN104978215A (zh) * 2014-10-08 2015-10-14 腾讯科技(深圳)有限公司 一种文件更新方法、相关设备和系统
CN104539676A (zh) * 2014-12-18 2015-04-22 深圳市腾讯计算机系统有限公司 提供、获取应用安装包的方法、装置和系统
CN105138347A (zh) * 2015-07-17 2015-12-09 广东欧珀移动通信有限公司 一种差分升级包生成方法、软件升级方法及相应装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110471829A (zh) * 2018-05-09 2019-11-19 阿里巴巴集团控股有限公司 软件代码测试覆盖率的检查方法及装置
CN110471829B (zh) * 2018-05-09 2023-07-18 阿里巴巴集团控股有限公司 软件代码测试覆盖率的检查方法及装置
CN110543324A (zh) * 2019-08-27 2019-12-06 贝壳技术有限公司 一种应用程序的插件增量更新方法及装置
CN110543324B (zh) * 2019-08-27 2024-02-23 贝壳技术有限公司 一种应用程序的插件增量更新方法及装置
CN111090444A (zh) * 2019-12-03 2020-05-01 航天信息股份有限公司 版本升级方法、装置、存储介质及电子设备

Also Published As

Publication number Publication date
CN107015821B (zh) 2021-05-11

Similar Documents

Publication Publication Date Title
CN103677942B (zh) 一种移动终端浏览网络图片的方法和装置
CN109241358A (zh) 元数据管理方法、装置、计算机设备及存储介质
CN107678933A (zh) 日志生成管理方法、装置、设备及计算机可读存储介质
CN103279288B (zh) 数据传输方法、装置和终端设备
CN107622000A (zh) 一种应用程序崩溃信息的收集和上报方法、装置
CN108984548A (zh) 页面内容缓存方法及装置
CN107846511A (zh) 一种接入移动广告的方法、终端及计算机可读存储介质
CN105917627A (zh) 云服务定制执行环境
JP2014525092A (ja) サードパーティのコンテンツをオンライン文書署名に関連付けるための方法
CN109934512A (zh) 一种预测模型的训练方法及系统
CN108804130A (zh) 程序安装包生成方法及装置
CN104093085B (zh) 信息显示方法和装置
CN107015821A (zh) 增量更新的方法和装置
CN108023918A (zh) 一种服务信息获取方法、装置及系统
CN107329781A (zh) 软件热修复方法、终端、系统及计算机可读存储介质
CN107766747A (zh) 校验应用程序安装包完整性的方法、移动终端及服务器
CN109615534A (zh) 风控审核模型生成方法、装置、设备及可读存储介质
CN110503409B (zh) 信息处理的方法以及相关装置
CN107171894A (zh) 终端设备、分布式云端检测系统以及样本检测的方法
CN108038779A (zh) 视频面签身份审核方法、装置、设备及可读存储介质
CN107528825A (zh) 一种资源下载方法、终端及计算机可读存储介质
CN111352836A (zh) 一种压力测试方法及相关装置
CN108549826A (zh) 应用程序的校验方法、终端、服务器及可读存储介质
CN106484771A (zh) 差异信息文件生成及应用方法、装置
CN109472473A (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