Lottie动画文件压缩

手机游戏开发者 2024-9-28 04:05:55 30 0 来自 中国
前言

项目中引入了“大量的”lottile动画文件以优化动画表现结果,轻微统计了下,共20多个,小的几十k,大的1.33M,总巨细高出8M,apk包体积急速膨胀。
1.png 办理方案

由于项目中表现动画的须要,引入了大量的Lottie动图,以优化表现结果导致包体积急速膨胀,现在可以想到的办理方案重要有如下2种:
方案1)远端方案

将lottie json文件放置在远程服务端,在须要时加载文件大概提前预加载到当地。
这个方案可以说是针对“包体积”最优的办理方案,但缺点也同样致命。优化方案会切入业务逻辑,对于已经开发好的项目须要重新举行测试评估,增加了业务逻辑Bug的风险,只得当在项目开启之初同步参与。对于此方案还须要增加对json文件“下载-管理-失败重试”等文件管理干系的业务逻辑,增加了维护调试成本。但假如干系方案一旦建立和稳固运行,还是很“香”的。同时另有文件在什么时间加载也是门学问,假如简朴化的一股脑在启动时加载,极易造成运行卡顿大概内存占用过高OOM等风险。
方案2)“当地”方案

压缩lottie json文件的巨细,缓解apk包体积急速膨胀的标题。
这个方案只能轻微缓解下apk包体积膨胀的标题,只能是个临时方案,后续发起接纳方案1)更换。


怎样压缩Lottie动画文件的巨细?

回到本文的正题,Lottie导出的动画文件简朴归类重要有两种,一种是以.zip或.lottie文件末端的文件,也大概是个文件夹(里面包罗一堆图片和一个.json文件),另一种则是单独只有一个json文件(开头截图中的那种)。
针对以.zip或.lottie文件末端的Lottie文件(素材图片独立于.json文件),压缩方案直接对这些图片素材举行压缩。可以参考我从前写的一篇文章《Android图片资源压缩记》和使用图片批量压缩工具举行处置惩罚。
PS: 猛烈发起是不改文件及厥后缀名,假如确实须要修改,则要注意要把.json文件里相应的name也同步更改,否则使用时将导致找不到文件直接报错。
针对单独只有一个.json文件的Lottie文件,我这边开发了一个脚本,用于压缩json文件,可以有效的对文件举行压缩,结果如下:

2.png
PS:差别的文件压缩率差别,取决于使用素材图片的巨细和多寡。
批处置惩罚步伐:tiny-lottie.exe

开源地址: 码云(gitee)   /chockqiu/tiny-lottie
在须要批处置惩罚的文件夹下运行如下下令,将批量处置惩罚文件夹下全部*.json文件。
Windows环境

tiny-lottie.exe -q 75 -pMac/Linux环境

python tiny-lottie.py -q 75下令行参数
usage: TinyLottie [-h] [-d directory] [-q quality] [-o] [-p]Lottie文件批处置惩罚工具, 支持使用webp图片压缩Lottie文件optional arguments:  -h, --help            show this help message and exit  -d directory, --dir directory 运行文件夹,默认当前文件夹  -q quality, --quality quality 质量百分比[0-100],Webp图片压缩率,数字越大质量越高  -o, --overwrite       是否覆盖源文件  -p, --pause           实行完是否停息窗口以便检察输出

假如本文对你有资助就点个赞支持下吧~~~
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-10-18 18:27, Processed in 0.171529 second(s), 35 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表