专栏名称: 鸿洋
你好,欢迎关注鸿洋的公众号,每天为您推送高质量文章,让你每天都能涨知识。点击历史消息,查看所有已推送的文章,喜欢可以置顶本公众号。此外,本公众号支持投稿,如果你有原创的文章,希望通过本公众号发布,欢迎投稿。
今天看啥  ›  专栏  ›  鸿洋

包体积优化:Android编译期PNG自动化转换WEBP

鸿洋  · 公众号  · android  · 2024-08-01 08:35
    

主要观点总结

本文介绍了在打包前对App进行图片全量替换的过程,通过使用Google开源工具cwebp进行图片转换,并通过白名单方式规范图片尺寸和插件开关。文章还讨论了计算压缩前后图片大小以及压缩耗时时间的方法。

关键观点总结

关键观点1: 引言

提到App体积占用问题,引出使用cwebp工具进行图片转换的想法。

关键观点2: 编写插件前的思考

解决了如何获取所有的res资源、自动化转换工具的执行时机、如何检查大图片并配置图片大小及自动化开启图片转换开关等问题。

关键观点3: 图片格式转换开发流程

详细介绍了从新建Gradle Plugin工程到实现自定义属性图片转换器开关配置、图片最大体积配置、图片添加白名单配置的具体步骤。

关键观点4: Convert2WebpTask任务执行

包括检查tools路径下是否有webp工具、配置开关、获取所有Android资源文件、过滤不合规的图片文件、检查大图并找出图片引用、处理图片压缩任务、计算压缩前后图片大小及压缩耗时时间等内容。

关键观点5: 总结

总结了文章的主要内容,并对公司应用瘦身和Gradle Plugin知识的学习有所帮助。同时推荐了作者的网站,包括知识体系、工具等。


文章预览

本文作者: 小木箱 ,原文发布于: 小木箱成长营 。 1 前言 大家都知道 png 是比较占用App体积的,有没有工具可以在打包前(比如 assembleDebug、assembleRelease)自动去转化所有的 png 图片,包括第三方依赖库里面的呢?之前不经意间发现有一个神器 cwebp 转化工具 ,是不是可以借鉴这种工具自己写个Plugin完成图片转换,同时支持检查大图片,图片大小可配置。话不多说,说干就干~ https://developers.google.com/speed/webp/docs/cwebp 编写插件前,需要思考几个业务痛点: • 怎么拿到所有的 res 资源呢? • 自动化转换工具Task 的执行时机点? • 如何检查大图片,并配置图片大小,自动化开启图片转换开关? 鉴于问题1,我们可以参考 McImage , 其实也很简单,就是一个 Gradle API,看链接文档的文档即可。 https://github.com/smallSohoSolo/McImage 鉴于问题2,该 Task 的执行时机其实是依赖于 MergeRes ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览