以下内容是在实际项目中经过验证的实践,进过以下步骤,原来12M 的安装包压缩为 7.5M 左右,变化很明显。
通过proguard来删除无用代码
在build.gradle中进行如下配置:
android {
buildTypes {
release {
minifyEnabled true // 开启混淆
}
}
}
虽然这种方式成果显著,但也需要配合正确的proguard配置才能起作用
去除一些so文件
只保留与设备架构相关的库文件夹可以大大降低lib文件夹的大小。配置方式也十分简单,直接配置abiFilters即可。下面的配置就是只保留 armeabi、armeabi-v7a 和 x86 平台的 so 文件
defaultConfig {
ndk {
abiFilters "armeabi", "armeabi-v7a" ,"x86"
}
}
通过 AS 删除无用资源
在 AS 的任何文件中右击,选择清除无用资源即可删除没有用到的资源文件
打包时剔除无用资源
shrinkResources 顾名思义——收缩资源。将它设置为true后,每次打包的时候就会自动排除无用的资源。需要注意的是,shrinkResources 需要和 minifyEnabled true 配合使用,否则不生效
buildTypes {
release {
minifyEnabled true // 开启混淆
shrinkResources true // 去除无效的资源文件
}
}
删除无用的语言
大部分应用其实并不需要支持几十种语言的,我们可以只支持中文。可以在项目的 build.gradle 中进行如下配置
buildTypes {
defaultConfig {
resConfigs "zh"
}
}