【发布时间】:2021-06-29 22:21:41
【问题描述】:
我有一个相对较小且简单的应用程序,它总是生成一个 ~17 MB 的发布 APK 文件。前段时间我注意到 APK 的大小增加到了惊人的(对于这个应用程序)39 MB。我追踪了导致它的更改,结果发现相同的代码库,唯一的变化是 minSdkVersion 从 16 到 26没有任何其他更改导致 APK 增加。
奇怪的是,当我解压 APK 时,解压后的目录占用了大约 40 MB 的磁盘空间。有一些变化,但都在非常小的文件中,比如 26 版本中缺少一些布局,可以忽略不计。 40 MB 中最大的部分是包含 *.so 库的 lib 文件夹,总计 37 MB,但它们在两个 APK 版本中是相同的。 (该应用程序是使用flutter build apk --release 构建的 Flutter 应用程序。)
我实际上不希望也不需要 minSdkVersion 为 26 并且会恢复此更改,但我很好奇:
- 在 Android 中发生了哪些变化,导致这两个
minSdkVersions 之间的大小如此显着增加? - APK 在解压后如何具有几乎相同的大小?似乎为
minSdkVersion16 构建时的压缩要好得多? - 如果解压后的目录大小几乎相同,那么增加的大小对最终用户来说真的很重要吗?他们需要下载 17 对 37 MB 吗?为
minSdkVersion26 构建的应用会占用他们设备上的更多空间吗?
【问题讨论】:
标签: android apk android-min-sdk