1. ProGuard
Proguard可以删除无效的Java code来减小apk的体积
2. Split Apk
Split Apk谷歌官方支持的,可以为根据设备密度和ABI创建特定的Apk包,大大减少每个apk的体积。
3. ReDex
Facebook开源维护的,压缩代码的同时,还可以提高性能
4. ShrinkResources
去除无效的资源文件,图片是apk体积的大户,减少图片资源,就能有效的减少apk体积。在build.gradle里面使用
release {
...
shrinkResources true
...
}
5. resConfigs
当应用不需要支持多国语言的时候,可以通过resConfig去除无用的语言资源,例如下面的配置就只保留了中文和英文的语言资源:
defaultConfig {
...
resConfigs "en", "zh"
...
}
注意:
resConfigs "hdpi", "xhdpi", "xxhdpi", "xxxhdpi"
已经在新版本中废弃了,代替方案是在Gradle中使用splits根据不同的ABI以及不同的屏幕密度分别打包
6. Vector Drawables
尽量使用vector资源,因为Vector资源文件大小,会比图片的小很多
7. WebP file
使用WebP格式的图片资源,相比PNG和JPEG,WebP在保证质量的同时,压缩率更好。
8. 优化图片资源
可以使用TinyPNG, OptiPNG等压缩图片。