结论3: 对于我找的这几个png图片,ImageOptim的优化没有起到作用 。
在我们项目中也对所有资源图片使用ImageOptim进行了优化,20多MB的资源最后优化掉1MB左右,这里怀疑ImageOptim对PNG的优化能力一般 。而且如果能优化的PNG资源,系统默认可以进行一些优化 。
2.文档资源
从上面来看,文档有一定的压缩比,大概40%,也就是如果工程里有40MB的文档,体验到压缩包里大概是40*0.6=24MB 。
3.二进制安装包
二进制代码的压缩率是最高的 。
上面都是研究不同的资源对最后安装包大小的影响情况,现在有了一些理论依据,我们就可以开始对安装包进行优化工作了 。
实践 所以先从图片开始优化吧:
1.如何优化图片:
* 使用一些工具来检测unused 文件 。比较推荐的是github上的一份开源代码:
https://github.com/tinymind/LSUnusedResource 编译运行看到的页面是这样的:
指定搜索路径,第二行(EXClude)指定哪些文件夹路径不被扫描 。
然后这些资源可以清除掉了 。但是存在着图片被误删除的可能性,譬如代码中使用图片的方式是:[UIImage imageNamed:[NSString stringWithFormat:”icon_%d.png”,index]]; 这种情况下,图片可能被误删,所以删除的时候不妨10张一组的进行,用眼睛过滤一遍 。
* 删除完图片,是否还可以对已有的图片做优化呢 。
现在网上有非常多的关于ImageOptim对资源图片进行无损压缩的方式,在文章开头部分我们也对ImageOptim的优化能力进行了一些验证,通过上面的实验,我觉得结论不能确定,但值得一试 。
【把电脑软件压缩成安装包的步骤 压缩安装包怎么安装】2.文档资源的优化
文档资源主要是排查:
- 是否有不必要的文档资源,如果过期的旧版本所需要的文档资源 清理即可 。优化文档资源大小,主要是优化精简文档内容 。
二进制包是由各种代码文件,静态库 动态库 经过编译后生成的可执行文件 。以头条二进制包125MB为例,他是如何组成的?
上图可以看到armv7 占可执行文件的58MB 。arm64占可执行文件的66MB 。加起来=125MB 。进一步分析
通过右侧的pfile偏移可以大概算出每个段的大小,但不直观,我们可以通过开启一些编译选项,生成可执行文件结构,然后借助一些工具生成更加直观的
