iOS瘦身实践

资源级的瘦身

  • 使用LSUnusedResources删除无用图片。注意只是简单的删除。需要自己在此确认。
  • 使用WebP代替PNG, 转换及压缩工具isparta
  • WebP的优点:
    1. Webp 压缩率⾼,⽀持有损与⽆损压缩
    2. WebP 体积⼤幅减少,⾁眼看不出差异
      缺点:Webp更加消耗性能,较PNG消耗2倍左右的CPU和解码时间

代码级的瘦身-linkmap

首先需要了解linkmap是什么?LinkMap文件是Xcode产生可执行文件的同时生成的链接信息,用来描述可执行文件的构造成分,包括代码段(__TEXT)和数据段(__DATA)的分布情况。比如说可执行文件的构成是怎样,里面的内容都是些什么,

  • 默认xcode在debug下是不生成linkmap文件的,所以我们首先要设置在debug模式下开启生成linkmap,在build setting中搜索link map,设置write link map file为YES,再次运行可以可以在 path to link map file中找到对应生成的text文件。以为自己的地址举例:/Users/用户名/Library/Developer/Xcode/DerivedData/项目名称-hhqqxhkyzdufzbfyuefaytyuxebf/Build/Intermediates.noindex/项目名称.build/Debug-iphoneos/项目名称.build/项目名称-LinkMap-normal-arm64.txt其中项目名称后面的随机字符串可能不一致。

  • 分析生成的link map中的执行文件大小。WMLinkMapAnalyzer。可以查看静态库是否过大。如果过大可以参考lipo -info libWeChatSDK.a Architectures in the fat file: libWeChatSDK.a are: armv7 armv7s i386 x86_64 arm64
    i386,x86_64,是模拟器的指令集,如果不考虑模拟器运行,可以删除。

使用下面脚本或者使用appcode的code inspect 来检查未使用的类和方法
// 查找无用的类脚本

# 使用方法:python py文件 Xcode工程文件目录

# -*- coding:UTF-8 -*-
import sys
import os
import re

if len(sys.argv) == 1:
    print '请在.py文件后面输入工程路径' 
    sys.exit()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FY_Chao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值