iOS

iOS安装包瘦身

2019-06-15  本文已影响0人  旅途的喵

资源优化

删除无用图片

删除无用图片的过程,可以概括为下面这 6 大步。

  1. 通过 find 命令获取 App 安装包中的所有资源文件,比如find > /Users/daiming/Project/-name。
  2. 设置用到的资源的类型,比如 jpg、gif、png、webp。
  3. 使用正则匹配在源码中找出使用到的资源名,比如 pattern = @"@"(.+?)""。
  4. 使用 find 命令找到的所有资源文件,再去掉代码中使用到的资源文件,剩下的就是无用资源了。
  5. 对于按照规则设置的资源名,我们需要在匹配使用资源的正则表达式里添加相应的规则,比如 @“image_%d”。
  6. 确认无用资源后,就可以对这些无用资源执行删除操作了
    推荐工具
    LSUnusedResources LSUnusedResources.gif

资源压缩

就是在不损失图片质量的前提下尽可能地作压缩。目前比较好的压缩,将图片转成 WebP。WebP 是 Google 公司的一个开源项目
例如无损压缩模式

cwebp -lossless original.png -o new.webp

WebP 在 CPU 消耗和解码时间上会比 PNG 高两倍所以还需要在性能和体积做取舍

资源文件云端下载

云端下载的策略为:
(1)在若干时机尝试下载zip图片包,对zip包进行版本判断,若云端有更新版本,则根据屏幕是3x还是2x,下载对应的zip包,解压存入沙盒中
(2)在读取图片时,首先从bundle中读取,若失败,则从沙盒中读取,若依然失败,则将该图片当作一个网络图片进行请求,确保图片能被展示。

编译选项优化

可执行文件优化(代码瘦身)

可执行文件就是 Mach-O 文件,其大小是由代码量决定的。通常情况对可执行文件进行瘦身,就是找到并删除无用代码的过程
首先,找出方法和类的全集;
然后,找到使用过的方法和类;
接下来,取二者的差集得到无用代码;
最后,由人工确认无用代码可删除后,进行删除即可。
我们可以通过分析 LinkMap 来获得所有的代码类和方法的类和方法的信息
通过 AppCode 找出无用代码

LinkMap .png

参考文章
https://www.jianshu.com/p/a3151dfebc9c
https://time.geekbang.org/column/article/88573
https://mp.weixin.qq.com/s?__biz=MzAwNDY1ODY2OQ==&mid=207986417&idx=1&sn=77ea7d8e4f8ab7b59111e78c86ccfe66&3rd=MzA3MDU4NTYzMw==&scene=6#rd

上一篇下一篇

猜你喜欢

热点阅读