头图

火山引擎 MARS x 今日头条极速版 |插件化改造减小包体积,提高 APP 下载率

今日头条极速版安卓端 App 使用字节跳动应用开发套件MARS 插件服务后,在不影响功能完整度和体验流畅的情况下,将常规优化后达 120M+的包体积降到了 13M 左右,最小版本降至 4M,包体积缩小至原先的 3.33%。通过包体积缩小,大幅提升了 App 的下载率。

包体积大小已成影响 App 增长率的关键因素

移动 App 特别关注投放转化率指标,而 App 包体积是影响用户新增的重要因素。Google 2016 年公布的研究报告显示,包体积每上升 6MB 就会带来下载转化率降低 1%,当包体积增大到 100MB 时就会有断崖式的下跌。现在流量虽然变得更廉价一点,但是用户的心理是不会变的,当 App 出现在应用市场的相同位置时,包体积越大,用户下载意愿可能越低。今日头条是一个通用信息平台,致力于连接人与信息,让优质丰富的信息得到高效精准的分发,促使信息创造价值。目前拥有推荐引擎、搜索引擎、关注订阅和内容运营等多种分发方式,囊括图文、视频、问答、微头条、专栏、小说、直播、音频和小程序等多种内容题材。而今日头条极速版是今日头条的轻量版本,在今日头条极速版包体积与转化率实验中也显示投放转换率随包体积的减小有明显的增长。因此追求极致的包体积是今日头条极速版的一个重要产品特性。使用插件化解决方案,可以不将业务打包进 APK,而是通过插件动态下发的方式实现 App 功能,是显著减小包体积的优秀方案。
image.png

火山引擎应用开发套件MARS 插件服务助力今日头条减小包体积

火山引擎移动研发平台 MARS 是终端技术团队基于字节跳动过去九年在抖音、今日头条、西瓜视频、飞书、懂车帝等 App 研发中的实践成果,沉淀并在火山引擎开放。致力于为开发者提供移动开发解决方案,帮助企业降本增效,打造高质量、高性能的优质 App 体验。MARS 插件服务包括插件核心库、插件管理库、插件构建脚本、插件管理平台 4 个功能模块,是一套完整的插件闭环服务 。具有功能全面、稳定性强、使用简单等特点。帮助企业实现业务热更新、降低首包体积、节省流量、模块化开发。
image.png
今日头条极速版安卓端 App 使用火山引擎 MARS 插件服务后,在不影响体验功能完整度和体验流畅的情况下,将常规优化后达 120M+ 的包体积降到了 13M 左右,最小版本降至 4M,包体积缩小至原先 3.33%,极大的提升下载率和用户增长率。

MARS 插件服务包体积优化方案

1.插件框架选择

今日头条极速版对插件框架有以下要求:

  • 改造插件成本低: 今日头条极速版大部分业务都要改造成插件,如果改造插件成本高,改造和维护成本是巨大的;
  • 稳定性&兼容性高: 今日头条极速版用户量大,几乎覆盖所有机型,每个稳定性或兼容问题都会被放大;

而火山引擎 MARS 插件服务完美满足以上需求:宿主业务 module 改造成插件通常只需几行配置(插件与宿主原生方式互调),且 MARS 插件服务在字节内部经过大规模使用验证。 基于以上要求,今日头条极速版最终选择了火山引擎MARS插件服务作为其减包体积的解决方案。2.插件改造方案: 接下来就是结合插件玩法对宿主的业务进行插件改造,火山引擎 MARS 插件服务通常有下面三种玩法:

  1. 启动下载插件 :App 启动时从云端下载,适用于非核心场景业务、新业务、增强功能(App 启动后用户不需要立即使用的能力,例如自研播放器在没有就绪前可使用系统播放器)
  2. 按需下载插件:用户使用时从云端下载,适用于低命中业务(只有很少用户使用的功能,例如直播开播端只有主播才会用到)
  3. 内置插件:内置到宿主 App 中,适用于核心业务场景且有热更新需求的业务

今日头条极速版将业务进行分类并配置成对应插件:

  • 增强功能:自研播放器、自研网络库等
  • 次级业务:扫一扫、小程序、Flutter、各类直播等
  • 低命中业务:长视频、投屏等

经过插件改造后共有38个插件,云端下发总包体积110M,最终实现减包体积100M+ 。

