AndroidStudio图片压缩工具ImgCompressPlugin使用实例

 更新时间:2022年08月04日 16:49:36   作者:iblade_wang  
这篇文章主要为大家介绍了AndroidStudio图片压缩工具ImgCompressPlugin使用实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

正文

项目中集成了TinyPng,500张免费 几个key轮流使用 非常方便However,最近发现总是报错

Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

看到官网,2016年之后,已不再维护,只能转向新的压缩工具了。

于是集成ImgCompressPlugin

如何使用

在project的build.gradle中添加:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        ...
        classpath 'com.kingkingdu.plugin:img-compressor:1.1.5'
    }
}
...

在Module的build.gradle文件:配置插件的设置

apply plugin: 'img-compressor'
repositories {
    google()
    maven { url "https://jitpack.io" }
}
imgCompressOpt{
    way="pngquant"
    test = false
    whiteFiles=["text_pic1.png","test_pic2.jpg"]
    minSize=5
    tinyKeys=["your key"]
}
dependencies {
    ....
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    ....
}

点击Sync Now ,点击AS右侧Gradle找到image--imgCompressTask 双击即可执行压缩。

配置信息

  • way:设置压缩的方式,支持3种常见的压缩,"tinypng","pngquant","zopflip" 3选1,压缩方式选择及压缩效果见下图
  • test:设置测试模式是否开启,false表示压缩后图片直接覆盖原图,true表示会把原图及压缩图输出到测试目录(Project/ImageCompressTest)
  • whiteFiles:选填,白名单文件数组,不进行压缩
  • minSize:单位为KB,设置原图大于某个数值才触发压缩,0表示全部都压缩
原图tinyPngpngquantzopflip
压缩类型有损有损无损
1.3M445K542K903K

如何选择合适的压缩方式

  • 如果项目本身原先使用的压缩方式与3种模式之一相同,则way选择相同的方式.
  • 如果原先没有固定的压缩方式,那么推荐使用tiny或者pngquant,相对来说,tiny压缩时间较长,需要去官网申请key,但效果最好.pngquant压缩快速,效果也不错(但是tiny 目前不能用了on 2021.12.16)

最佳实践

引入本插件,配置测试模式test=false,初次执行imgCompressTask后,查看log,会打印类似日志:

压缩日志

通过日志可得知被压缩图片为Succeed,跳过图片为Skipped,图片压缩前后的大小比较。图片跳过的原因为图片已充分压缩,无需再压缩执行task后会在project目录下生成image-compressed-info.json文件,记录了已压缩的图片信息

通过Android studio自带的版本控制对比压缩前后图片是否失真,将失真图片(一般很少)加入白名单中,同时revert恢复原图

将image-compressed-info.json文件加入到版本控制,提交修改后的图片及json文件

在后续的版本开发中,团队中的任何人在开发过程中加入任何图片,或者等版本提测后,执行一次task即可压缩新版本引入的图片,旧版本的图片保持不变,也不会出现团队成员重复压缩的情况。

问题解答

Q1:如果在后续版本迭代过程中,已压缩的图片替换成新的图片,会不会忘记压缩了?答:不会.插件本身会通过MD5进行校验,而不是图片命名进行校验,故新图片也会执行压缩的Q2:支持的图片格式有哪些?答:支持png,jpg格式,webp暂时不支持Q3:对于组件化项目存在多个module,是否会扫描所有的module?答:会全部扫描,只要是application类型或者Android library类型都会被扫描到(实测并不是全部扫描)

项目地址

https://gitee.com/Li_Shuaihua/ImgCompressPlugin/#/Li_Shuaihua/ImgCompressPlugin/blob/master/README-zh-rCN.md

以上就是AndroidStudio图片压缩工具ImgCompressPlugin使用实例的详细内容,更多关于AndroidStudio图片压缩的资料请关注脚本之家其它相关文章!

相关文章

  • Android zip4j压缩、解压、加解密的示例代码

    Android zip4j压缩、解压、加解密的示例代码

    本篇文章主要介绍了Android zip4j压缩、解压、加解密的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • Android刘海屏、水滴屏全面屏适配小结

    Android刘海屏、水滴屏全面屏适配小结

    这篇文章主要介绍了Android刘海屏、水滴屏全面屏适配小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • Android中自定义Window Title样式实例

    Android中自定义Window Title样式实例

    这篇文章主要介绍了Android中自定义Window Title样式实例,本文给出效果预览和实现方法,需要的朋友可以参考下
    2015-01-01
  • Android实现自定义滑动刻度尺方法示例

    Android实现自定义滑动刻度尺方法示例

    这篇文章主要给大家介绍了关于Android实现自定义滑动刻度尺的相关资料,文中通过示例代码介绍的非常详细,对各位Android开发者们具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • android控件之WebView控件缩小

    android控件之WebView控件缩小

    发现这个控件挺好用,能自已控制进度条,而且这个控件的功能非常壮大,先上个简单的
    2013-05-05
  • Android中可以作为Log开关的一些操作及安全性详解

    Android中可以作为Log开关的一些操作及安全性详解

    Android的调试好伙伴Log在调试时非常有用,基本可以看Log而无需单点调试,尤其对实时大数据量的设备调试尤其有效,下面这篇文章就来给大家详细介绍关于Android中可以作为Log开关的一些操作及安全性的相关资料,需要的朋友可以参考下。
    2017-12-12
  • Android Jetpack组件中LiveData的优劣

    Android Jetpack组件中LiveData的优劣

    LiveData是Jetpack组件的一部分,更多的时候是搭配ViewModel来使用,相对于Observable,LiveData的最大优势是其具有生命感知的,换句话说,LiveData可以保证只有在组件( Activity、Fragment、Service)处于活动生命周期状态的时候才会更新数据
    2023-04-04
  • Android仿微信页面底部导航效果代码实现

    Android仿微信页面底部导航效果代码实现

    本文给大家分享一段代码有关android仿微信页面底部导航效果代码实现的思路,非常不错,感兴趣的朋友一起看看吧
    2016-09-09
  • Android 开发使用PopupWindow实现弹出警告框的复用类示例

    Android 开发使用PopupWindow实现弹出警告框的复用类示例

    这篇文章主要介绍了Android 开发使用PopupWindow实现弹出警告框的复用类,结合实例形式分析了Android基于PopupWindow弹出警告框的复用类具体布局与功能实现技巧,需要的朋友可以参考下
    2020-05-05
  • android电源信息查看(电量、温度、电压)实例代码

    android电源信息查看(电量、温度、电压)实例代码

    这篇文章主要介绍了android电源信息查看方法,以实例形式较为详细的分析了Android实现电源电量、电压、温度等信息查看的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10

最新评论