码迷,mamicode.com
首页 > 移动开发 > 详细

iOS项目优化:可执行文件瘦身

时间:2017-04-12 18:37:05      阅读:512      评论:0      收藏:0      [点我收藏+]

标签:app   txt   重复   sources   href   方法   plist   源文件   xca   

1.删除无用资源文件

1X的图片可以全部删掉

重复的图片分两种,一种是名字一样的图片,如果你使用.xcassets来管理图片,那么Xcode的左边栏会有警告提示图片名字重复,直接按提示一一处理即可。另一种是名字不一样但是文件一样的图片,我们使用了一个Python脚本(@甘超江 大神出品)来扫描,每次编译的时候执行该脚本,如果有扫描命中则会让Xcode编译失败,此时需要人工去处理。需要注意的一点就是使用.xcassets来管理图片的时候回存在一个映射关系,通过imageNamed:方法使用的名字和图片的真实名字有可能不一样,脚本扫描的时候需要特别处理下。

未使用的图片可以通过LSUnusedResources扫描出来,不过要注意的是可能会有误伤,该工具是全匹配,一些拼接名字来使用的图片要注意手动剔除。笔者就因为误删图片被惩罚过o(╯□╰)o

一些音频、视频和多余的plist文件以及readme文件什么的目测只能肉眼扫描了,我们没用到这些资源暂时没这个问题。

2.资源压缩

首先是图片压缩,ImageOptim工具可以实现无损压缩。

另外关于图片,建议使用Apple推荐的.xcassets来管理,它会把里边的所有png格式的图片压缩成一个Assets.car文件,压缩比率比其他方式管理图片要高。不过测试发现jpg图片不会在Assets.car文件里。

另如果你有用到音频或视频资源,也可以考虑压缩。

3.H5页面远端化

如果你的H5有本地页面和资源,可以考虑全部远端化。本地资源主要是一些js、html文件和图片。

4.代码部分优化

通过appcode 打开对应的工程文件 选择 Code - > inspect Code 分析代码,去掉无用的引用及代码。

5.分析可执行文件

(下面的方式 我试过之后暂时未看懂)

使用link map
XCode开启编译选项Write Link Map File
XCode -> Project -> Build Settings -> 搜map -> 把Write Link Map File选项设为yes
在 编译后的工程文件夹可以找到 命名为 xxxlinkmapxxx.txt的文件(查找方式为,Winodw - Project - derived data - build - Intermediates -xxx.build - 对应debug或者Release文件下)分析 该txt文件,可以得到项目编译后各个模块生成的.o文件在可执行文件中的组成。

如何分析
本文采用node + js 的方式分析。 js代码地址https://gist.github.com/bang590/8f3e9704f1c2661836cd 使用方法,node js路径 xxlinkmapxxx.txt 路径 -hl 分析出来 过大的可以考虑缩减和替换。

iOS项目优化:可执行文件瘦身

标签:app   txt   重复   sources   href   方法   plist   源文件   xca   

原文地址:http://www.cnblogs.com/clumsy1006/p/6700549.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!