APK瘦身

  • 图片资源的优化
  • 资源压缩
  • 其他优化

图片资源优化

图片选择顺序

  1. VD:使用矢量图片例如:SVG格式的,不管适配什么屏幕,只需要一份图片即可
  2. WebP:WebP体积更小,4.2.1+支持透明度
  3. PNG:有透明度,渐变,阴影的情况下选择png
  4. JPG:

WebP转换方式

Android Studio 选中图片-右键 -convert to webp 即可

APK瘦身_第1张图片
如果图片比较多,就采用工具批量转换

  • 下载WebP转换工具,进行图片统一压缩
  • https://developers.google.com/speed/webp/docs/precompiled

PNG压缩

如果项目是Android 4.2.1版本以后的,用webP 即可,不需要使用png了。如果项目是4.2.1之前的。不能使用WebP的话那就对PNG进行压缩。
采用压缩工具对png进行压缩

  • 可以采用ImageOptim或者Pngyu对png进行压缩
  • AAPT会使用内置的压缩算法来优化res/drawable/目录下的PNG图片,但也可能会导致本来已经优化过的图片体积变大,这里禁用aapt优化png图片
aaptOptions {
	cruncherEnabled = false
}

其他图片优化

  • 纯色图片代码实现


    
    



  • 减少图片资源防治份数
    放置xhdpi,xxhdpi 如果只放一份会有什么问题?
  • 能用代码实现的图片尽量采用代码实现
    圆形图片,环形,渐变等都可以采用代码实现

开启资源压缩

开启代码混淆与去除无用资源

android {
    	.....
    buildTypes {
        release {
            shrinkResources true
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

进一步资源压缩

  • 微信开源的AndResGuard工具,对资源进一步混淆
    详情参考:AndResGuard集成笔记

其他优化

  • 冗余代码的优化
    什么是冗余代码:
    1、完全一致的代码或者只修改来空格和评论
    2、结构上和句法上一致的代码,例如只是修改来变量名
    3、插入和删除了部分代码
    4、功能和逻辑上一致的代码,语义上的拷贝
  • 冗余代码的检测
    1、使用工具,例如PMD
    2、PMD下载地址:https://pmd.github.io/

Lint Android最常用的一个优化

  • 未使用资源
    1、检测未使用资源并删除
    2、Android Studio -> Analyze -> Run inspection by Name ->(输入)unused resource
  • 无用代码优化
    Android Studio -> Analyze -> Run inspection by Name -> unused declaration -> Moudule app -> OK
  • 其他的Lint优化,可优化内容很多可以多了解一下

语言资源优化

  • 在build配置中配置resConfigs指定需要的语言类型
defaultConfig {
        resConfigs "zh","en"
}

其他优化

  • 重复String ,color优化
  • 减少Enum使用
    每减少一个Enum文件可以减少1k左右的大小
    采用常量定义

你可能感兴趣的:(Android性能优化)