由于包体积优化是一个持续的过程,但是人为手动调整图片等过于耗时,所以整和了下shell 指令,并提供一次分享,方便调整项目内的图片文件。
方案会是一个IOS/Android都能使用的方案,只要在当前文件夹下执行对应的脚本就可以。
技术选型问题
- PNG图片压缩 首先想的的是tinypng,但是由于是一个网站,同时调用对方接口需要收费,所以没有选择。之后调研到PngQuant,github.com/kornelski/p…,这个仓库可以由命令行执行,同时压缩比例大概也是在70%左右,同时配合python的情况下可以对我们的项目做很好的支持效果。具体内容细节可以参考juejin.im/entry/68449…
- png图片直接转化webP,和上面的原理机制是一样的,我们调用谷歌官方的cwebp指令,帮我们去对图片进行格式转化,新建同名文件夹存储,然后等使用方确定之后覆盖删除旧的png图片,当前应该只有安卓端会先使用,毕竟适配的较好。
- png图片转化jpg,如果一张图片没有Alpha通道的情况下,jpg图片会比png图片小很多,所以我们使用了python原生PIL,去把一张png图片更换成jpg。
- 同时提供最简单的测试工具给测试,让他们可以快速完成app的monkey测试。写了个简单的shell
所有的图片压缩逻辑都会判断新老大小是否发生变化 如果压缩之后质量没发生变化则不会更换资源
Cli如何使用
- 必要开发环境 Mac 同时安装了homebrew 没有安装的同学 看下这个www.jianshu.com/p/7071c1419…
- 首先先将github.com/Leifzhang/T… 仓库clone 到本地。
- 然后命令行跳转到对应的文件夹下面,执行下面的命令
chomd 777 install.sh
./install.sh
- 然后到你需要操作的文件下面,执行
- 然后在操作界面下选择你需要操作的指令
使用效果
通过反编译了下项目将工程还原 然后对单独项目进行整体压缩测试,然后分别将png压缩以及webp替换的压缩大小分享在下面。
- 使用pngquant 压缩所有图片之后效果大概是整个项目能压缩6.2m左右
- 使用webp压缩整个项目