百度APP作为日活过亿的国民级应用,经过这些年的发展,从最初的搜索,发展到现在包含搜索、Feed、视频、直播、小说、购物、小程序、网盘和众多垂类模块的超级应用,为服务更多用户满足更多用户需求不断迭代,应用像滚雪球一样越滚越大,包体积从最初的几十MB发展到最高时的420MB,每个版本自然迭代会有至少3MB的涨幅,过大的包体积带来的负面作用开始显现,400M的体积对下载转化率和卸载率提出了很大的挑战,因此包体积成为百度超级APP发展的拦路虎。 22年Q3开启包体积优化项目,从编译器优化(OC&Swift&C++优化、LTO优化、剥离调试符号、三方SDK优化)、图片优化(无用图片、HEIC图片优化、Asset Catalog图片优化、图片压缩)、资源瘦身(大资源优化、无用配置文件、重复资源)、代码瘦身(无用类、无用方法、无用模块、精简重复代码、工具类瘦身、AB实验固化)和工程架构(Xcode打包、防劣化)等方向做优化。 在满足正常业务迭代情况下,优化落地收益50M,百度APP包体积从七月初的395M下降到十二月末的352M,同一时间段内,国内大厂主流APP中,微信从502M上涨到530M,
百度APP iOS端包体积优化系列文章的前三篇重点介绍了包体积优化整体方案、图片优化和资源优化,图片优化是从无用图片、Asset Catalog和HEIC格式三个角度做深度优化,资源优化包括大资源优化、无用配置文件和重复资源优化,本文重点介绍代码优化,在百度APP实践中,代码优化包括无用类优化、无用模块瘦身、无用方法瘦身、精简重复代码、工具类瘦身和AB实验固化。在代码优化过程,需要分析Mach-O和Link Map,在前面的文章我们已经针对Mach-O文件做过了分析,本文先介绍Link Map文件,然后再详细介绍代码优化方案。
之前的文章介绍了图片优化和代码优化的几种方式,本篇文章重点介绍HEIC图片和无用类检测的优化实践。HEIC是High Efficiency Image Format(高效图像格式)的缩写,是一种新的图像文件格式,它是2017年苹果公司在iOS 11中引入,用于代替JPEG图像格式,以更高效地压缩图像并减少存储空间占用。HEIC支持多帧图像、透明度和16位深度色彩,使得它成为高质量图像和动画的理想选择。本文重点探究HEIC图片在百度APP中使用的可行性和包体积收益,验证HEIC图片在Bundle和Asset Catalog的兼容性,重点研究了Asset Catalog管理图片的机制,记录了验证过程中发现的特殊问题和解决思路。无用类则是详细介绍了如何用静态分析和动态分析相结合的方式,精简代码体积。
百度APP iOS端包体积优化系列文章的前六篇重点介绍了包体积优化整体方案、图片优化、资源优化、代码优化、无用类优化、HEIC图片优化实践和无用方法清理,图片优化是从无用图片、Asset Catalog和HEIC格式三个角度做深度优化;资源优化包括大资源优化、无用配置文件和重复资源优化,代码优化包括无用类优化、无用模块瘦身、无用方法瘦身、精简重复代码、工具类瘦身和AB实验固化。本文重点介绍编译器优化,在百度APP实践中,编译器优化包括GCC语言编译优化、Swift编译优化、LTO优化、剥离调试符号、剥离符号表、剔除未引用的代码、Asset 优化、C++虚函数优化和三方SDK编译器方向瘦身。此外,我们重点介绍了指令集架构优化、XCode升级优化和Swift内置动态库优化,这三个模块优化的基础原理都涉及到编译器,所以我们在此篇章一起介绍。
贴吧作为拥有20年历史的社区产品,会员订单是商业收入的重要组成部分,会员用户也是最具有忠诚度和用户粘性的群体。旧版会员一直存在价格高、权益少、页面老旧等问题,导致用户购买意愿逐年下降,增长乏力。 业务推出了全新的双会员机制,通过拆分高价、低价会员,满足更多用户购买诉求;针对高价会员也推出了更多专属权益,希望通过这些增值权益拉动会员规模的增长。 设计团队也希望通过这次改版对会员品牌进行全面升级,增强会员的年轻感和吸引力;同时根据不同阶段的用户需求,打造极致的用户体验,助力付费会员的增长。