为何游戏更新需要下载整个APK?

20次阅读
没有评论

游戏应用更新为何需要下载整个 APK

近来的讨论和评论中频繁出现一个疑问:为什么当我安装了最新版本的某个游戏(如《Temple Run 2》),并希望使用其中新的功能(例如与奥运会冠军Usain Bolt一起奔跑)时,往往需要下载整个应用程序?这种行为是否会影响用户体验,并可能造成用户对应用更新机制感到困惑?

让我们从开发者和谷歌的角度出发探讨这个问题。

1. 为什么游戏更新时要下载完整文件?

  • 打包方式: Android 应用程序是以 APK 文件的形式进行分发的。APK 是包含所有代码、布局以及资源的一个压缩文件包。在 APK 文档中,难以实现单一模块或部分代码的安全和高效更新。
  • 安全性考虑: APK 中包含了经过编译后的可执行代码(通过 Dalvik 指令集或 ART 重新编译),这些代码一旦发布不可逆地改变了原有逻辑结构。因此,即使只是简单更改某个功能,也需要整个应用再次编译并分发新的完整 APK。
  • Google Play 更新机制: 谷歌Play商店在其更新策略中使用了一种称为“增量更新(delta updates)”的技术来提高效率和节省用户流量,但据相关报道表明,并不是所有情况下都能实现这样的优化。例如,某些版本的《Temple Run 2》并未收到有效的 delta 更新。

2. 谷歌Play Store中的变化

最近几个月里,谷歌 Play 商店确实引入了针对大型应用的增量更新机制。“delta update”技术涉及对比最新和旧的 APK 文件,生成仅包含差异部分的新文件以分发给最终用户。这样的策略可以显著节省流量、降低上传时间,并且在很大程度上提高了更新过程中的效率。

然而,即便如此某些高下载量的应用还是无法直接获得 delta 更新版本的原因可能如下:
应用大小限制: 有些大型应用的代码库变化量相对较小,则不值得投入服务器和基础设施资源来进行复杂的文件差异比较。
初始构建复杂度: 对于那些有着庞大架构以及紧密耦合在一起的功能模块的项目,实施增量更新涉及额外的工作量和技术问题。

总而言之,尽管可以预见未来会有更多创新技术来优化应用分发与升级流程,在当前的移动平台上(尤其是针对庞大的 APK 文件),确保全量下载仍然是较为稳妥的方式。开发者们也在探索更多灵活且高效的方法来平衡用户体验和运营成本。

正文完