iOS 安装包瘦身优化

资源瘦身

1. 删除无用的资源

工具:LSUnusedResources

效果

查找到无用的图片大概有220个,总大小2M多(PS:部分是之前的图片后改成网页获取)

删掉了文件较大(100KB+)的一些图片

保留了一部分无用图片(有一部分是刷新头的自定义,但是在使用但是也搜出来了)

项目从109.9变成107.8

Tips:

我们的项目是自己组件化打成sdk造成很多图片查出来无用实际上是sdk里面使用的。

如果有userguidimg_0 这类图片应该要把_0去掉在去排查是否使用


2.图片压缩

目前常用的图片格式:jpgpnggif

几种图片格式的区别如下:

JPEG—照片的标准格式,不支持透明。

GIF—被限制在256色因此对于大块纯色和简单图像非常好。它支持透明但是会产生锯齿边缘。

PNG—.jpg和.gif的漂亮结合,具有.jpg图片的质量和.gif的透明度,而且没有锯齿。

通常使用PNG这边推荐使用webp 但是iOS本身是不支持webp的

1.webp格式的优点

webp压缩率高支持有损与无损压缩

webp 体积大幅减小,肉眼看不出差异

webp 支付alpha透明 和 24-bit颜色数,不像PNG8色彩不够出现毛边,GIf转Animated webp有损可减少64%,无损减少19%。

小于256色适合无损压缩,压缩率高,参数使用lossles -q 100

大于256色使用75%有损压缩,参数 -q 75

远大于256色使用75%以下压缩率,-q 50 -m6

2.webp格式的缺点

较png消耗2倍左右CPU和解码时间

全平台支持不够。不过在iOS上可以通过对应的iOS的webp解析库解析。

使用pod管理第三方库的同学,可以在pod文件中添加 pod 'SDWebImage/WebP'语句,更新pod库安装webp的支持库。(注:使用pod安装此库需要VPN的支持)

https://github.com/ibireme/YYImage这边也支持了webp

我自己的项目图片都是比较小的就没有在去压缩


3.删除工程中不再使用的代码

使用LinkMapParser 统计出每个.o目标文件占用的体积和每个.a静态库占用的体积


iOS 安装包瘦身优化_第1张图片
LinkMapParser

再去里面查看代码,对代码继续优化(进行中)


4.一些配置信息

主要是舍弃了armv7 (去掉直接减少了20M)

armv7 设备: iPhone3GS, iPhone4, iPhone4S

                      iPad, iPad2, iPad3(The New iPad), iPad mini

                      iPod Touch 3G, iPod Touch4

armv7用于支持4s和4,4s是2011年11月正式上线,虽然还有小部分人在使用,但是追求包体大小的完全可以舍弃了。

修改了一些配置

Optimization (ASSETCATALOG_COMPILER_OPTIMIZATION)

设置成space  (包减少了0.3M)

还有其他的一些配置信息,打包测试完毕并没有影响包的大小故不写了。

本文章是在优化安装包的时候吸取众多文章并结合实际完成的

你可能感兴趣的:(iOS 安装包瘦身优化)