iOS APP瘦身之旅

编译器优化级别设置

Build Settings->Optimization Level有几个编译优化选项,release版应该选择Fastest, Smalllest,这个选项会开启那些不增加代码大小的全部优化,并让可执行文件尽可能小。

去除不必要的调试符号信息
  • Generate Debug Symbols:DEBUG和RELEASE下均设为YES(和Xcode默认一致);

  • Debug Information Level:DEBUG和RELEASE下均设为Compiler default(和Xcode默认一致);

  • Deployment Postprocessing:DEBUG下设为NO,RELEASE下设为YES,这样RELEASE模式下就可以去除符号缩减app的大小;

  • Strip Linked Product:DEBUG下设为NO,RELEASE下设为YES,用于RELEASE模式下缩减app的大小;

  • Strip Style:DEBUG和RELEASE下均设为All Symbols(和Xcode默认一致);

  • Strip Debug Symbols During Copy:DEBUG下设为NO,RELEASE下设为YES;

  • Debug Information Format:DEBUG下设为DWARF,RELEASE下设为DWARF with dSYM File,dSYM文件需要用于符号化crash log(和Xcode默认一致);

  • Generate DebugSymbols:DEBUG下设为NO,RELEASE下设为YES,用于RELEASE模式下缩减app的大小。

注意

  1. 当Generate DebugSymbols设置为YES时编译产生的.o文件会大一些,当然最终生成的可执行文件也大一些。
  2. 当Generate Debug Symbols设置为NO的时候,在Xcode中设置的断点不会中断。但是在程序中打印[NSThread callStackSymbols],依然可以看到类名和方法名
无用图片资源删除

随着版本迭代过程中存在的图片资源可以借助三方工具来解决: LSUnusedResources

直接打开运行,点击Browse…选择工程目录,再点击Search
image

注意:这里所说没有用到的图片不是真的没有用到,因为这个工具他认图片使用的方式是通过imageName:@"xxx"这个方法来识别的,为了避免误删,这个时候就把图片名字复制到xcode里面搜索一下。

图片压缩

利用三方工具ImageOptim小熊猫tinypng
在这里插入图片描述
在这里插入图片描述
ImageOptim Mac版是一款非常简单的图片大小优化工具。只要拖动图片到软件界面就可以自动把图片的大小进行优化。ImageOptimMac版对于开发人员和设计人员一定还有用处,如文件的EXIF标签和颜色配置文件等,达到优化减小占用磁盘空间。

图片文件中往往包含一些注释、颜色 Profile 等多余信息,移除后图像质量不变,体积更小载入更快。ImageOptim 以此方式压缩图片,先分析图片,找到最优压缩参数,去除无关信息减小体积,实行无损压缩。

Tinypng压缩的图片肉眼感官是很难察觉到显著的画质降低,能够对png和jpg格式的图片进行压缩,压缩后的图片质量也是接近无损的,但也并不是完全无损的。它的原理是将PNG24位真彩色图片 压缩成 PNG8位索引图片,从而做到基本不损失画质和观感。
在这里插入图片描述
在这里插入图片描述

三方静态库瘦身

项目中多少都会引入一些第三方静态库,比如项目中引入了第三方分享库,通过lipo工具可以查看支持的指令集:

lipo -info xxx.a         
Architectures in the fat file: xxx.a are: armv7 armv7s i386 x86_64 arm64 

i386,x86_64,模拟器的指令集,去掉之后插件包的大小由原来的14.3M变成了5.9M,armv7可以兼容armv7s,armv7s也可以删了,只保留armv7和arm64

lipo xxx.a -thin armv7 -output xxx-armv7.a
lipo xxx.a -thin arm64 -output xxx-arm64.a
lipo create xxx-armv7.a xxx-arm64.a -output xxx-device.a
代码层面优化

主要包括删除不用的类,不用的函数,重复的代码等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值