我想问一下应用程序更新是如何工作的。我不明白!我举个《侠盗猎车手5》的例子
当Rockstar发布补丁或更新时,他们如何在不再次下载整个gb/mb或重新编译的情况下更新代码?更新后,你可以很容易地开始游戏。
我在其他游戏中也看到了类似的方法。例如,他们修改了2MB的代码,而更新程序只下载了2MB。修改后的代码无需重新编译就可以进入游戏。是我傻吗,还是我不明白这是怎么回事?…我的意思是,如果有一个50MB大的。dll文件,开发者只编辑了一行,更新程序就不会再下载这50MB的文件,相反,它只会得到编辑过的一行。
我想你没有意识到应用二进制补丁的可能性。
基本上的想法是,如果源代码的变化很小,并且二进制文件被重新编译,那么很大一部分将是相同的。这可以用来发布一个同样小的补丁。
例如,假设您的50 MB二进制文件中只有10个字节被更改。智能工具可以做到这一点:获取旧文件,忽略前23,678,789字节,然后用补丁的内容替换下一个10字节,再删除2个字节,忽略下一个4332字节,添加一个,并保持其他所有内容不变。在适当的格式下,这个补丁只需要几个字节。
当然,完整的补丁包含原始文件和修改后的文件的散列是合理的,以确保一切顺利,并且在发生灾难的情况下,您可以重新下载整个文件。您还可以添加签名,以确保只安装经过授权的补丁。但基本的想法是,你可以做二进制差异和补丁,这是绝对常见的。