10 | 包大小:如何从资源和代码层面实现全方位瘦身?
该思维导图由 AI 生成,仅供参考
- 深入了解
- 翻译
- 解释
- 总结
本文介绍了如何对App包大小进行优化,以节省用户流量,提高用户下载速度。作者分享了在主持滴滴客户端瘦身过程中的经验,将包大小从106MB降至64MB,并稳定在70MB。文章指出包过大会影响用户体验、升级率,甚至导致无法提交App Store和非WiFi环境无法下载。作者介绍了官方App Thinning技术,包括App Slicing、Bitcode、On-Demand Resources,并提供了使用方法。此外,还讨论了删除无用图片资源的方法。 文章内容主要包括两个方面:图片资源压缩和代码瘦身。对于图片资源压缩,作者介绍了使用WebP格式进行高效压缩的方法,并提供了转换图片至WebP格式的具体操作步骤。对于代码瘦身,作者提出了通过LinkMap结合Mach-O文件找出无用代码的方法,并介绍了使用AppCode进行静态分析的方式。同时,作者也指出了在使用AppCode进行静态检查时可能出现的问题和需要人工二次确认的情况。 具体编写运行时无用类检查工具时,我们可以在线下测试环节去检查所有类,先查出哪些类没有初始化,然后上线后针对那些没有初始化的类进行多版本监测观察,看看哪些是在主流程外个别情况下会用到的,判断合理性后进行二次确认,最终得到真正没有用到的类并删掉。 总的来说,本文提供了丰富的技术经验和实用方法,对于需要对App包大小进行优化的开发者具有一定的参考价值。
《iOS 开发高手课》,新⼈⾸单¥59
全部留言(64)
- 最新
- 精选
- 元元老师ios为什么要设计元类?能讲一下吗
作者回复: 其实这个问题是个开放性的问题。 不同阶段的解读也会不一样。因为这个知识点大家都会去学,主要是希望能够通过面试者的回答,加上追问方式来看他是不是会带着思考去学习。比如元类和类的结构体非常类似,他有没有想过为什么不合在一起用一个结构体?(结构体设计能力)元类和类创建的时机是不是一样的,为什么?(用过 runtime 接口开发没)元类的 flag 字段里记录了什么?(是否有深入探究的意识)
2019-04-02230 - Toon矢量图呢?也可以减少大小吧
作者回复: 矢量图片编译时会生成位图
2019-04-2131 - 开发小能手请教老师,我在评论中看到老师有提到“元类的flag中记录了什么?”这里的 “flag” 是指isa是一个共用体中每段 “位域” 的含义么?还是指其它的概念?
作者回复: 元类结构体中的 flag 字段
2019-04-1321 - 一纸丶荒年您的这个 工具 对于 swfit 和 xib 不适用.
作者回复: 哪个工具?
2019-04-121 - 卓小土戴老师为什么没有讲一下,用clang AST分析代码依赖关系,找出无用代码的方法。
作者回复: clang 插件篇里会说下
2019-04-121 - 付海龙相比于2x和3x两套资源,用矢量图一套资源搞定所有,这样会不会更好一点
作者回复: 是支持矢量图的,矢量图编译后会生成2x、3x 图
2019-04-021 - 西北旺车神OTA并不是单指蜂窝网络吧,我觉得是指不用连电脑iTunes下载了
作者回复: 对,也包括不用数据线连 iTunes 的情况
2019-04-021 - 李小草之前开发遇到过提供三方sdk的公司提供了两个版本,一个版本带模拟器指令集(支持模拟器的),一个版本是不带模拟器的,只支持arm真机,上线时切换下,这样可以减小包得体积,请问老师这样对吗?如果这样真能减小包体积的话,那我是不是可以把所有三方sdk中模拟器指令集都剔除掉?
作者回复: 可以删掉
2019-06-032 - 一纸丶荒年你好 我下载了 AppCode 工具. 但是 我选择不了 code->inspectCode 吖
作者回复: https://www.jetbrains.com/objc/features/code-analysis.html
2019-04-152 - 毒手疯波framework中的i386和x86_64会打包进release app里么?
作者回复: App Thinning 会去掉
2019-04-09