Android-APK的压缩工具:img-optimizer-gradle-plugin

背景

img-optimizer-gradle-plugin,一款用于优化png图片的gradle插件,有效减少APK体积,支持极限压缩和无损压缩。
Github地址:https://github.com/chenenyu/img-optimizer-gradle-plugin

使用方法

项目的build.gradle文件中添加如下配置:

1
2
3
4
5
6
7
8
buildscript {
repositories {
jcenter()
}
dependencies {
...
classpath 'com.chenenyu:img-optimizer:latestVersion'
}

模块的build.gradle文件中添加如下配置:

1
apply plugin: 'img-optimizer'

在任务树中可以看到如下tasks:

双击执行task. task的名字受当前module的命名影响。

支持的配置

可以在module的build.gradle文件中添加配置选项,来自定义任务:

1
2
3
4
5
optimizerOptions {
triggerSize 5
type "lossy"
suffix "_opt"
}
  1. triggerSize 用于过滤图片,小于该值的图片不会进行优化。默认为0,即每张图片都进行优化。
  2. type 优化类型,目前支持”lossy”和”lossless”。”lossy”为极限压缩(推荐,速度快,压缩率高),”lossless”为无损压缩(速度慢,压缩率低,与原图无差别)。
  3. suffix 优化后的图片后缀。假如配置为”_opt”,ic_launcher.png经过优化后,将会生成ic_launcher_opt.png。默认为空,即覆盖原图。

补充说明

  1. 如果项目有多个module,请在相应的build.gradle中配置plugin,每个module相互独立。执行task后会在module根目录下生成log文件,详细记录了每张图片的优化情况,方便查看。
  2. 不同的buildType,可能对应不同的sourceSet(可能有不同的资源),即不同的res。
  3. 不同的buildType(release debug)对应相同的sourceSet ,运行其中一个就行。
  4. 实际用在lovebook项目中可以减少Apk 5M左右。
  5. 一定要注意suffix “” 默认改为空字符串