千家信息网

Android图片资源瘦身的方法是什么

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍"Android图片资源瘦身的方法是什么",在日常操作中,相信很多人在Android图片资源瘦身的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答
千家信息网最后更新 2026年11月01日Android图片资源瘦身的方法是什么

这篇文章主要介绍"Android图片资源瘦身的方法是什么",在日常操作中,相信很多人在Android图片资源瘦身的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Android图片资源瘦身的方法是什么"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一.选择压缩工具

首先是选择压缩工具的问题,在这之前先看下系统是如何做的。android的aapt在编译阶段其实是会对png图片进行压缩的,用的则是libpng和zlib,这个可以用aapt的源码佐证:

  • 用libpng对图片进行预处理

  • 用zlib对预处理后的图片进行压缩生成新图片

可以看到aapt对图片的压缩等级使用了最高等级9,期间系统也会做颜色表转换,这样可以减少很大一部分图片的体积,但系统的压缩方案是不是完美无缺呢?目前常用的无损压缩大概有Pngrewrite、pngcrush、optipng、advancecom、pngout,参考了很多文章,得出的结果是pngout仍然是王者,毕竟是Ken神童(据说Doom and Quake的作者John都尊敬他,做游戏的肯定都知道John )写的。另外由于pngout可以很好的支持命令行,方便放到编译脚本中自动化,所以暂时选它好了。

二.实践案例

压缩工具选好了,第二步便是实验了。拿手Q为例,直接对手Q中的所有png压一遍,Pngout的速度确实一般,对4千张图片全部处理一遍大概需要13分钟,不过这个过程只需要在本地做一遍,所以可以忍受,但处理完的结果不理想,因为没什么效果,减小量为十几KB~~ 仔细分析得知这里面犯浑作怪的竟然是aapt,由于先调pngout再调aapt会导致压缩效果覆盖。那么可不可以关闭aapt呢? 查看aapt的参数,关于压缩相关的只有下面这两个参数:

其中crunch便是预处理资源了,但是没有关闭crunch的参数。。。。有点技穷了对不对。只能去源码中找灵感了,看aapt的源码:

google把它隐藏了,没有打印出来给用户~打开这个参数,在手Q中资源打包脚本处分别加入--no-crunch参数,便可以把系统压缩给屏蔽掉了,样式如下:

至于为什么设置了这个参数就可以屏蔽呢,其实源码调用过程如下:

第1步 (Main.cpp)

第2步 (Command.cpp)

第3步 (Resource.cpp)

终结: (Resource.cpp)

可是实验还没有结束,因为这样屏蔽掉会出现奇葩的景象,得到的手Q画面效果如下:

为什么呢?仔细分析发现九宫格图片被压出问题了,aapt在处理png图片时会判断是不是九宫格图片,如果是则做特殊预处理:

do_9patch其实主要的是九宫格信息弄出来,写入到info9Patch字段,并最终写入nptc的chunk中:

到这里又回到第一步为什么我说Ken是神童了,因为Pngout可以选择chunk进行压缩,所以解决方案便是:对于九宫格图片,我们单独拎出来,先用aapt的aapt crunch进行预处理得到npTc字段,再用pngout在压缩时调用"knptc"参数保护一下npTc块,这样便得到了正确的九宫格图片,安装包的效果图也就正常了。

到此,关于"Android图片资源瘦身的方法是什么"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

图片 参数 资源 方法 九宫 预处理 图片资源 效果 源码 系统 学习 工具 问题 处理 选择 字段 文章 方案 更多 神童 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网是第几次科技革命的成果 为想互联网科技怎么样 卓越科技(互联网 ) 安徽鑫晟辉互联网科技 苏州互联网科技贷款公司 腾讯科技 互联网女皇 壕鑫互联网络科技 互联网科技的未来发展 佩信高科技互联网 青海省互联网新科技 北京大学互联网科技怎么样 搜狐科技互联网 广西互联网科技孵化中心 朱啸虎曾投资哪些互联网科技企业 特约风豹互联网科技为什么扣费 上海乐五互联网科技有限公司 互联网时代科技型公司的机会 西安左小互联网科技有限公司 互联网科技大佬云集 瑞安市蟠桃会互联网科技有限公司 互联网科技工作委员会 北京互联网科技 艾特科技互联网 无锡溥仪互联网科技有限公司 玖二柒互联网科技公司待遇 中国互联网有什么科技含量 洛阳昕诺飞互联网科技有限公司 皮皮虾互联网科技有限公司 半导体是互联网高科技吗 江苏互联网智能科技产品出厂价
0