iOS瘦身之路(上上)

来源:互联网 发布:伊莉维尔淘宝店 编辑:程序博客网 时间:2024/04/29 00:34

转自:http://blog.csdn.net/lizitao/article/details/52839599

苹果对于App的包体大小是有限制的,具体可以参看下面的文档:


Submitting the App to App Review

像美团点评这种app体量,安装包都已经100多M,对于瘦身,是有较强的意愿的。尤其是最近,平台给了各个业务分配了对应的包体基准值,超过这个值代码就不准合入。当然瘦身的方法有很多,在进行瘦身时,也要考虑每个方案的性价比的问题。经过不断的积累,整理了一些App常见的减肥方法。

1、清理废弃的资源文件与代码

这个就不用多说了,随着“历史的沉淀”,会有大量的废弃业务的代码以及资源文件,它的清理也是充满了坑坑洼洼。

2、去重

去重包括很多方面,包括重复代码类、重复资源文件,对于点评美团这种业务繁多的App,工程项目中图片数量达到几千张,业务部门之间互相copy图片的现象是很常见的,之前写过一个工具,可以脚本扫描工程中的重复图片和重复代码,图片遍历对比每个图片的MD5值;代码文件比较复杂,写了一个算法去查找相似度为100%的代码文件;

3、采取.xcassets方式管理图片

.xcassets的好处有很多,其中一个就是App Slicing的功能,App Slicing大致就是App Store会根据不同的设备准备不同的安装包(App Variant),每个安装包(App Variant)都只有相应尺寸的图片,比如 iPhone 6 去下载时,只会下载到 @2x 的图片的安装包(App Variant)。

参考:http://www.jianshu.com/p/1034748e3fef

4、代码的复用

代码复用涉及的范围比较广,我们在具体做的时候,是针对我们自己的业务建立一个独立的pod,这个pod专门用来存放我们业务中的工具类、通用控件等通用逻辑,这个pod建立之后,我们经过不断的重构与整理,去除了不少代码。

5、纯代码布局以及去xib

刚加入点评时,就已经开始禁止使用xib进行布局了,xib布局在累积到一定程度会比纯代码布局有明显的空间劣势。

6、按需加载

苹果的按需加载给我们提供了一种思路,常用的主要功能用到的Local处理,不常用的非必需的可以进行Remote处理;

详细参考:http://benbeng.leanote.com/post/On-Demand-Resources-Guide

7、图片的统一

将图片统一为png,这也是苹果推荐的。如果有条件,可以考虑webp格式。

8、背景图清理

很多业务代码的在做背景效果时,喜欢用图片,例如UIButton的背景,其实我们可以用简单的编码就可以替代。

9、动态库

动态库可以大幅降低可执行文件包大小。

参考文档:

http://blog.cnbang.net/tech/2544/

http://benbeng.leanote.com/post/On-Demand-Resources-Guide

原创粉丝点击