欢迎来到微商资讯网

图片压缩的终极解决方案,让你的包大小优化无忧

编辑:青鸾传媒      来源:微商网      资源   代码   压缩   文件   优化

2023-09-24 14:00:20 

微商网消息:

减肥计划

相信大家都会遇到,随着项目需求的变化,项目中的代码资源文件都会增长。 很多时候,我们不会轻易删除某些代码或者资源文件。 但这样带来的代价就是封装的尺寸越来越大。

当包大小超过200MB时,就会引起数据部门的注意。 数据部门分析,新增用户减少可能是应用商店包大小超限、用户流量无法下载造成的。 所以这个时候做包大小优化意味着我们会失去很多新用户,同时也会增加我们的新用户成本。 因此,问题发生后无法进行包大小优化。 应该及时完成。 现在应该做。 我们也应该把200MB视为“红线”。

接下来,让我们看看包大小优化的选项:

首先是资源文件优化。 该解决方案最有可能对薄型封装有效。 如果你的包裹尺寸迫切需要减小,不妨先尝试一下这个。 对于资源文件优化,可以从图片资源压缩、无用资源检查、资源文件上传入手,或者使用官方APP。

其次,还有代码文件的优化。 代码文件优化投入的时间可能比资源文件优化要长很多,而且效果也不是那么明显。 然而,代码文件优化可以检查很多无用的代码,删除很多不必要的文件,清理项目结构,使项目可持续维护。

资源文件优化

相对而言,资源优化耗时最快,效果最好。 我们只需要做平时的资源压缩处理,定期清理无用资源,合理分配资源文件,那么包大小就不会发生变化。 太大。

从习马会谈谈两岸统一方案_养森瘦瘦包瘦身原理_

图片资源压缩

其实我们可以选择很多工具来进行图像压缩。 重点是检查压缩后的图片资源是否会出现显示问题。 推荐工具:[1]、Image Press [2]。

很多公司也使用webp格式的图片进行图片资源压缩。 这种格式比png、jpg小很多,但是客户端性能会对解码webp图片产生一定的影响。 在一些较旧的型号上,性能不是很好。 因此需要做出一些权衡。 这里有转换webp和png格式的工具[3]

事实上,我认为这两种解决方案可以共存。 团队内部设定了最大资源文件。 例如,超过100KB,使用webp格式图片,小于100KB,使用压缩工具。 这样可以大大减少资源文件的大小,减小包的大小。

无用资源检查

死资源检查可以通过工具完成[4]。

删除无用图片的过程可以概括为以下步骤。

通过find命令获取App安装包中的所有资源文件,如find /Users/// -name。

养森瘦瘦包瘦身原理_从习马会谈谈两岸统一方案_

设置使用的资源类型,例如jpg、gif、png、webp。

使用正则匹配查找源代码中使用的资源名称,如 = @"@"(.+?)""。

使用find命令查找所有资源文件,然后删除代码中使用的资源文件。 其余的都是无用的资源。

对于按照规则设置的资源名称,我们需要在与所使用的资源匹配的正则表达式中添加相应的规则,例如@“%d”。

确认无用资源后,即可将其删除。 可以使用系统类提供的函数来完成这个删除操作。

需要注意的是,在使用过程中,需要检查一些资源文件后缀是否拼接,如“”、“”或“bg_1”、“bg_2”。 只需按照步骤5添加相关正则表达式即可。 检查这个资源文件。

资源文件上传

如果涉及到的资源文件还比较多,那么我们可以考虑合理的上传一些资源文件到服务器,让服务器下发到移动端。 这种方案通常需要多端制定统一的方案,以达到最大的利用率。

应用程序

苹果推出该App是为了解决用户下载App时消耗过多流量的问题,同时也节省用户iOS设备的存储空间。

应用程序会针对不同设备专门选择仅适用于当前设备的内容进行下载。 例如8只会下载2x分辨率的图片资源,8plus只会下载3x分辨率的图片资源。

App有三种模式,包括:App、、On-。

那么,如何在项目中使用App呢? 事实上,这里的大部分工作都是由 Xcode 和 App Store 为您完成的。 您只需要通过Xcode添加目录,然后添加图像即可。

代码文件优化

代码文件优化实际上可以看作是对可执行文件Mach-O的优化,其大小由代码量决定。 所以Mach-O的瘦身其实就是寻找并减少无用代码。

无用代码检查使用分析

无用的代码一般可以用简单的工具来检查,比如,当然,如果代码量太大,这个可能分析不出来。 据说一百万行代码可能难以应付。

分析方法非常简单。 只需选择“代码”->“代码”即可执行静态分析。 经过静态分析,我们可以看到代码中所有无用的代码。

虽然可以检测到许多无用的代码,但这些代码并不准确,因此需要手动确认才能安全删除。

分析 Mach-O 文件

另一种方法是分析Mach-O文件,使用该软件[5]查看Mach-O文件中的信息,然后根据Mach-O文件的 、 和 来查看所使用的类和子类。

这种查看方法并不完美,因为-C是动态语言,方法调用可以写成运行时动态调用,所以不可能收集所有调用的方法和类。 因此,我们通过这种方法找到的无用的方法和类只能作为参考,需要二次确认。

减少第三方SDK

如果项目中使用了较多的第三方库,还需要检查是否导入了相同功能的库,避免导入过多的库,造成资源过多。

有时候当一些第三方库占其体积比例很高时,你也需要考虑是否更换它们。

参考

[1]

[2]

图片压力:

[3]

[4]

[5]

本软件:

免责声明 ① 本网所刊登文章均来自网络转载;文章观点不代表本网立场,其真实性由作者或稿源方负责 ② 如果您对稿件和图片等有版权及其他争议,请及时与我们联系,我们将核实情况后进行相关删除 ③ 联系邮箱:215858170@qq.com

发表我的评论 共有条评论
    名字:
全部评论