1.图片优化
我们在开发过程中选用图片资源的顺序
- shape,能通过代码画出的图形就不用图片
- 矢量图svg,可随意伸缩和设置颜色,适合一些色彩较为单一的小图标,可以将svg转为vector直接放到drawable直接使用或打包成字体库即.ttf文件放到asset路径下使用。
- webp,google出的图片格式,体积与png相比小很多,显示效果几乎无差别,在Androidstudio中可以选中图片右键convert to webp(也有批量转化方式可自行百度)。
- png,webp不支持4.0以下系统,但我们还是能对png图片进行压缩,如tinypng,有Androidstudio插件可以批量压缩。
除此之外还有一些图片使用的技巧
- 使用tint,比如一张图片有选中和未选中两种状态但只是颜色不同,则可放一张图片通或tint来动态改变图片的颜色。
2.资源压缩
- 开启代码混淆和去除无用资源
buildTypes {
release {
minifyEnabled true //代码混淆
shrinkResources true //去除无用资源,开启后没有引用到的资源将不会打到apk中
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
defaultConfig {
......
resConfigs('zh-rCN')
}
3.代码优化
多人开发的项目中,难免会出现冗余代码
- 对项目不熟悉,出现相同代码的拷贝
- 功能或逻辑一样的代码,语义上的拷贝
- 能够通过设计,进行向上抽取封装的类或方法
检测工具
PMD下载地址
4.Lint检测
在androidStudio面板逐步选择即可
5.其他优化
-
重复的string,color优化
-
减少使用Enum的使用,每减少一个ENUM文件可以减少1kb左右的大小,采用常量定义
-
优化引用的库
1.去除不在使用的库
2.优化过时的库
3.提取仅仅使用的代码
4.选用更小的库 -
音频资源压缩
采用音频压缩工具,压缩音频,降低音频采用率,通道数等在不明显影响的前提下压缩音频 -
build文件指定abi
defaultConfig {
//配置so库框架(arm:真机)
ndk {
abiFilters('armeabi-v7a') //release版只支持真机架构即可
//abiFilters('armeabi-v7a', 'x86') //x86模拟器架构
}
}