首先软件更新概览概览
软件 诞生后(第一次编写和发布),将会有持续的维护和改进。可能是修复缺陷,可能是优化旧功能模块adobe软件怎样升级,也可能是添加新功能。总之经典的喷溅组合笔刷,既然一个软件诞生了,就会有不断的更新,软件开发者有必要以某种方式把这个更新带给用户。
在平台上acdsee8.0中文版,软件被封装成EXE文件格式,用户可以通过网站下载或光盘安装。在Linux平台上,可能是deb或者rpm等。在苹果的mac上,这个文件格式是dmg。iOS 上的 APK,iOS 上的 pkg。更多可以参考。
软件安装到用户的操作系统后,如果软件的作者更新了软件并发布了新版本,应该如何通知用户,以便用户使用最新的<@ 版本的软件 呢?有几种方法:
给用户发送邮件,邮件中包含新版本软件的下载链接,用户点击链接下载安装替换旧版本。
软件自带检测更新功能。
这需要软件开发者创建服务器,用户每次打开软件,软件都会自动查询服务器最新版本,并与本地版本进行对比。如果服务器端说有新版本,软件客户端会弹出对话框提示用户,允许用户直接下载或者打开浏览器页面到指定页面下载新版本申请。如QQ、Adobe等。
软件发布到 App Store 或操作系统支持的 软件 更新通道。比如mac上的App Store,包管理器,以及大量的国内市场渠道。软件开发者只需要将新版本发布到App Store,mac上的App Store会帮助软件监控新版本adobe软件怎样升级,如果软件有新版本版本发布,会提醒用户更新。
软件更新后的基础模型为:
探测
|
下载
|
压合(覆盖)
新的挑战
在古代,软件的开发周期很长,软件的更新频率非常稀少,大概几个月一次。所以维护一个软件更新服务比较简单,就是提醒用户去下载新版本软件的安装文件覆盖安装。一些软件 甚至需要在安装新版本之前卸载旧版本软件。比如很多银行软件和司机软件。
然而,软件发展时代已经进入互联网,尤其是移动互联网高速发展的时代,产品经理提倡快速迭代。软件 的开发周期大大缩短。快速、频繁的 软件 发布已成为主流开发模式。这给 软件 更新服务带来了新的挑战。原来的情况下,每隔几个月更新一次,不会频繁打扰用户。现在,可能每周都有更新。如果还是用原来的模型,用户每周去下载一个新的安装文件会很麻烦。原始安装文件可能非常大。对于移动平台,应用程序在 . 显然,它不会给用户带来良好的升级体验。同时,需要注意的是,由于快速迭代的开发模式,不同周版本之间的差异并不是很大。比如新版本可能只是改变Logo图片,或者增加一个小功能,修改一行代码。用户需要升级下载的安装包,相邻版本可能有70%的内容相同,只有小部分内容不同。在这种情况下,没有必要用那么大的 下载 文件来浪费用户和开发人员的带宽。而相邻的版本可能有70%的内容相同,只有一小部分内容不同。在这种情况下,没有必要用那么大的 下载 文件来浪费用户和开发人员的带宽。而相邻的版本可能有70%的内容相同,只有一小部分内容不同。在这种情况下,没有必要用那么大的 下载 文件来浪费用户和开发人员的带宽。
所以这里我们可以引入一个算法,可以计算出新版软件安装包和老版本的差异,我们把这个过程叫做diff,diff得到的结果叫做delta。你需要下载这个delta文件到你的电脑或者手机上,然后用一种方法把delta和用户本地的旧版本软件结合起来生成一个新版本的软件,这个我们称之为补丁的过程。这里需要生成的新版本和单独安装新版本的效果是一样的。
所以我们的任务就变成了寻找一种高效的diff/patch算法,使中间传输的delta文件尽可能的小。
下载 较小的文件大小带来了两个好处:
为用户和软件开发人员节省带宽成本。这对于互联网访问成本高的移动环境中的用户来说意义重大。对于开发者来说,在移动时代,用户基数巨大,往往在数千万量级,对单次传输的文件大小稍加优化就会大大降低带宽成本。文件越小,下载时间越短,用户升级体验越流畅。将大大提高软件的升级率。对于游戏、浏览器等有特殊需要在短时间内提升升级率的软件,大部分用户可以在较短时间内升级到新版服务。一方面降低了老版本服务的研发和维护成本。另一方面,能够快速帮助用户升级将提高软件的安全性。团队为此开发了一种算法,专门优化了 diff 过程,减小了 delta 文件的大小,使 软件 可以快速更新并保持安全。增量更新
我们将上一节提到的diff/patch模型称为增量更新模式,即用户不需要下载全新版本软件,只需要增量部分下载。
这种模式的简单形式可以用两个公式表示:
server:
delta = diff(original, update)
transmit delta
client:
receive delta
update = patch(original, delta)
根据不同平台上的 软件 文件格式,可能有几种不同的 diff/patch 算法。
比较成熟的算法是/。这种算法的优点是非常简单,不管文件的内部格式如何矢量花纹笔刷下载2,完全把文件当作二进制处理。
还有其他方法可以对平台上的 EXE 文件进行比较。
后面我们会介绍一个更深入的考虑文件内部格式的算法,用于浏览器的版本更新。该算法的增量文件差异是结果的 10%,将中间结果减少了 90%!菅井 :)
引用
[1]:“”
[2]::“:”
[3]:差异“差异/补丁”
[4]::“”
发表评论