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

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1.
2. veMARS 插件技术能力 分享嘉宾:董洪辰
3. 01 插件现状 02 03 veMARS 插件服务 veMARS 插件服务 应用情况 特性与实现
4. 01 插件现状
5. 插件技术赋能 包体积太大 止痛药 痛点 新版 覆盖周期长 工程庞大 打包时间长 插件技术
6. 插件技术简介 动态加载 原生包拆分 插件平台 宿主 apk (10M) 宿主 apk (10M) 原始 apk (100M) 下载 插件 N.apk 打包 插件 1.apk 插件 4.apk 插件 2.apk 插件 5.apk 插件 3.apk 插件 6.apk 加载 加载 加载 插件 1.apk 插件 2.apk 插件 3.apk
7. 插件使用现状 • 2018 诞生 • 2021 全量 海外 国内 Android App 动态化下发普及率低 Bundle • 目的:减包体积 • 功能:动态下发 • 实现:Google Play + AppFramework • 2012 雏形 • 2021 普及率低 • 应用商店百家争鸣 • 热更新需求 • 使用插件门槛高  自建平台  sdk维护适配  工程改造成本高 不支持热更新 (非插件)
8. 形势预测
9. 02 veMARS 插件服务 应用情况
10. veMARS 插件服务使用情况 App 30+ 、插件 400+ 、平均每年发布 1w+ 始于2016 今日头条 抖音 抖音火山版 西瓜视频 懂车帝 ...... 皮皮虾 飞书 剪映 番茄小说 幸福里
11. veMARS 插件服务优势 工程 改造成本低 稳定性高 完善的 周边建设 丰富的 使用场景 极致的 体验
12. 多种玩法 玩法支持 常见插件 小程序 Flutter 直播 自研 播放器 增强 网络库 春节项目 各种 次级业务 。。。 位置:内置、外置 下载方式:自动下载、自控下载(按需、延迟) 远程控制:升级、回滚、下线
13. veMars 插件服务案例 减包体积 差量更新 动态发布 提升研发效率 打包速度10min+ -> 1min-
14. 03 veMARS 插件服务 特性与实现
15. 插件特性 能力|特性 支持情况 构建方式 gradle(类似 aab 插件与宿主共同依赖打进宿主) 类加载 多 ClassLoader 资源加载 超级 Resource addAssetPath 资源冲突 aapt2 新增四大组件 支持,预埋桩 hook Activity 的启动和创建 插件宿主调用 原生调用 子进程 支持 MultiDex 支持 32/64 位 so 支持 插件校验方式 v3 签名
16. 工程改造成本低
17. 插件改造成本 拆插件 不可避免 插件 开发方式 原生方式 范 围 调 用
18. 插件原生开发方式 跨包资源访问 插件打包生成R前:将宿主R文件合并到插件R文件中 插件打包编译资源前:插件ApplicationId伪装成宿主的
19. 运行时打通 超级Resource addAssetPath 插件1 插件2 插件N
20. 插件 dex2oat 优化
21. 插件dex2oat优化 问题 技术背景 • ART虚拟机安装apk时预编译(Ahead-Of-Time) • 插件需dex2oat后被加载 • dex2oat耗时长,占用CPU资源多 插件 生效慢 安装插件 卡顿
22. 插件 dex2oat 优化 方案 安装插件时生成解释执行的oat文件 技术优化 dex2oat 空闲时触发生成完全编译的oat文件 策略优化 低优插件配置成延迟下载安装
23. 双向跨版本支持
24. 双向跨版本 宿主跨插件版本(插件升级) 插件 插件 插件 版本1 版本2 版本3 插件热更 宿主版本1 插件跨宿主版本(宿主覆盖安装) 插件 插件 版本3 版本3 1.第一时间生效 插件复用 宿主版本1 宿主版本2 2.节省用户流量 3.减少CPU占用
25. 检测能力 发布阶段 开发阶段 自动生成keep类 发版卡口 宿主APK 双向检测 自动生成固定资源 • • • 类兼容 资源兼容 权限兼容 插件APK
26. 完整的闭环服务
27. veMars插件服务免费公测中 使用 自建平台 sdk 维护适配 门槛 开源插件框架 解决方案:veMars插件闭环服务 工程 改造成本
28. 今日头条极速版插件化实践分享 分享嘉宾:纪玮
29. 在这里,你可以了解到: 头条极速版接入 veMARS 插件框架的背景 头条极速版插件化效果与体验 使用 veMARS 完成应用插件化的开发流程 头条极速版插件化演进之路 通过 veMARS 插件管理平台来管理插件业务 veMARS 为头条极速版带来的其他收益
30. 头条极速版是一款什么样的应用?  今日头条的轻量版本  拥有推荐引擎、搜索引擎、关注订阅和 内容运营等多种分发方式,囊括图文、 视频、问答、微头条、专栏、小说、直 播、音频和小程序等多种内容体裁  对投放转化率敏感,追求极致的包体积  频繁的业务更新迭代  对插件化技术框架有迫切需求
31. 为什么选择 veMARS? • 需要完成大量复杂业务的插件化工作,追求较低的业务改造成本 • 用户覆盖面广,需要很高的稳定性和兼容性 • veMARS 的完美契合 宿主业务 module 改造成插件通常只需几行配置 经过大规模使用验证,对各机型和系统都有比较完善的适配
32. 头条极速版插件化效果与体验 不使用插件化 插件化之后 包体积 包体积 > 120M,极大影响下载转化率 包体积 13M,最小达到 4M 业务迭代 业务更新需要发版,对用户严重打扰 插件业务更新可以静默完成,用户无感
33. 如何完成应用的插件化?-准备工作 • 确认哪些业务适合插件化 次级业务:非核心业务 低命中业务:非启动阶段必须的业务 时效性业务:例如春节活动插件 增强业务:存在兜底方案,插件业务方案用于体验提升 • 不适合插件化的场景 核心路径上的核心业务场景
34. 如何完成应用的插件化?-开发工作 • 业务架构整合 –设计后向兼容性良好的接口 • 按照 veMARS 框架的使用规则进行配置 –完成插件配置文件的声明和插件工程内 build.gradle 和 AndroidManifest.xml 等文件的配置 –将插件对宿主的依赖接口 keep 起来,并将宿主中被插件依赖的资源固定起来
35. 如何完成应用的插件化?-验证上线 • 验证插件打包与安装、使用逻辑 • 在插件下发平台上配置相关插件信息 验证插件下载安装使用流程 验证插件覆盖升级、回滚下线等整套操作流程
36. 头条极速版插件化演进之路-1.0 版本 • 第一个插件的诞生:直播聊天室插件 • 分析适合插件化的业务,这一阶段主要完成部分次级业务的插件化 私信、扫一扫…… • 宿主 7M 左右;插件+宿主包体积合计<40M • 平均每周插件发布量:5-7 个
37. 头条极速版插件化演进之路-2.0 版本 • 进一步对既有的和部分新开发的低命中业务、增强业务插件化 低命中业务:各类直播插件、小视频、小程序等 增强业务:视频播放器自研内核、网络库自研内核等 时效性业务:春节活动业务等 • 宿主包体积5M左右;宿主+插件包体积约60M+ • 平均每周插件发布量:10-15个
38. 头条极速版插件化演进之路-3.0 进行中 • 插件数量 30+ 基础库插件,内含一些插件专用的基础库,用于支持其他具体业务插件 低命中业务:用户升级、新闻推送等 • 宿主包体积 13 M,宿主+插件包体积超过 120M • 平均每周插件发布量:20+个
39. 头条极速版的插件管理体系如何得到支撑? veMARS 插件管理平台优良的管控能力 • 完善的插件下发规则配置能力 区分宿主版本、手机系统版本、厂商、设备型号…… • 下发前的自动化校验 版本兼容性检测,稳定性检测…… • 稳定性兜底能力 熔断管理 问题插件清理、回退
40. veMARS 还为今日头条极速版带来了什么? • 高效快速修复各类复杂的功能及质量问题 • 提升打包效率,有助于研发效率提升
41. 感谢观看

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-15 02:53
浙ICP备14020137号-1 $Map of visitor$