参考:
APK瘦身属性——android:extractNativeLibs
android官网:android:extractNativeLibs
现象:
升级gradle之后发现 打包出来的apk体积突然大了将近一倍。
解决办法
在主工程的AndroidManifest.xml
配置中,在application
标签,添加android:extractNativeLibs=true
属性
android:extractNativeLibs=true
或
build.gradle
中添加useLegacyPackaging
属性:
android {
packagingOptions {
jniLibs {
useLegacyPackaging true
}
}
}
原因
extractNativeLibs
瘦身属性 true
时会将工程so库进行压缩
gradle 升级后 其默认值发生了改变
android:extractNativeLibs = true
时,gradle打包时会对工程中的so库进行压缩,最终生成apk包的体积会减小。
但用户在手机端进行apk安装时,系统会对压缩后的so库进行解压,从而造成用户安装apk的时间变长。
关于android:extractNativeLibs
默认值设定方面,若开发人员未对android:extractNativeLibs
进行特殊配置:
-
minSdkVersion < 23
或Android Gradle plugin < 3.6.0
情况下,打包时android:extractNativeLibs=true
; -
minSdkVersion >= 23
并且Android Gradle plugin >= 3.6.0
情况下,打包时android:extractNativeLibs=false
;