项目配置如下
compileSdkVersion 29 targetSdkVersion 23 minSdkVersion 23
代码之前每次打包时大约60M左右,由于项目需求,添加了AndServer这个库
按照Git配置如下
buildscript中
dependencies { classpath 'com.android.tools.build:gradle:3.4.1' classpath 'com.yanzhenjie.andserver:plugin:2.1.9' }
Module中
apply plugin: 'com.android.application' apply plugin: 'com.yanzhenjie.andserver'
dependencies { ... implementation 'com.yanzhenjie.andserver:api:2.1.9' annotationProcessor 'com.yanzhenjie.andserver:processor:2.1.9' }
添加完库 打包后发现Apk为120多M,大小翻了一倍
对比发现居然是压缩问题
两个Apk解压出来的大小几乎是一样大
折腾了两天居然发现在Manifests设置extractNativeLibs = "true"就行
<application
android:extractNativeLibs="true"
然后打包出来的Apk就变成正常的60多M了
备注:
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;