当最小 SDK 从 21 增加到 24 时,APK 大小增加了 35mb

im_*_*osh 9 android apk android-min-sdk android-6.0-marshmallow android-native-library

最近,我们将最低支持的 SDK 从 API 21 提升到了 24。

显然,这一变化导致我们的 APK 大小从 65mb 增加到 103mb。从Android studio中的APK分析可以看出,基本上都是.so文件大小翻倍了。

但为什么会这样呢?gradle 属性没有改变,只有 min sdk。

关于如何再次减小 APK 大小的任何想法?

are*_*lek 11

关于如何再次减小 APK 大小的任何想法?

根据reddit上的这个答案Google 问题跟踪器上的这个问题,这是因为从 API 23 开始,如果未压缩,平台可以读取本机库而无需提取它们。

如果您的 minSdk 为 22 或更低,则他们无法使用此功能,因为在较旧的设备上会有这些库的两个副本(未提取和从 APK 中提取)。

如果您声明 minSdk 23 或更高版本,使用未压缩的本机库构建 APK 应该可以节省设备空间,因为:

  • 无论如何,APK 在下载前都会被压缩,因此下载大小不会改变
  • 安装后,只有一个库副本(在 APK 中未压缩)

当我刚刚对此进行测试时,与 22 相比,minSdk 23 安装后的大小实际上更高,这与他们所说的应该发生的情况相反。这是因为 APK 包含所有 ABI 的库。如果我只使用一个 ABI,那么 minSdk 23 会小一点。因此,在您开始拆分 APK或使用App Bundle 之前,您可能需要android:extractNativeLibs="true"AndroidManifest.xml.