iOS包体积大小优化

2023-03-31  本文已影响0人  不多满

前言

应用的包体积大小会影响用户的点击下载率、安装成功率和卸载率,是衡量APP性能的一项重要指标。为了更好的用户体验,减少用户下载等待时长、减少手机存储空间占用,对包体积大小的优化也是尤为重要的。

安装包ipa的内容

iOS打包出来的ipa,本质上是一个压缩包,可以将.ipa的后缀改为.zip,然后进行解压缩后会得到一个Payload文件夹,里面又一个xxx.app的文件,右键显示包内容可以看到具体内容:

Mach-o文件的具体内容:


Header.png

segment包括如下5种:

包体积大小优化

通过ipa安装包的具体内容,可以分析出应用包体积大小的具体优化方案。

1 资源瘦身

1.1 移除无用资源

1.2 资源压缩

2 Mach-o文件优化

2.1 Optimization Level使用-Oz编译参数

Xcode 11新增了Oz编译优化选项,核心原理是对重复的连续机器指令外联成函数进行复用,和“内联函数”的原理正好相反。因此,开启Oz可以减小二进制文件的大小,但也会带来执行效率的额外消耗,需要慎用(记一起 clang 开启 -Oz 选项引发的血案)。

2.2 Link-Time Optimization链接时优化

Link-Time Optimization链接时优化是Xcode自带的一个编译/链接参数,对包大小和运行效率都有正向影响。


Apple Clang Code Generation.png

2.3 属性动态化

一个属性可以分为三个部分:

参考文章

详解 Mach-O 文件结构
iOS进阶 - Mach-O文件解析
Xcode编译相关
记一起 clang 开启 -Oz 选项引发的血案
今日头条 iOS 安装包大小优化—— 新阶段、新实践
Alibaba.com瘦包40MB——业界最全的iOS包大小技术总结
深入探索 iOS 包体积优化
正经分析iOS包大小优化
ipa包大小优化

上一篇 下一篇

猜你喜欢

热点阅读