在 Google Play 商店中使用补丁和更新减小 APK 大小

Reduce APK Size using Patch and Update on Google Play Store

我最近了解到 Google 正在使用 逐文件修补 和另一种算法 BsDiff - 增量更新 修补 apk 文件并仅提供更新大小的 apk 以从 Play 商店下载。

我浏览了以下博客和链接:

1) https://android-developers.googleblog.com/2016/12/saving-data-reducing-the-size-of-app-updates-by-65-percent.html

2) https://github.com/andrewhayden/archive-patcher/blob/master/README.md "File-by-File Patching"

3) https://android-developers.googleblog.com/2016/07/improvements-for-smaller-app-downloads.html 用于 "BsDiff" 补丁

我在我的 Linux 上安装了 BsDiff,并将其应用于新旧 apk,但它与应用程序的大小保持不变,而且当我在 Play 商店更新它时,它显示的是当时的完整大小安装。

此外,我下载了 "File-by-File Patching" 代码并通过它制作了 apk 并在 Play 商店更新了它,但同样,apk 的大小没有减小。

所以,如果有人做过或知道这件事,请给出你的答案,这样我就可以在 Play 商店中更新我的应用程序大小。

一个 APK 有四种不同的大小,分类为:

  1. 原始 Apk 大小
  2. 下载大小
  3. 安装尺寸
  4. 更新大小

您主要关注的是 Raw Apk 大小,这不会有太大差异。它是 google Play 商店,它使用不同的算法来压缩 APK。这反过来确保 apk 的下载大小较小,从而减少最终用户的移动数据消耗。

下载压缩的 APK 后,它将在用户的设备上解压缩,您将获得安装大小。此大小可能与原始大小不同,因为它会涉及一些 JIT and/or AOT 完成。

关于更新大小,您将 Apk 与更新一起上传到 Play 商店,google Play 商店将依次计算增量并将其交付给最终用户。然后这个增量将在设备上合并。此优化减少了更新大小,因此不会再次下载整个 APK,用户将节省成本。

总而言之,您可能看不到对 apk 原始大小的重大影响,但 Play 商店的优化将确保下载大小和上传大小达到最佳。

更详细的应用技巧,可以参考this文章。它剖析了我所描述的 apk 大小,并提供了减小大小的重要提示。

您不需要执行任何操作来触发这些 APK 大小缩减以进行更新。您绝对不需要下载 BS Diff 或补丁代码。 Play 会自动为您执行此操作。但是,根据应用程序的受欢迎程度,可以按需应用一些优化。因此,如果您的应用不是很受欢迎,可能需要一段时间才能看到优势。

如果您希望 Google 能够应用尽可能多的优化,您应该选择加入 Google Play App Signing(如果您还没有)。这为 Google Play 提供了优化应用更新的最大能力,虽然现在不会影响这些优化,但将来可能会影响。