使用应用捆绑包时禁用或减少应用压缩

时间:2020-01-31 11:23:51

标签: android android-app-bundle

用户在使用我的应用程序时遇到错误,只有在修改了某些资产文件的情况下,这才可能发生。我猜想这是因为应用程序捆绑正在执行某种有损压缩。

如何关闭它?

编辑:显示我如何使用解压缩:

aaptOptions {
    noCompress 'fst', 'txt', 'int', 'mdl', 'raw', 'csl', 'mat', 'conf', 'bin', 'carpa', 'pb', 'pt', 'vec'
}

相关文件位于[assets /] model /

内部

我已经发布了内部模型超过150MB的应用程序,这就是为什么我认为必须对其进行压缩的原因。目前du -hs中的model/输出148MB,应用下载大小为125到139MB。

2 个答案:

答案 0 :(得分:1)

Android App Bundle不会修改资产。

您可以通过在本地运行bundletool build-apks重现APK的生成方式。参见bundletool documentation

一个可能的问题是,如果您直接从APK映射资产,则它们需要在APK中保持未压缩状态,在这种情况下,您需要指出哪些资产需要在最终APK中保持未压缩状态,然后您就可以所以在Gradle中使用:

android {
    aaptOptions {
        noCompress 'png', 'mp3'
    }
}

请参见https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.AaptOptions.html

答案 1 :(得分:0)

Android App Bundle - 里面的文件总是被压缩,但是应该未压缩的信息 (aaptOptions.noCompress) 似乎存储在包内的某个地方。

当 google play 从 bundle 生成 apk 时: base.apk - 资产和资源,对应于 aaptOptions.noCompress 不被压缩。 “安装时间”资产包 - 所有资产都未压缩。 如果您使用 bundletool 从 bundle 构建 apk,也会发生同样的情况。