美文网首页iOS
iOS安装包瘦身

iOS安装包瘦身

作者: 旅途的喵 | 来源:发表于2019-06-15 18:35 被阅读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中读取,若失败,则从沙盒中读取,若依然失败,则将该图片当作一个网络图片进行请求,确保图片能被展示。

编译选项优化

  • LTO,即Link Time Optimization。
    苹果在2016年的WWDC What’s new in LLVM中详细介绍了这一功能。LTO能带来的优化有:
    (1)将一些函数內联化
    (2)去除了一些无用代码
    (3)对程序有全局的优化作用
    在build setting中开启Link-Time Optimization为Incremental,经测试可缩减安装包大小500KB左右。
  • Strip Link Product设成YES
  • Make Strings Read-Only设为YES
  • 去掉异常支持,Enable C++ Exceptions和Enable Objective-C Exceptions设为NO,并且Other C Flags添加-fno-exceptions

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

可执行文件就是 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

相关文章

  • iOS瘦身各种方案

    iOS瘦身之删除无用的mach-O文件 iOS微信安装包瘦身 基于clang插件的一种iOS包大小瘦身方案 以往C...

  • 安装包瘦身

    mark:iOS APP安装包瘦身实践 清理项目中不再使用的图片资源 当我们谈论iOS瘦身的时候,我们到底在谈论些...

  • iOS 安装包瘦身

    iOS 安装包瘦身 一. 安装包组成 谈到 App 瘦身,最直接的想法莫过于分析一个安装包内部结构,了解其每一部分...

  • iOS包瘦身其实就那么简单几步

    篇文章继续为大家讲解下iOS安装包瘦身思路。 瘦身指导原则 常规瘦身方案 压缩资源 删除无用/重复资源 删除无用代...

  • iOS安装包瘦身方案探索和实践

    安装包过大,不利于市场人员做推广,最近做了 iOS 安装包瘦身的技术研究和实践。iOS APP经过编译,打包文件中...

  • 23- iOS项目/APP瘦身—OpenShare从三方登录,分

    iOS项目安装包瘦身—OpenShare从三方登录,分享,支付开始 前言 系统瘦身是老生常谈的问题,以笔者自己公司...

  • 真题

    1、iOS瘦身:代码瘦身、资源优化。(安装包体积优化,图片资源优化的策略)(怎么删除无用的图片?怎么压缩图片?)2...

  • iOS 安装包瘦身

    1, 查找无效的图片资源 1,使用脚本http://www.itboth.com/d/fIrAB3aMZFFf/i...

  • iOS安装包瘦身

    最近打包应用时候发现个问题,同样的代码两个应用竟然打出来安装包大小不一样,一个拼车网26.4Mb, 另一个顺风车无...

  • iOS 安装包瘦身

    前言 当一个项目比较大的时候,就需要考虑安装包瘦身。因为Apple store上传有个150M的上限,所以瘦身安装...

网友评论

    本文标题:iOS安装包瘦身

    本文链接:https://www.haomeiwen.com/subject/pgabfctx.html