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