Android 升级minSdkVersion 导致 包体积变大的处理
Android 升级minSdkVersion 导致 包体积变大的处理
问题描述
minSdkVersion
从21
修改为 23
,打包后包体积大小增加了70M,分析包内容,主要是so
文件变大。
原因
主要原因是AGP
(Android Gradle Plugin
)在高版本SDK
下默认禁用原生库(.so文件)和DEX
文件的压缩。这样做,有以下好处:
- 安装速度快. 未压缩的
APK
安装时无需解压.so
文件,安装速度更快。 - 存储占用小. 安装后
APK
占用的设备存储空间更小(因无需解压副本)
开发者APK
上传体积增大,但下载大小可能无明显变化(依赖分发渠道),Google Play
商店会对未压缩的APK
进行二次压缩,实际下载大小可能接近压缩后的体积。所以上架Google Play
商店,无需在意此影响。
但是非Google Play
渠道(如国内应用商店)可能直接分发未压缩APK
,导致下载体积显著增加。
所以,上架国内应用市场,需要启用原生库压缩。
解决
强制压缩原生库,只需在AndroidManifest.xml
文件 application
添加extractNativeLibs
配置。如下:
<application android:extractNativeLibs="true" ... />
参考资料
最新Android Studio打包SO不压缩导致APK变大