今日头条极速版安卓端 App 使用字节跳动应用开发套件 MARS 插件服务后,在不影响功能完整度和体验流畅的情况下,将常规优化后达 120M+的包体积降到了 13M 左右,最小版本降至 4M,包体积缩小至原先的 3.33%。通过包体积缩小,大幅提升了 App 的下载率。
包体积大小已成影响 App 增长率的关键因素
移动 App 特别关注投放转化率指标,而 App 包体积是影响用户新增的重要因素,而 App 的包体积又是影响投放转化率的重要因素。Google 2016 年公布的研究报告显示,包体积每上升 6MB 就会带来下载转化率降低 1%,当包体积增大到 100MB 时就会有断崖式的下跌。现在流量虽然变得更廉价一点,但是用户的心理是不会变的,当 App 出现在应用市场的相同位置时,包体积越大,用户下载意愿可能越低。今日头条是一个通用信息平台,致力于连接人与信息,让优质丰富的信息得到高效精准的分发,促使信息创造价值。目前拥有推荐引擎、搜索引擎、关注订阅和内容运营等多种分发方式,囊括图文、视频、问答、微头条、专栏、小说、直播、音频和小程序等多种内容题材。而今日头条极速版是今日头条的轻量版本,在今日头条极速版包体积与转化率实验中也显示投放转换率随包体积的减小有明显的增长。因此追求极致的包体积是今日头条极速版的一个重要产品特性。使用插件化解决方案,可以不将业务打包进 APK,而是通过插件动态下发的方式实现 App 功能,是显著减小包体积的优秀方案。
火山引擎应用开发套件 MARS 插件服务助力今日头条减小包体积
火山引擎应用开发套件 MARS 是字节跳动终端技术团队过去九年在抖音、今日头条、西瓜视频、飞书、懂车帝等 App 的研发实践成果,面向移动研发、前端开发、QA、 运维、产品经理、项目经理以及运营角色,提供一站式整体研发解决方案,助力企业研发模式升级,降低企业研发综合成本。MARS 插件服务包括插件核心库、插件管理库、插件构建脚本、插件管理平台 4 个功能模块,是一套完整的插件闭环服务 。具有功能全面、稳定性强、使用简单等特点。帮助企业实现业务热更新、降低首包体积、节省流量、模块化开发。今日头条极速版安卓端 App 使用火山引擎 veMARS 插件服务后,在不影响体验功能完整度和体验流畅的情况下,将常规优化后达 120M+ 的包体积降到了 13M 左右,最小版本降至 4M,包体积缩小至原先 3.33%,极大的提升下载率和用户增长率。
veMARS 插件服务包体积优化方案
1.插件框架选择
今日头条极速版对插件框架有以下要求:
- 改造插件成本低: 今日头条极速版大部分业务都要改造成插件,如果改造插件成本高,改造和维护成本是巨大的;
- 稳定性&兼容性高: 今日头条极速版用户量大,几乎覆盖所有机型,每个稳定性或兼容问题都会被放大;
而火山引擎应用开发套件 MARS插件服务完美满足以上需求:宿主业务 module 改造成插件通常只需几行配置(插件与宿主原生方式互调),且 MARS 插件服务在字节内部经过大规模使用验证。 基于以上要求,今日头条极速版最终选择了字节跳动应用开发套件 MARS插件服务作为其减包体积的解决方案。2.插件改造方案: 接下来就是结合插件玩法对宿主的业务进行插件改造,火山引擎应用开发套件 MARS 插件服务通常有下面三种玩法:
- 启动下载插件 :App 启动时从云端下载,适用于非核心场景业务、新业务、增强功能(App 启动后用户不需要立即使用的能力,例如自研播放器在没有就绪前可使用系统播放器)
- 按需下载插件:用户使用时从云端下载,适用于低命中业务(只有很少用户使用的功能,例如直播开播端只有主播才会用到)
- 内置插件:内置到宿主 App 中,适用于核心业务场景且有热更新需求的业务
今日头条极速版将业务进行分类并配置成对应插件:
- 增强功能:自研播放器、自研网络库等
- 次级业务:扫一扫、小程序、Flutter、各类直播等
- 低命中业务:长视频、投屏等
经过插件改造后共有38个插件,云端下发总包体积110M,最终实现减包体积100M+ 。
火山引擎应用开发套件 MARS 插件服务持续迭代,助力 App 开发降本增效
除今日头条极速版外,今日头条主版也通过 MARS 插件服务方案取得了较大的包体积收益。目前字节跳动应用开发套件 MARS 插件服务已被数十个 App 使用,包括抖音、头条等超级 App。
除了减包体积方案外,火山引擎应用开发套件 MARS 插件服务还有很多其他应用场景:
- 业务热更新:一般新业务对修复问题和业务迭代频率有较高的要求,使用 veMARS 插件服务可以进行及时发版;
- 节省 CDN 流量:有些业务并不会跟随每个宿主版本都有更新,使用 veMARS 插件服务可以让新版本宿主继续使用老版本插件,用户只下载宿主和有更新的插件,例如自研播放器等稳定更新频率较低的业务;
- 提升研发效率:改造成 MARS 插件的业务打包时无需构建宿主只需构建插件,显著提升研发时的打包速度从而提升研发效率;
目前,火山引擎应用开发套件 MARS 插件服务已经对外部开发者开放,提供从 SDK 到平台的完整闭环服务,欢迎大家使用体验。