359
windows
iOS App 安装包瘦身指南
以下列出了安装包瘦身的无脑执行流程,其中“奇技淫巧”部分为选做题
- 资源优化
- 删除无用图片
- 使用LSUnusedResources查找无用图片
- 删除重复资源
- 压缩图片资源
- 使用ImageOptim无损压缩图片
- 使用TinyPNG有损压缩图片
- TinyPNG非常好用强烈推荐
- 使用的时候直接执行
tinypng *.png -k token
脚本即可
- 奇技淫巧
- 用LaunchScreen.storyboard替换启动图片
- 本地大图片都使用webp
- 资源按需加载,非必要资源都等到使用时再从服务端拉取
- 删除无用图片
- 编译选项优化
- Optimization Level在release状态设置为Fastest,Smallest
- Strip Debug Symbols During Copy在release状态设置为YES
- Strip Linked Product在release状态设为YES
- Make String Read-Only在release状态设为YES
- Dead Code Stripping在release状态设为YES
- Deployment PostProcessing在release状态设为YES
- Symbols hidden by default在release状态设为YES
- 可执行文件优化
- 使用LinkMap分析库的使用情况
- 三方库优化
- 删除不使用的三方库
- 功能用的少但是体积大的三方库可以考虑自己重写
- 合并功能重复的三方库
- 代码分析
- 用AppCode进行代码扫描
- 去掉无用的类及文件
- 清理import
- 去掉空方法
- 去掉无用的log
- 去掉无用的变量
- 反正把能去掉的都去掉
- 奇技淫巧
- 将业务打包成动态库
- 动态化。将一部分Native界面用Weex重写
- 去除Swift代码,Swift的标准库是打包在安装包里的,一般都有10M+。然后苹果爸爸说等到Swift Runtime稳定之后会合并到iOS系统里,那时候使用Swift就不会显着增加包大小了
- 在target->Build Settings->Other Link Flags里添加如下指令,会把TEXT字段的部分内容转移到RODATA字段,避免苹果对TEXT字段的审核限制。当然其实跟安装包瘦身好像没有什么关系,所以除非快不行了否则不建议操作 =。=
-Wl,-rename_section,__TEXT,__cstring,__RODATA,__cstring -Wl,-rename_section,__TEXT,__gcc_except_tab,__RODATA,__gcc_except_tab -Wl,-rename_section,__TEXT,__const,__RODATA,__const -Wl,-rename_section,__TEXT,__objc_methname,__RODATA,__objc_methname -Wl,-rename_section,__TEXT,__objc_classname,__RODATA,__objc_classname -Wl,-rename_section,__TEXT,__objc_methtype,__RODATA,__objc_methtype
- 跟着苹果爸爸走
- App Thinning
- 使用xcasset管理图片
- 开启BitCode
- App Thinning
最后更新:2017-10-25 12:03:45
上一篇:
.NET Core采用的全新配置系统[3]: “Options模式”下的配置是如何绑定为Options对象
下一篇:
JVM性能监控常用命令-1
??????6s??????????????????|iPhone6s????????????????????????-??????-????????????-?????????
机房收费系统之主窗体
码栈开发手册(四)---编码方式开发(字符串处理相关函数)
Oracle 12c多租户特性详解:从Schema到PDB的变化与隔离
【转载】java连接MYSQL
找不到BufferedImage这个Class的解决方法
【云栖大会】云计算是普惠科技 阿里云将与制造业紧密结合推进“中国智造”
DBA生存指南:以严谨防范事故
偷Microsoft师学MFC艺:且看C++如何支持反射
网络子系统19_积压设备