火山引擎应用开发套件MARS 插件服务持续迭代,助力 App 开发降本增效

除今日头条极速版外,今日头条主版也通过 MARS 插件服务方案取得了较大的包体积收益。目前火山引擎 MARS 插件服务已被数十个 App 使用,包括抖音、头条等超级 App。 

除了减包体积方案外,火山引擎 MARS 插件服务还有很多其他应用场景:

  1. 业务热更新:一般新业务对修复问题和业务迭代频率有较高的要求,使用 veMARS 插件服务可以进行及时发版;
  2. 节省 CDN 流量:有些业务并不会跟随每个宿主版本都有更新,使用 veMARS 插件服务可以让新版本宿主继续使用老版本插件,用户只下载宿主和有更新的插件,例如自研播放器等稳定更新频率较低的业务;
  3. 提升研发效率:改造成 veMARS 插件的业务打包时无需构建宿主只需构建插件,显著提升研发时的打包速度从而提升研发效率;

火山引擎应用开发套件MARS是字节跳动终端技术团队过去九年在抖音、今日头条、西瓜视频、飞书、懂车帝等 App 的研发实践成果,面向移动研发、前端开发、QA、 运维、产品经理、项目经理以及运营角色,提供一站式整体研发解决方案,助力企业研发模式升级,降低企业研发综合成本。

目前MARS 插件服务已经对外部开发者开放,提供从 SDK 到平台的完整闭环服务,欢迎大家使用体验。

MARS TALK | 01

今日头条极速版插件化实践分享

image.png
8月26日(周四)晚八点,我们邀请 MARS 插件方向负责人董洪辰和今日头条开发工程师纪玮,做客 MARS TALK 第一期,分享今日头条极速版基于 veMARS 插件化实现包体积缩小的技术细节。本次活动采用线上直播的模式,欢迎大家扫码报名参加 🎉

28 声望
28 粉丝
0 条评论
推荐阅读
字节跳动Dev Better技术沙龙来啦!参与活动赢好礼,限时免费报名中!
字节跳动发展至今,线上已经有数量级庞大的Web项目,服务着数以亿计的用户。随着用户数量的不断增长,对于站点体验衡量与优化的需求也日益紧迫。性能是留住用户的关键,前端领域发展迅猛,不断涌现出新的技术,针...

字节跳动终端技术阅读 272

封面图
如何用3D流体实现逼真水流效果?
华为应用市场在2022年HDC大会期间发布了一款3D水流主题,基于华为HMS Core Scene Kit服务能力,展现立体灵动的水流岛屿,可跟随用户指尖实现实时流体波动效果,既趣味又解压。

HMSCore1阅读 2.1k

如何满速下载百度网盘文件
在我们开心的网上冲浪时,经常会遇到某些资源是用百度网盘储存的,而百度网盘的下载速度经常是1MB以下、几十K、几百K,令人十分着急!!突然,一个 微信公众号 自称软件小妹的大佬出现了,直接为我们带来了一个 油...

小红石1阅读 5.9k

封面图
Android桌面图标快捷方式
长按桌面图标实现快捷方式最早是iOS提供的功能,而Android最早在Android 7.1版本也提供了对这方面的支持,于是在短时间内,像微信,支付宝,头条等流量级应用都提供了这方面的支持,如下图。 

xiangzhihong3阅读 593评论 2

安卓逆向之破解某成人APP播放次数限制
某成人水果APP非VIP用户存在播放次数限制,每天只能播放3次。超过3次需要购买VIP。 由于过于贫穷,于是抽空,对其安卓APP进行了逆向分析,最终成功破解了其播放次数限制。

悖论2阅读 261

封面图
2022 年终总结|致敬即将过去的,匆忙而又虐心的一年...
本文参与了 SegmentFault 思否年度征文「一名技术人的 2022」,欢迎正在阅读的你也加入。 时间,总是过的这么快,快得让人猝不及防,眨眼又是一年的末...似乎儿时的文章中,对于时间的流逝,描述的最多的便是:白...

贺biubiu1阅读 1.1k

封面图
读懂 gradle dependencies
不过在使用 dependencies 时有一些细节之前一直没有搞清楚,遂研究了一下部分细节。本文整体参考 gradle 官方文档,大家感兴趣也可以自己深入研究下。

云音乐技术团队1阅读 459

封面图
28 声望
28 粉丝
宣传栏