美文网首页Android开发实用技巧Android开发程序员
【干货】一键压缩Android项目中png的大小!

【干货】一键压缩Android项目中png的大小!

作者: FullStack | 来源:发表于2016-07-13 12:37 被阅读1660次

    今天给大家介绍的是一款Android Studio上的gradle插件:img-optimizer-gradle-plugin(欢迎star给予支持),该插件的作用归结为一句话:

    一款用于优化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:版本号'
        }
    }
    

    然后在你想要优化的module的build.gradle文件中:

    apply plugin: 'img-optimizer'

    然后在task tree里面就可以看到对应的task:

    task.png

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

    支持的配置项

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

    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。默认为空,即覆盖原图。

    效果预览

    原图 极限压缩(lossy) 无损压缩(lossless)
    526K 195K(减少63%) 473K(减少10%)

    说明

    如果项目有多个module,请在相应的build.gradle中配置plugin,每个module相互独立。执行task后会在module根目录下生成log文件,详细记录了每张图片的优化情况,方便查看。


    最后,再贴一下源码地址,希望大家试用之后都能star支持一下。

    相关文章

      网友评论

      • d583ad44a783:双击 optimizerXXXDebug 和 optimizerXXXRelease 有啥区别。 还有 后面是不是要手动的对 res文件夹下的资源文件进行 替换和删除 然后在打包
        d583ad44a783:@FullStack : 那如果 不同的buildType(release debug)对应相同的sourceSet , 是不是运行其中一个就行。
        d583ad44a783:“suffix 优化后的图片后缀。假如配置为"_opt",ic_launcher.png经过优化后,将会生成ic_launcher_opt.png。默认为空,即覆盖原图。” 这句话 是关键 。目前做的时候 是拉一个分支 在分支上做替换,效果不错 压缩了 5mb
        FullStack:不同的buildType可能对应不同的sourceSet,即不同的res
      • dev4mobiles:现在尽量用svg 图片了
      • 06a5f27268e0:刚才试了下!log日志为什么skiped这么多!并且压缩率这么低!
        FullStack:@Haydar_Android 可能是你的项目已经压缩过了。至于压缩率,你可以随便拿张png图片放到项目里测试一下。
      • 06a5f27268e0:@FullStack 这个在上线项目中实验过吗!会影响图片的质量吗?
        FullStack:@Haydar_Android 目前在用户量千万级的产品中使用过,项目产生于实际需求,放心使用吧…
      • 06a5f27268e0:好
        FullStack:@Haydar_Android 谢谢支持 欢迎star项目源码 :smile:

      本文标题:【干货】一键压缩Android项目中png的大小!

      本文链接:https://www.haomeiwen.com/subject/wabsjttx.html