一种软件升级的方法及系统的制作方法

文档序号:7986886阅读:158来源:国知局
一种软件升级的方法及系统的制作方法
【专利摘要】本发明适用于计算机【技术领域】,提供了一种软件升级的方法及系统,所述方法包括:服务器根据旧版软件包和软件升级包,使用文件差异比较工具生成软件增量包以供客户端下载,客户端从服务器下载所述软件增量包;根据所述软件增量包和客户端存储的旧版软件包采用包合成工具生成所述合成升级包;运行所述合成升级包,以对客户端软件进行升级,本发明,实现了减小升级文件的大小,节约了升级下载的网络流量,提高用户下载成功率,降低了用户升级的成本。
【专利说明】一种软件升级的方法及系统
【技术领域】
[0001]本发明属于计算机【技术领域】,尤其涉及一种软件升级的方法及系统。
【背景技术】
[0002]随着移动终端的快速发展,移动终端软件的软件升级包也越来越大,由于目前国内的无线网络环境比较复杂,尤其是通用分组无线服务技术(GeneralPacket RadioService,GPRS)网络,网关限制以及网速较慢等问题,经常出现用户下载软件升级包的时间很长,容易失败,从而移动终端软件升级的成功率低,升级成本比较高。
[0003]综上所述,需要一种解决现有软件升级方法的成功率低、升级成本比较高的问题的软件升级的方法。

【发明内容】

[0004]本发明实施例提供了一种软件升级的方法及系统,旨在解决现有软件升级方法的成功率低、升级成本比较高的问题。
[0005]一方面,提供一种软件升级的方法,其特征在于,所述方法包括:
[0006]服务器根据旧版软件包和软件升级包,使用文件差异比较工具生成软件增量包以供客户端下载;
[0007]客户端从服务器下载所述软件增量包;
[0008]客户端根据所述软件增量包和客户端存储的旧版软件包采用包合成工具生成所述合成升级包;
[0009]客户端运行所述合成升级包,以对客户端软件进行升级。
[0010]另一方面,提供一种软件升级的系统,包括服务器和客户端,所述客户端已安装了所述服务器上的旧版软件包,所述服务器包括:
[0011]增量包生成单元,用于根据旧版软件包和软件升级包,使用文件差异比较工具生成软件增量包以供客户端下载。
[0012]所述客户端包括:
[0013]增量包下载单元,用于从服务器下载所述软件增量包;
[0014]升级包合成单元,用于根据所述软件增量包和客户端存储的旧版软件包采用包合成工具生成所述合成升级包;
[0015]升级单元,用于运行所述合成升级包,以对客户端软件进行升级。
[0016]在本发明实施例,服务器根据旧版软件包和软件升级包,使用文件差异比较工具生成软件增量包以供客户端下载;客户端从服务器下载所述软件增量包;根据所述软件增量包和客户端存储的旧版软件包采用包合成工具生成所述合成升级包;运行所述合成升级包,以对客户端软件进行升级,本发明,实现了减小升级文件的大小,节约了升级下载的网络流量,提高用户下载成功率,降低了用户升级的成本。【专利附图】

