电商APP的资源包体积优化

两鲜APP从2015年立项到现在,累计快5年,中间我离开了近2年。每个月至少一个版本的节奏,中间开发了很多功能,又舍弃了很多功能。项目中oc和swift混合,融合了很多不用的功能。一个看似简单的电商应用,实际上已经是中等规模的电商程序。

网上有很多经验分享,资料比较零散,我通过两鲜的实践,看到比较明显的效果。这里把实践过程记录下,具体的文章和原理大家可以再根据关键词检索。
刚回来的时候,apple store 安装包96M,稍微做了一些工作,现在已经到了45M。

经历3次安装包优化迭代,安装包从96M先降到75M,再到50M,再到45M。和大家分享下我先后的操作和一些实践工具。

第一个阶段:
重点移除无用的三方库资源
。GPUImage
。Umeng
。Talkingdata
。Datatist
。明显过大的欢迎页轮播图(开发没有做好全屏幕适配,采用粗暴的多组图片)

这些库都是在项目需要的时候添加的,但是后期废弃后开发不够不责任或者不敢动,就一直留在工程中。
简单粗暴的实现,安装包直接压缩近20M。

第二个阶段:
重点处理资源文件
1.linkMap分析app包资源的静态.o,给app做体检,清楚包资源文件的大小排序,重点关注明显过大的资源。
2.通过LSUnusedResources 检索项目中未用到的图片资源,经年累月的项目肯定存在很多无用资源。不仅仅可以检索到图片,还有.h/.m/.swift 文件。
3.项目中的png/jpg图片资源,通过无损压缩,部分图片压缩率高达90%以上。推荐以下工具
。PNGShrink // png、jpg图片无损压缩,本地压缩可以批量,但是无法保持原来的文件结构
。https://tinypng.com/ //在线压缩有数量限制
4.激进点,可以移除2x资源,只保留3x资源。我没有进行这个操作
5.appCode + inspect code ,无用代码片段和import检查。appCode检查比较慢,不过功能强大,检查结果出来后最好手动操作。不要轻易批量操作,否则你会哭的。

这个阶段处理效果最为明显,我们的项目中图片资源近38M,压缩处理后直接降到18M。用户下载安装包的时间变短了很多。

第三个阶段:
1.APP代码检查, 推荐appCode + inspect code,更精细处理。移除注释代码、无用方法
2.移除有import但无实现的类
3.升级xcode支持编译版本,我们从iOS8.0支持升级到iOS9.0
4.还有编译选项设置,我暂时没有调整。一个是时间再是不确定对线上用户有多少影响。

你可能感兴趣的:(电商APP的资源包体积优化)