有没有办法让 android 应用程序在版本之间没有变化的情况下不更新应用程序包部分?

Is there a way to make an android app not to update app bundle parts if these parts are unchanged between versions?

我想将使用 .obb 文件(~70 MB)的 android 应用(~40 MB 的基本 apk)迁移到 Android App Bundle 格式。我确信 .obb 文件中的资源更新频率低于基础部分。因此,用户无需在每次应用程序更新时下载完整的应用程序 (40 + 70 = 110 MB),只需下载更改的部分 (~40 MB)。

迁移后我可以使用什么来为最终用户提供相同的体验(仅更新更改的部分)?

理想情况下,这些未更改的资源应该可以通过 AssetManager 访问,就像它们位于资产目录中一样。

目前,我发现 Play Asset Delivery 功能允许将一些资源移动到单独的模块以在不同时间(安装时间/下载后立即/需要时)将其交付给设备。 我已经实现了安装时间模块逻辑并通过内部 + alpha 测试对其进行了测试。在整个测试过程中,我发现每个应用程序更新都会强制 Google Play 下载完整的应用程序(~110 MB)而不是更改的部分(~40 MB)。我不知道当我发布一个应用程序到“人人可用”轨道时,这种情况是否会改变,我也找不到相关信息。因此,答案“如果未更改,将不会重新下载安装时间模块;这里是描述这个的文档:”是完全可以接受的,也是最受欢迎的答案之一。

tldr;是的,在生产中,下载大小会更小。

当您将应用发布到正式版(无论是 APK 还是 App Bundle)时,Play 会在您的应用的这个版本和之前的版本之间生成补丁,以便您的用户只下载两个版本之间的差异.结果是,如果你不修改动态模块的内容,用户仍然会收到未更改模块的更新,但下载量会很小。

请注意,实际上,前几位下载更新的用户可能仍会获得完整大小。