iOS性能优化03 -- 包大小优化

删除无用图片

  • 主要是使用一个开源的 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
Snip20210119_35.png

删除无用方法

  • 基于Mach-O的分析,使用otool工具获取相关数据数据;
    • 首先获取所有方法;
    • 其次获取被调用的所有方法;
    • 根据前面两步的结果 取差值 得到的就是未被调用的方法
  • AppCode的使用
    • 使用AppCode开发工具,对App工程进行Inspect Code即静态代码检查,可以检索出没有使用的类文件没有使用的方法,确认后进行删除;

LinkMap项目实战

  • 新建一个Test工程如下所示:
Snip20210120_37.png
  • 工程经过编译之后,在目标路径下就会生成LinkMap文件;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容