去哪儿网qp热更新技术的架构与实践
2020-02-27 381浏览
- 1.去哪⼉儿⽹网qp热更更新技术的架构与实践 分享⼈人:孟超
- 2.讲师介绍 孟超 资深iOS研发⼯工程师 去哪⼉儿⽹网 YMFE(前端架构组) 2014年年底加⼊入去哪⼉儿,担任前端架构组iOS团队负 责⼈人,⼀一直专注于Hybrid框架的设计与研发⼯工作, ⽬目前已有上百个hybrid项⽬目在去哪⼉儿客户端稳定运 ⾏行行。本⼈人在移动混合开发⽅方⾯面有较深的研究,近期 专注于Hybrid和React Native等框架的性能提升和 SDK化。
- 3.主要内容 1.背景介绍 2.统计平台简介 3.热更更新平台以及客户端如何使⽤用qp包 4.下线、回滚逻辑 5.客户端更更新策略略详解 6.总结回顾
- 4.背景介绍 在Qunar客户端中,Hybrid和 React Native⽆无处不不在 房东 旅游度假甚⾄至达到了了80%的hybrid化 这样真的不不影响⽤用户体验吗?
- 5.背景介绍 qp热更更新 提供缓存服务 房东 Hybrid 这样真的不不影响⽤用户体验吗? + React Native
- 6.背景介绍 最初的解决⽅方案 更更新 Server 下载更更新包 上传 检查更更新 客户端 前端资源 房东 发布服务 打出QP包 填写Tag号 拉取线上资源 打包成 QP 需要配置⽂文件
- 7.背景介绍 打QP包的配置⽂文件 房东 index.yaml
- 8.背景介绍 最初的解决⽅方案 更更新 Server 下载更更新包 上传到更更新服务器器 检查更更新 客户端 前端资源 房东 发布服务 打出QP包 填写Tag号 多个项⽬目使⽤用了了同⼀一个服务,如何权限管理理 拉取线上资源 打包成 QP
- 9.背景介绍 简单粗暴暴的权限管理理 1、⼿手动维护⼀一个配置⽂文件,⽐比如叫hybrid.info 房东 2、发布服务中的脚本会拉取这个⽂文件,校验对应的⼈人是否有权限
- 10.背景介绍 最初的解决⽅方案 更更新 Server 下载更更新包 前端资源 上传到更更新服务器器 检查更更新 客户端 更更新逻辑 房东 发布服务 打出QP包 填写Tag号 拉取线上资源 打包成 QP
- 11.背景介绍 早期更更新逻辑 WiFi下 任意⽹网络下 下载、替换 在app启动的时候进⾏行行全量量更更新 房东 进每⼀一个hybri(或rn)⻚页⾯面都会单独更更新当前的qp包 只要有更更新,新启线程开始下载,下载完成直接替换,不不考虑 两个版本是否兼容
- 12.背景介绍 原始的诉求 • App Size不不能超 • 开发快:不不改变开发习惯,对前端透明 房东 • 体验好:需要良好的⽤用户体验 • 发版灵活:快速迭代、快速修复 早期的⽅方案还能满⾜足吗?
- 13.背景介绍 ⽅方案改进 热更更新 Server 打包脚本 房东 前端开发 完成 静态资源 Server 热更更新管 理理平台 差分Server 客户端SDK
- 14.背景介绍 ⽅方案改进 热更更新 Server 打包脚本 房东 前端开发 完成 静态资源 Server 热更更新管 理理平台 差分Server 客户端SDK 统计平台
- 15.背景介绍 ⽅方案改进 统计平台 热更更新 Server 客户端SDK 发现问题 发布 配置管理理 热更更新管 理理平台房东 更更新逻辑优化 强制更更新 加载qp包 校验qp包完整性 …… 权限管理理 灰度发布 下线、回滚 打包配置 ……
- 16.如何为框架优化提供数据⽀支持? • 离线包版本占⽐比 • 离线包版本趋势 • 离线包下载时间 • ⻚页⾯面加载时间 • ……
- 17.统计平台简介 离线包版本占⽐比 ⻢马 赛 克
- 18.统计平台简介 离线包版本趋势
- 19.统计平台简介 离线包下载时间
- 20.进⼀一步的改进 统计平台 发现问题 热更更新平台以及客户端如何使⽤用qp包 热更更新服 发布,配置 热更更新管 务 理理平台 客户端 SDK 更更新逻辑优化 强制更更新 加载qp包 校验qp包完整性 …… 权限管理理 灰度发布 下线、回滚 打包配置 ……
- 21.热更更新平台以及客户端如何使⽤用qp包 如何发布⼀一个qp包 进⼊入模块 创建模块 权限管理理 新建发布 编辑发布信息 打包(校验) 校验OK 发布(beta,灰度,全量量) 房东 发布的产物是什什么样⼦子? 下线 设置分⽔水岭 ⼆二次打包 线上故障,快速处理理 项⽬目下线了了,不不希望新版客户端再下载到qp
- 22.热更更新平台以及客户端如何使⽤用qp包 QP包的格式 Manifest 的内容,格式为JSON, 标示前端资源的md5和在qp⽂文件中 的偏移量量和⻓长度等 qp⽂文件类型标识 ① qp ① ② ② manifest lenght ④ ③ manifest content a.html Content Manifest 的⻓长度 …… a.js content 前端资源,包括html、js、css、png、ttf.... ③ ④
- 23.热更更新平台以及客户端如何使⽤用qp包 客户使⽤用QP包的逻辑https://qunar.com/a.js'>https://qunar.com/a.js