- 在buildTypes中开启资源混淆和图片资源压缩
buildTypes {
release {
signingConfig signingConfigs.release
//开启资源混淆
minifyEnabled true
//压缩无用资源
shrinkResources true
//zipAlign优化
zipAlignEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
applyBuildConfigField("release",buildTypes.release)
}
}
- 使用AndroidStudio的Lint工具
路径Analize--inspectCode
,检查无用代码 - 只保留中文资源
一些第三方包中有其它语言资源
android{
defaultConfig{
resConfigs 'zh'
}
}
- redex
faceBook提供的字节码优化工具,可以使包更小,速度更快,但安装比较麻烦
命令行:redex path/to/your.apk -o path/to/output.apk
地址:官方地址 - 设计阶段对图片进行压缩
tynypng等
jpg代码png,webp代替gif,webp支持透明度,qulity=75比较好 - 使用vectorDrawable
vectorDrawable是矢量图svg的压缩版,只采用了path标签
vectorDrawable占用空间小,缩放不失帧,有转化工具可以把svg文件转化为vectorDrawable的path字符串,可以对Path应用属性动画,实现一些复杂路径的动画
配置:
android{
defaultConfig{
vectorDrawables.useSupportLibrary = true
}
}
dependencies{
//解决兼容性问题
compile 'com.android.support:appcompat-v7:25.3.1'
}
-AndResGuard
微信开源组件,可以对资源进行混淆,效果类型java的Proguard,缩短路径,降低可读性,压缩资源。
- 删除不必要的so文件
只使用armeabi中的so
android{
defaultConfig{
ndk{
abiFilters 'armeabi'
}
}
}
- 使用provide编译release中不需要的库
在debug时使用反射初始化,以免在release时不能编译通过 - 清理第三方库中重复的代码
网友评论