如果版本之间没有变化,有没有办法使Android应用程序不更新应用程序捆绑包部分?

问题描述

我想将使用.obb文件(〜70 MB)的Android应用(基本apk的〜40 MB)迁移到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都会在此版本与以前的应用版本之间生成应用补丁,因此您的用户只需下载这两个版本之间的差异。结果是,如果您不修改动态模块的内容,用户仍将收到未更改模块的更新,但下载量将很小。

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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...