iOS App优化1---减少包体积

  • 如今的App相比几年前包的大小明显发生了变化,需求的不断变更迭代,甚至有些产品为了‘迎合’市场,一个基本页面一年到头改得数不胜数,让人的感觉像是,我是产品我说了说,你必须改,不让我怎么有存在感。好了,如果都这样发展下去,我们的App就算是顶级大神来造,总有一天也会受到App Store的限制,那个时候我们的产品就乖乖的静下来反思。App Store 规定了安装包大小超过 150M 的App 不能使用 OTA下载,你只能坐在有WiFi的地方静静的下了,这样一来,相比会流失一部分的用户。说一百道一千,万一我们的App达到这样的高潮了该肿么办勒?只有一个办法,那就‘减肥’,减少包的体积。
  • 减少包的体积,那可不是一件容易的事,特别是一些非常‘古老又年代已久’的项目,这种App是最棘手的。我们先一点一点来说,从以下几个方面。
1、最简单粗暴的就是减少一些垃圾文件,图片资源等。

项目迭代久了,其中多多少少会有一些没用的图片资源,当然了图片那么多不可能一张一张去排查,这里我们借助一个三方工具LSUnusedResources,打开这个工具,如图

0C2540F9-EC0A-4AFC-804C-DE44E7A27815.png

你可以看到上面那样,点击Browse去选择你的项目,然后搜索一下就OK了,但是你不要绝对相信一个不是自己写的工具,如果你加载图片不是通过imageWithName:这个的方式,他是无法查找的,如果你的图片名采用拼接的方式,那么他也是无法确认的,所以你要删除一张图片的时候,最好是确认一下。

2、图片压缩

美工妹妹给图的时候,叫她尽量的给png, 尽可能做出来的图不要太大,我见过很多UI,一个控件上面的小图标做出来几百KB, 我在想这是有多么不专业啊,人家几十KB,你咋给我的这么大勒。当然了有时候UI没有考虑那么多,这个时候就考验我们专业的时候了,自己压。你可以采取有损和无损看你们的要求,你也可以把图片转成WebP格式的,这个是谷歌推出来的,可以自行谷歌了解一下,它压缩率很高,比直接有损和无损强几倍。有一个腾讯开发的iSparta,可以把图片转成WebP,怎么加载WebP,SD怎么支持WebP,大家可以自行查阅。

3、删除注释代码和无用的类

我们写代码很多的逻辑是最初写好后,由于某种原因就注释在那,这一注释不要紧,最后连谁写的都忘了,留着还有啥意义,别以为后面的迭代会需要,你永远都猜不透一个产品接下来给你抛什么样的需求,因为连他们自己也不知道接下来要干嘛。所以你就大大方方的删除那些不要的注释代码,大不了再撸一遍咯。当然注释的代码只会增加预编译的速度,不会被编译到可执行文件中。
那不要的类咋办,如果项目很大很老又是接手了多手项目,那怎么去排查类文件空置着。我们也可以借助其他工具,你可以用 AppCode这个IDE。工具条Code-->Inspect Code...。是的,不要以为只有Xcode才能写OC, 这个工具可以把一些没有使用到了类、属性啥的都可以检测出来,还是那句话,不要一味地相信他人,要二次确认是否可删。

  • 这个工具不能检测运行时都干了嘛,只能做静态分析,有可能某个哥们在动态运行时替换了一个你以为没有用的类,你一删就炸了。
  • performSelector 方式调用的方法也检查不出来
  • 子类调用了父类的方法,那这个父类就被检测出来无用
  • 通过NSClassFromString等运行时方式也是无法检测准确性
    ······
    当然除了这个工具还有其他很多方式,比如可以通过LinkMap 来查找 Mach-O 文件里面的无用代码,这部分大家可以去了解。
    所以任何人和任何工具都不要绝对的相信,毕竟科学是严谨的。
4、减少三方库的使用

用三方库的时候尽量不要全部导入进来,像AFN,SD他们都由几部分组成的,如果你只是请求个网络,下载个图,可以把库里面的分类去掉,如果是Cocoapods管理那更简单,直接pod你要的那部分就行。这些功能强大的三方库拓展性是很强的,支持的功能也多,但是有大部分是我们项目不用的,所以该删就删。

以上只是简单粗略的讲讲日常开发过程的优化,更细致更专业还待大家去挖掘。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,616评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,020评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,078评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,040评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,154评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,265评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,298评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,072评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,491评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,795评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,970评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,654评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,272评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,985评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,815评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,852评论 2 351