字节跳动移动端自动化实践

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 字节小程序的框架设计 与实践 大楼|字节跳动应用开发套件 MARS 研发工程师
2. 01 我们的小程序有什么特点? 02 小程序是怎么跑起来的? 03 小程序是如何同时服务于多个产品的? 2 2
3. 3 我们的小程序有什么特点?
4. 我们的小程序有什么特点? 小程序 www.volcengine.com
5. 小程序 · 核心优势 01 结合小程序的能力,以及高动态化的特性,实现定制化、多样 化、可复访、可留存的交互场景,丰富应用产品的生态和玩法。 02 小程序开发成本低,一套代码可同时跨平台上线多款产品,同 时支持微信小程序一键迁移。 03 结合性能优化的效果,可以服务于一些商业化场景,提高转化 率和变现效率。 www.volcengine.com
6. 字节产品案例 - 小程序 x 抖音入口 短视频挂载 评论区顶部 搜索直达 直播挂载 www.volcengine.com
7. 字节产品案例 - 小程序 x 抖音玩法 影视宣发 服务分发 宣传视频-购票 视频-相关服务 内容延展 娱乐互动 视频-新闻资讯/泛知识 玩法介绍-小游戏/娱乐测试 直播 广告投放 直播-小程序 广告-活动/商品⻚ www.volcengine.com
8. 8 小程序是怎么跑起来的?
9. 小程序基本运行流程 1. 创建项目、开发、发布 2. 用户打开抖音 3. 请求平台配置服务 4. 按需更新 JSSDK 5. 统一格式 Schema 唤起小程序 6. 请求基础信息服务 7. 初始化运行环境 8. 包加载 (流式、分包) 9. 基础能力调用 小程序 / 小游戏代码 新建小程序 开发者工具 IDE 调试、编译、上传发布 小程序 / 小游戏 10.小程序成功展示并运行 11.业务能力调用 www.volcengine.com
10. 小程序基本运行流程 1. 创建项目、开发、发布 2. 用户打开抖音 3. 请求平台配置服务 4. 按需更新 JSSDK 入口跳转链接 Schema 6. 请求基础信息服务 小程序 / 小游戏 CDN 下载 8. 包加载 (流式、分包) 10.小程序成功展示并运行 11.业务能力调用 小程序基础库 JSSDK 下载 ( 流式 ) CallBack , Publish InvokeMethod 7. 初始化运行环境 9. 基础能力调用 CallBack tt.navigateTo, tt.getSystemInfo, tt.chooseImage 更新基础库 (JSSDK) 5. 统一格式 Schema 唤起小程序 更新游戏包 CDN 小程序客户端 SDK Settings 平台配置服务 Meta 回调 请求基础库等 配置信息 定制化 API 调用 抖音客户端 请求 小程序 基础信息 小程序 基础信息服务 www.volcengine.com
11. 11 小程序是如何服务于多个产品的?
12. 12 小程序框架设计
13. 框架组件化设计 接入层 Platform 应用层 Application 业务基础层 Business Utils 通用基础层 Utils 标准业务接入模板 分发入口 注入 小程序 / 小游戏依赖模板 跳转链接 (Schema) 定制能力 容器 Container 开放能力 OpenAPIs 小程序 小游戏 tt.getSystemInfo tt.pay 高性能渲染 自定义扩展 tt.getLocation tt.login 业务基础能力 CPAPIs 加载基础 Loader / AppBase 用户账户模块 定位业务模块 ? Meta 服务 包管理 ? 引擎环境模块 授权管理模块 沙盒管理 ? 启动管理 通用基础能力 Service 通用工具模块 Base 基础网络能力 埋点能力 ? 队列管理模块 数据存储模块 音频能力 ? 定位基础能力 线程管理模块 定时器 ⏰ www.volcengine.com
14. 分层框架 通用基础层 Utils 通用基础能力 Service 基 础 网 络 能 力 埋 点 能 力 音 频 能 力 ? ? 数 据 存 储 模 块 线 程 管 理 模 块 OpenAPIs Service Custom Implementation tt.reportAnalytics 埋点能力 ? BDTeaAppLogPlatform 定 位 基 础 能 力 通用工具模块 Base 队 列 管 理 模 块 埋点上报 tt.reportAnalytics 定 时 器 ⏰ 定位能力 tt.getLocation OpenAPIs CPAPIs Service tt.getLocation 定位授权管理模块 定位基础能力 Base Base 数据存储模块 队列管理模块 www.volcengine.com
15. 框架组件化设计 接入层 Platform 应用层 Application 业务基础层 Business Utils 通用基础层 Utils 标准业务接入模板 分发入口 注入 小程序 / 小游戏依赖模板 跳转链接 (Schema) 定制能力 容器 Container 开放能力 OpenAPIs 小程序 小游戏 tt.getSystemInfo tt.pay 高性能渲染 自定义扩展 tt.getLocation tt.login 业务基础能力 CPAPIs 加载基础 Loader / AppBase 用户账户模块 定位业务模块 ? Meta 服务 包管理 ? 引擎环境模块 授权管理模块 沙盒管理 ? 启动管理 通用基础能力 Service 通用工具模块 Base 基础网络能力 埋点能力 ? 队列管理模块 数据存储模块 音频能力 ? 定位基础能力 线程管理模块 定时器 ⏰ www.volcengine.com
16. 分层框架 业务基础层 Business Utils 登陆 tt.login 业务基础能力 CPAPIs 用 户 账 户 模 块 定 位 业 务 模 块 ? 引 擎 环 境 模 块 包 管 理 ? 沙 盒 管 理 ? CPAPIs Custom Implementation tt.login 用户账户模块 BDAccountsPlatform 授 权 管 理 模 块 加载基础 Loader / AppBase M E T A 服 务 OpenAPIs 启 动 管 理 启动 Schema Boot Meta Package 跳转链接 启动管理器 基础信息服务 包加载、下载管理 Base 引擎环境模块 www.volcengine.com
17. 框架组件化设计 接入层 Platform 应用层 Application 业务基础层 Business Utils 通用基础层 Utils 标准业务接入模板 分发入口 注入 小程序 / 小游戏依赖模板 跳转链接 (Schema) 定制能力 容器 Container 开放能力 OpenAPIs 小程序 小游戏 tt.getSystemInfo tt.pay 高性能渲染 自定义扩展 tt.getLocation tt.login 业务基础能力 CPAPIs 加载基础 Loader / AppBase 用户账户模块 定位业务模块 ? Meta 服务 包管理 ? 引擎环境模块 授权管理模块 沙盒管理 ? 启动管理 通用基础能力 Service 通用工具模块 Base 基础网络能力 埋点能力 ? 队列管理模块 数据存储模块 音频能力 ? 定位基础能力 线程管理模块 定时器 ⏰ www.volcengine.com
18. 分层框架 容器视图 / 运行环境 应用层 Application 容器 Container 小 程 序 小 游 戏 高 性 能 渲 染 系 统 信 息 支 付 能 力 JSRuntime BDPAppRuntime BDPGameRuntime Container Container Container BDPAppController BDPGameController BDPContainerController 自 定 义 扩 展 开放能力 OpenAPIs 活 体 认 证 JSRuntime 图 片 选 择 开放能力 OpenAPIs OpenAPIs OpenAPIs OpenAPIs tt.login tt.getSystemInfo tt.getLocation tt.showToast OpenAPIs OpenAPIs OpenAPIs OpenAPIs tt.showActionSheet tt.showPickerView tt.getLaunchOptionsSync tt.vibrateShort www.volcengine.com
19. 框架组件化设计 接入层 Platform 应用层 Application 业务基础层 Business Utils 通用基础层 Utils 标准业务接入模板 分发入口 注入 小程序 / 小游戏依赖模板 跳转链接 (Schema) 定制能力 容器 Container 开放能力 OpenAPIs 小程序 小游戏 tt.getSystemInfo tt.pay 高性能渲染 自定义扩展 tt.getLocation tt.login 业务基础能力 CPAPIs 加载基础 Loader / AppBase 用户账户模块 定位业务模块 ? Meta 服务 包管理 ? 引擎环境模块 授权管理模块 沙盒管理 ? 启动管理 通用基础能力 Service 通用工具模块 Base 基础网络能力 埋点能力 ? 队列管理模块 数据存储模块 音频能力 ? 定位基础能力 线程管理模块 定时器 ⏰ www.volcengine.com
20. 分层框架 接入层 Platform 标准业务接入模板 分发入口 注入 小程序 / 小游戏依赖模板 跳转链接 (Schema) 定制能力 开放能力 OpenAPIs 容器 Container 应用层 Application 小 程 序 小 游 戏 高 性 能 渲 染 自 定 义 扩 展 用 户 账 户 模 块 定 位 模 块 支 付 模 块 ? ? 活 体 认 证 授 管 理 权 模 块 M E T A 基 础 网 络 能 力 日 志 能 力 音 频 能 力 ? ? 支 付 能 力 自 定 义 扩 展 Custom Implementation AWEPhotoBrowser 定 位 基 础 能 力 包 管 理 ? 沙 盒 管 理 ? 启 动 管 理 通用工具模块 Base 通用基础能力 Service 通用基础层 Utils 系 统 信 息 AWERouter 加载基础 Loader / AppBase 业务基础能力 CPAPI 业务基础层 Business Utils 路由模块 队 列 管 理 模 块 数 据 存 储 模 块 线 程 管 理 模 块 定 时 器 ⏰ www.volcengine.com
21. 21 不同产品的差异化诉求
22. 小程序是如何同时服务于多个产品的? 接入「小程序」「小游戏」 同时支持能力定制化 接入「小游戏」 并移除掉定位能力 接入「微型小程序」 仅满足业务功能即可,减少包体积 www.volcengine.com
23. 小程序是如何同时服务于多个产品的? 接入层 Platform 接入「小程序」「小游戏」 同时支持能力定制化 • 使用接入「模板」,按需接入 • 关键能力定制 标准接入模板 入口分发 注入 小程序/小游戏标准依赖模板 统一 Schema 入口链 接的跳转注册 宿主定制能力注入 模版 模版 小 程 序 小 游 戏 OpenAPIs tt.chooseImage Custom Implementation AWEPhotoBrowser www.volcengine.com
24. 小程序是如何同时服务于多个产品的? 接入「小程序」「小游戏」 同时支持能力定制化 接入「小游戏」 并移除掉定位能力 接入「微型小程序」 仅满足业务功能即可,减少包体积 www.volcengine.com
25. 小程序是如何同时服务于多个产品的? 接入层 Platform 标准接入模板 入口分发 注入 小程序/小游戏标准依赖模板 统一 Schema 入口链 接的跳转注册 宿主定制能力注入 模版 接入「小游戏」 并移除掉定位能力 • 使用接入「模板」,按需接入 • 高度内聚的「模块」设计,模块可插拔,按需移除模块 小 游 戏 OpenAPIs 定位能力 业务基础能力 CPAPI 地理位置权限管理能力 通用基础能力 Service 定位基础能力 通用工具 Base 通用工具 Base 队列管理模块 数据存储模块 www.volcengine.com
26. 小程序是如何同时服务于多个产品的? 接入「小程序」「小游戏」 同时支持能力定制化 接入「小游戏」 并移除掉定位能力 接入「微型小程序」 仅满足业务功能即可,减少包体积 www.volcengine.com
27. 小程序是如何同时服务于多个产品的? 接入层 Platform 标准接入模板 入口分发 注入 小程序/小游戏标准依赖模板 统一 Schema 入口链 接的跳转注册 宿主定制能力注入 容器 接入「微型小程序」 仅满足业务功能即可,减少包体积 • 高度内聚的「模块」设计,「模块」可插拔 • 自由组合「模块」,按需接入 小 程 序 OpenAPIs OpenAPIs OpenAPIs 活体认证 定位能力 支付能力 业务基础能力 CPAPI 地理位置权限管理能力 通用基础 Service 通用基础 Service 日志能力 ? 定位基础能力 通用工具 Base 通用工具 Base 队列管理模块 数据存储模块 www.volcengine.com
28. 28 监控服务
29. 核心数据监控 • 小程序平均加载时长 1s • 小程序加载成功率 95% • 数据异常监控主动报警 www.volcengine.com
30. 稳定性监控 • 小程序崩溃率 0.242‰ • 小程序崩溃用户数 0.139‰ www.volcengine.com
31. 稳定性监控 • 崩溃监控主动报警 www.volcengine.com
32. 32 接入小程序 SDK
33. 小程序产品接入 1.宿主相关信息填写 2.技术依赖解析工具 3.接入功能自助接入文档 (包含示例工程) 4.依照「测试用例」按需测试 www.volcengine.com
34. 火山引擎应用开发套件 MARS,免费公测中 火山引擎应用开发套件 MARS,是由字节跳动技术经验的沉淀,经抖音、今日头条等多款 App 研发实践验证、诸多企业使 用的面向多端开发场景的应用研发工具,致力于通过先进的研发技术,帮助企业和用户降低研发成本、聚焦业务成功。 微信扫码关注公众号,点击底部菜单栏“MARS 产品”即可申请 免费试用,如有私部需求也可在公众号内随时与我们联系解决。 www.volcengine.com
35. 欢迎加入 35 35 扫码关注 “火山引擎开发者社区”公众号 www.volcengine.com
36. www.volcengine.com

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