删除无用图片
- 主要是使用一个开源的 Mac App LSUnusedResources 进行冗余图片的排查;
Snip20210119_30.png
- 根据工具搜索出来的结果,然后再在工程中进行检测确定目标图片确实没有使用再进行删除操作;
图片压缩
- 提供了一个 图片压缩 工具 此网站是专门做图片压缩的;
删除无用文件类
-
第一步:工程所有文件名称与文件大小的预览
App工程在编译完成之后会生成
LinkMap文件
,我们可以通过LinkMap文件来获得所有的代码类和方法的信息,获取 LinkMap文件 可以通过配置工程 将Build Setting
里面的Write Link Map File
设置为YES
,然后指定Path to Link Map File 的路径
就可以得到每次编译后的 LinkMap 文件了;-
LinkMap文件内容主要分成三个部分:
- Object File:包含了代码工程的所有文件;
- Section:描述了代码段在生成的 Mach-O 里的偏移位置和大小;
- Symbols:会列出每个方法、类、Block,以及它们的大小;
工程配置如下所示:
Snip20210119_32.png
- 编译生成的LinkMap文件路径其父文件Intermediates.noindex与.app文件的Products文件同级;
Snip20210119_33.png
- 使用 LinkMap分析工具 得出每个类或者库所占用的空间大小(代码段+数据段),方便开发者快速定位需要优化的类或静态库;
Snip20210119_34.png
-
第二步:搜索出工程中所有未使用的类文件,并清除
- 使用工具:CATClearProjectTool-master
Snip20210119_35.png
删除无用方法
- 基于Mach-O的分析,使用
otool工具
获取相关数据数据;- 首先获取所有方法;
- 其次获取被调用的所有方法;
- 根据前面两步的结果
取差值
得到的就是未被调用的方法
;
- AppCode的使用
- 使用AppCode开发工具,对App工程进行Inspect Code即静态代码检查,可以检索出
没有使用的类文件
,没有使用的方法
,确认后进行删除;
- 使用AppCode开发工具,对App工程进行Inspect Code即静态代码检查,可以检索出
LinkMap项目实战
- 新建一个Test工程如下所示:
Snip20210120_37.png
- 工程经过编译之后,在目标路径下就会生成LinkMap文件;