【附图说明】
[0017]图1是本发明实施例一提供的软件升级的方法的实现流程图;
[0018]图2是本发明实施例二提供的软件升级的系统的具体结构框图。
【具体实施方式】
[0019]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0020]在本发明实施例中,服务器根据旧版软件包和软件升级包,使用文件差异比较工具生成软件增量包以供客户端下载,客户端从服务器下载所述软件增量包;根据所述软件增量包和客户端存储的旧版软件包采用包合成工具生成所述合成升级包;运行所述合成升级包,以对客户端软件进行升级。
[0021]以下结合具体实施例对本发明的实现进行详细描述:
[0022]实施例一
[0023]图1示出了本发明实施例一提供的软件升级的方法的实现流程,详述如下:
[0024]在步骤SlOl中,服务器根据旧版软件包和软件升级包,使用文件差异比较工具生成软件增量包以供客户端下载。
[0025]在本实施例中,所述旧版软件包是某个游戏或应用已经发布的旧版本的完整安装包,所述软件升级包是该应用的新版本的完整安装包,所述软件增量包是使用文件差异比较工具比对已经发布的旧版软件包和软件升级包的差异生成的文件。服务器根据旧版软件包和软件升级包,使用文件差异比较工具生成软件增量包以供客户端下载,具体步骤包括:
[0026]步骤11,服务器使用文件差异比较工具,对比所述旧版软件包和所述软件升级包的二进制代码,获取所述旧版软件包相对于所述软件升级包的更新内容;
[0027]优选的,所述文件差异比较工具包括但不限于:bsdiff和KDiff3。
[0028]步骤12,服务器将所述更新内容生成软件增量包以供客户端下载。
[0029]在本实施例中,由于文件差异比较工具是对比所述旧版软件包和所述软件升级包两个版本的二进制文件,获取两者的差异,生成软件增量包的,因此,本方法适用于各种软件,适用范围广。服务器共享所述软件增量包,以便于客户端通过网络下载软件增量包。同时为了满足不同版本客户端软件的升级,服务器端需要制作不同旧版软件包相对于其他版本的软件升级包的多个软件增量包,当客户端需要升级时,客户端只需要下载当前旧版软件包与其他版本的软件升级包的软件增量包,就可以升级到任意版本,因此,对客户端的软件升级不受限制于某一版本。由于软件增量包只包括旧版软件包和软件升级包的新增或者更新的内容,因此,软件增量包相对软件升级包的大小来说,比较小。通常情况下,软件增量包比软件升级包小30%飞0%,所以客户端能够更快速的下载到软件增量包,节省用户流量,提高用户下载成功率,降低升级成本。
[0030]在步骤S102中,客户端从服务器下载所述软件增量包。
[0031]在本实施例中,客户端通过internet从服务器下载本客户端的旧版软件包与软件升级包的所述软件增量包。[0032]在步骤S103中,客户端根据所述软件增量包和客户端存储的旧版软件包采用包合成工具生成所述合成升级包。
[0033]在本实施例中,客户端根据所述软件增量包和客户端存储的旧版软件包采用包合成工具生成所述合成升级包,具体包括:
[0034]客户端使用包合成工具,分析所述软件增量包和客户端存储的旧版软件包的二进制代码,将所述软件增量包和客户端存储的旧版软件合并,生成所述合成升级包。
[0035]优选的,所述包合成工具包括但不限于:bspatch和KDiff3,客户端使用与文件差异比较工具兼容的包合成工具,合并软件增量包和旧版软件包,生成软件升级包以供客户端下载。
[0036]在步骤S104中,客户端运行所述合成升级包,以对客户端软件进行升级。
[0037]在本实施例中,客户端运行所述合成升级包,所述软件升级包的相应文件覆盖旧版软件包的相应文件,以对客户端软件进行升级。
[0038]为了更清楚的描述上述软件升级流程,以斗地主游戏的升级为例来介绍软件升级的流程,移动终端已安装了旧版软件包斗地主V1.0,当斗地主的软件升级包斗地主V2.0开发完成时,上传斗地主V2.0版本到服务器上,服务器根据斗地主V1.0和斗地主V2.0,使用bsdiff,获取软件增量包,并共享所述软件增量包,以使客户端可以下载到软件增量包。客户端从服务器上下载软件增量包,客户端使用包合成工具bspatch把软件增量包和客户端已有的软件升级包斗地主V1.0合并,生成软件升级包斗地主V2.0,安装斗地主V2.0后,客户端的斗地主升级到2.0版本。如果斗地主有多个版本,从斗地主V1.0到最新斗地主V5.0,服务器只要制作不同版本的斗地主软件之间软件增量包,则可以满足不同版本客户端的向任一更高版本升级的需要。
[0039]本实施例,可以达到客户端的应用或者游戏升级时,只需要下载包括更新内容的软件增量包,相对于完整软件升级包下载量更小,节约了升级下载的网络流量,提高用户下载成功率,降低了用户升级的成本。
[0040]实施例二
[0041]图2示出了本发明实施例二提供的软件升级的系统的具体结构框图,为了便于说明,仅示出了与本发明实施例相关的部分。在本实施例中,该软件升级的系统包括:服务器I和客户端2,所述客户端2已安装了所述服务器上的旧版软件包。
[0042]其中,所述服务器I包括:
[0043]增量包生成单元11,用于根据旧版软件包和软件升级包,使用文件差异比较工具生成软件增量包以供客户端下载;
[0044]进一步的,所述增量包生成单元11具体用于使用文件差异比较工具,对比所述旧版软件包和所述软件升级包的二进制代码,获取所述旧版软件包相对于所述软件升级包的更新内容;将所述更新内容生成软件增量包以供客户端下载;
[0045]所述客户端2包括:
[0046]增量包下载单元21,用于从服务器下载所述软件增量包;
[0047]升级包合成单元22,用于根据所述软件增量包和客户端存储的旧版软件包采用包合成工具生成所述合成升级包;
[0048]升级单元23,用于运行所述合成升级包,以对客户端软件进行升级;[0049]进一步的,所述升级包合成单元22具体用于使用包合成工具,分析所述软件增量包和客户端存储的旧版软件包的二进制代码,将所述软件增量包和客户端存储的旧版软件合并,生成所述合成升级包。
[0050]本发明实施例提供的软件升级的系统可以应用在前述对应的方法实施例一中,详情参见上述实施例一的描述,在此不再赘述。
[0051]值得注意的是,上述系统实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
[0052]另外,本领域普通技术人员可以理解实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如R0M/RAM、磁盘或光盘等。
[0053]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种软件升级的方法,其特征在于,所述方法包括: 服务器根据旧版软件包和软件升级包,使用文件差异比较工具生成软件增量包以供客户端下载; 客户端从服务器下载所述软件增量包; 客户端根据所述软件增量包和客户端存储的旧版软件包采用包合成工具生成所述合成升级包; 客户端运行所述合成升级包,以对客户端软件进行升级。
2.如权利要求1所述的方法,其特征在于,所述服务器根据旧版软件包和软件升级包,使用文件差异比较工具生成软件增量包以供客户端下载,具体为: 服务器使用文件差异比较工具,对比所述旧版软件包和所述软件升级包的二进制代码,获取所述旧版软件包相对于所述软件升级包的更新内容; 服务器将所述更新内容生成软件增量包以供客户端下载。
3.如权利要求1或2所述的方法,其特征在于,所述客户端根据所述软件增量包和客户端存储的旧版软件包采用包合成工具生成所述合成升级包,具体为: 客户端使用包合成工具,分析所述软件增量包和客户端存储的旧版软件包的二进制代码,将所述软件增量包和客户端存储的旧版软件合并,生成所述合成升级包。
4.一种软件升级的系统,包括服务器和客户端,所述客户端已安装了所述服务器上的旧版软件包,其特征在于,所述服务器包括: 增量包生成单元,用于根据旧版软件包和软件升级包,使用文件差异比较工具生成软件增量包以供客户端下载。 所述客户端包括: 增量包下载单元,用于从服务器下载所述软件增量包; 升级包合成单元,用于根据所述软件增量包和客户端存储的旧版软件包采用包合成工具生成所述合成升级包; 升级单元,用于运行所述合成升级包,以对客户端软件进行升级。
5.如权利要求6所述的系统,其特征在于,所述增量包生成单元具体用于使用文件差异比较工具,对比所述旧版软件包和所述软件升级包的二进制代码,获取所述旧版软件包相对于所述软件升级包的更新内容;将所述更新内容生成软件增量包以供客户端下载。
6.如权利要求4或5所述的系统,其特征在于,所述升级包合成单元具体用于使用包合成工具,分析所述软件增量包和客户端存储的旧版软件包的二进制代码,将所述软件增量包和客户端存储的旧版软件合并,生成所述合成升级包。
【文档编号】H04L29/08GK103853574SQ201210518108
【公开日】2014年6月11日 申请日期:2012年12月6日 优先权日:2012年12月6日
【发明者】郑伟, 罗春华, 翁粤东, 贺志强, 许冠严, 郭成 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1