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静态库占用的体积


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)

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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、删除不再使用的资源 这里的资源文件主要指图片资源。获取的实现步骤如下: 获取资源文件(find命令) 设置资源...
    无神阅读 850评论 0 4
  • 尽量减少PNG图片的大小是Android里面很重要的一条规范。相比起JPEG,PNG能够提供更加清晰无损的图片,但...
    Viking_Den阅读 472评论 0 0
  • 注明:本人原创翻译,原版为Essential Image Optimization电子书,这里将其拆分为几篇文章发...
    ProteanBear阅读 5,341评论 0 5
  • 要讲图片格式还先得从图像的基本数据结构说起。在计算机中, 图像是由一个个像素点组成,像素点就是颜色点,而颜色最简单...
    404ErrorCrash阅读 3,788评论 0 3
  • WebP(发音 weppy),是一种支持有损压缩和无损压缩的图片文件格式,派生自图像编码格式 VP8。根据 Goo...
    九都散人阅读 4,493评论 0 10