今天給大家介紹的是一款A(yù)ndroid Studio上的gradle插件:img-optimizer-gradle-plugin(歡迎star給予支持),該插件的作用歸結(jié)為一句話:
一款用于優(yōu)化png圖片的gradle插件,有效減少APK體積,支持極限壓縮和無損壓縮。
如何使用
在Project的build.gradle文件中:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.0-alpha5'
classpath 'com.chenenyu:img-optimizer:版本號'
}
}
然后在你想要優(yōu)化的module的build.gradle文件中:
apply plugin: 'img-optimizer'
然后在task tree里面就可以看到對應(yīng)的task:

task.png
雙擊即可執(zhí)行。task的名字受當前module的命名影響。
支持的配置項
可以在module的build.gradle文件中添加配置選項,來自定義任務(wù):
optimizerOptions {
triggerSize 5
type "lossy"
suffix "_opt"
}
-
triggerSize用于過濾圖片,小于該值的圖片不會進行優(yōu)化。默認為0,即每張圖片都進行優(yōu)化。 -
type優(yōu)化類型,目前支持"lossy"和"lossless"。"lossy"為極限壓縮(推薦,速度快,壓縮率高),"lossless"為無損壓縮(速度慢,壓縮率低,與原圖無差別)。 -
suffix優(yōu)化后的圖片后綴。假如配置為"_opt",ic_launcher.png經(jīng)過優(yōu)化后,將會生成ic_launcher_opt.png。默認為空,即覆蓋原圖。
效果預(yù)覽
| 原圖 | 極限壓縮(lossy) | 無損壓縮(lossless) |
|---|---|---|
| 526K | 195K(減少63%) | 473K(減少10%) |
![]() |
![]() |
![]() |
說明
如果項目有多個module,請在相應(yīng)的build.gradle中配置plugin,每個module相互獨立。執(zhí)行task后會在module根目錄下生成log文件,詳細記錄了每張圖片的優(yōu)化情況,方便查看。
最后,再貼一下源碼地址,希望大家試用之后都能star支持一下。


