Web Compass--端内 Web App 解决方案揭秘

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. Web Compass -- 端内 Web App 解决方案揭秘 赵鸿彬(齐誉) 阿里巴巴 - 智能信息事业群 - U4 内核研发团队
2. 目录 01 现状与挑战 02 Web Compass 方案揭秘 03 总结与规划
3.
4. 现状与挑战
5. 当前现状 图引用自:「100 Cool Web Moments」 图引用自:「How Progressive Web Apps can drive business success」 Web 网页级体验越来越好 业界逐渐往「Web App」方向发力 • • 设备性能、网络环境等明显提升 Web 引擎能力及体验改善明显 • 纯网页级体验,不能很好满足业务逐步复杂 化的诉求 • 前端及容器技术快速发展 • 业界涌现很多优秀方案,如 PWA
6. 面临挑战 挑战:优化成本高,能力差异多,体验有上限 静态资源 动态数据 逻辑执行 操作体验 HTTP Cache Application Cache Service Worker ... AJAX Worker Local / Session Storage ... Async Simplify ... SPA MPA ...
7. 探索端内 Web App 方案 PWA 类小程序 亮点 •标准的 Web App 方案 •ServiceWorker 开发模式 •较多 App 能力:Web Push、App Shortcuts 亮点 •多端投放统一 •统一的应用级样式与操作体验 •新的开发模式,逻辑执行与渲染分离 挑战 •能力碎片化,iOS 进展缓慢 •改造成本高,首次性能差 •多页体验未有质的提升 •端内适用性差 挑战 •专属 DSL,改造成本高 •逻辑与渲染分离的模式,部分场景不 一定是最优选择 •框架相对黑盒 能否借助客户端能力,让传统 Web 能低成本达到 Web App 级体验?
8. Web Compass 方案揭秘
9. Web Compass:端内 Web App 解决方案 增强能力 (统一 SDK) 传统 Web 双平台统一 端能力融合 体验辅助 端智能 离线包 动态数据 Web 容器 JS Worker 资源服务 前端增强 渐进增强 工程化 极致体验 (低成本方案) 高可用 高性能 全链路打通 面向开发者 极致首屏 流畅操作 U4 内核增强
10. Web Compass:整体架构概览 高可用 Web 业务 Web 容器 基础模块 前端 高性能模块 增强模式 Manifest 通用预取 App 模式 JS Worker 通用预渲染 JS AOT 策略 工程化 多进程策略 WebView Pool U4 WebView ... ES6 运行时 ... WKWebView 后端 预渲染 混合渲染 游戏模式 高延迟渲染 混合渲染 SSR 网络托管 JS AOT JS Bridge 混合光栅化 多进程 ESR Lottie 增强 性能指标 ... 多 Render 进程 GPU 独立进程 资源服务 网络库 基于 Web Bundles 标准的离线包 SDK 管理平台 开 发 辅 助 调 试 工 具 验 收 卡 口 上 线 监 控
11. Web 容器:双平台一致的增强能力 • 自定义 App 模式: Native、Web 混合,提升多页体验 • 端能力融合: 将端能力、处理时机、优化策略等与 Web 深度融合,全链路打造更极致体验 • 端能力透出: 如通过 JS API 进行扩展,提供端内的分享、长截图等能力 Top Bar WebView Bottom Bar WebView A 配置 Manifest B C 单页模式 • Bar 可选 • Bar 有限自 定义样式 • Bar 使用 Native 实现 半屏模式 • 自定义高度 • 上拖吸顶 Native / Web WebView … 多 Tab 模式 • Tab 样式自 定义 • Tab 使用 Natvie 实现 • 顶部 / 底部 自主选择 1 2 ... < WebView > 根据 Manifest 生成 App 模式 Swiper 模式 • 可左右滑动 • Tab 可选 Native / Web 实现 • 顶部 / 底部 自主选择 半屏 + Swiper 模式效果
12. 资源服务 Web 最需要什么样的「离线」资源方案? 更标准 标准化的离线包能力 弱感知 「0」成本的使用方式 • • • • 基于 Web Bundles 标准实现的离线包 SDK 扩充能力,支持边下边用、增量更新等传输能力 基于通用缓存架构,无需关注缓存状态 扩充能力,支持任意时机进行预取
13. 资源服务:离线包能力 基于 Web Bundles 标准的「离线」资源 SDK 图引用自:「Get started with Web Bundles」 Web Bundle 边下边用 内存缓存 Manifest 增量更新 动态请求 断点续传 磁盘缓存 资源类型 传输能力 缓存模式
14. 资源服务:通用缓存架构 传统方案 提前下载 资源缓存 • • 优化方案 加载资源 加载资源 Web 资源请求 资源请求 Native 请求拦截 网络库 Flutter 网络库 资源缓存 联网请求 联网请求 需要感知拦截动作,如前端使用的 Worker 方案 性能存在瓶颈,如客户端通过 shouldInterceptRequest 进行拦截 提前下载 • • 结合网络库,打通资源缓存机制,开发者无感知 方案更通用,能覆盖多端多技术栈
15. 资源服务:通用预取 等待完成 传统方案:依赖端或者 Worker,链路长且有改造成本 端提前处理 启动 Worker 执行 JS 发起预取 缓存 是 是否 成功 否 原流程处理 查询 / 获取 端启动 访问 Web 页面 加载主文档 解析 / 排版 执行 JS 加载资源 / 动态数据 首屏渲染完成 普通请求,如 XHR 访问时发起,无浪费(主文档、数据请求等) 端提前处理 获取 Manifest 解析预取配置 优化方案:性能、效率、服务器负载综合最优解 资源服务 发起预取 网络库 资源缓存 下一页预取,可以是 Web Bundles、资源、动态数据
16. JS 性能优化 图引用自:「JavaScript Start-up Performance」 JS 执行性能 JS Bridge 性能 强动态化的 JIT 语言,执行逻辑前,需加载、解析、编译 客户端应用常用技术,是否存在性能瓶颈? 等处理,存在可优化空间 能否优化?
17. JS 性能优化:Ahead Of Time 方案 基本能带来 AOT 效果,首次 JS 性能提升 40+% 访问 Web 页面 客户端 二次访问使用 字节码缓存 增量更新 保存 加载、解析、... 加载 JS 数据 抽象语法树 字节码 执行 U4 内核 预热 下载离线包 / Manifest 端容器 读取规则 / 配置 本地规则:下发生成规则,本地提前生成 离线规则:服务器生成,下发字节码
18. JS 性能优化:优化 Bridge 性能瓶颈 去除 UI 线程限制,API 执行耗时减少 30+% UI 线程 (客户端) addJavaScriptInterface X evaluateJavaScript X 执行 Java 实现 Worker 线程 (客户端) Render 线程 (U4 内核) 排队,可能高 达几百毫秒 注入 JS,执行结果返回逻辑 直接 返回 注入对象 调用 JS Bridge API 接收结果 1. 注入 JS,绑定 Java 2. 执行开始 2. 执行结束
19. JS Worker:全能辅助 App 存储 多页管理 自定义逻辑 预测 多页数据共享 全局存储 ... 多页切换 状态同步 ... 自定义预取 并行 / 前置逻辑 ... 自主控制 端智能 ... …
20. 更多增强能力 首屏性能 渲染性能 互动增强 渲染方案 预渲染 混合光栅化 游戏模式 Native Side Render 标准及上屏事件管控 高延迟渲染流水线 Lottie 增强 Server Side Render 多 Render 进程 渲染高可用 Web AR Edge Side Render ... ... ... ...
21. 高可用 全链路覆盖 全研发周期覆盖 前端、客户端、容器、渲染引擎等多端打通 面向开发者提效,如打造 Web 可用性保障和卡口,如白屏、卡死、异常等 统一调试能力 异常情况尝试自恢复 ...
22. Web 统一调试能力 基于 Chromium DevTools 架构 • 复用 DevTools 能力,可快速跟进社区演进 • 兼容多个引擎版本 双平台调试能力一致 Devtools Discovery & Inspector • 支持有线(iOS)和无线(Android)调试 • 客户端能力、容器能力、离线包、App 容器 、Manifest 等增强调试功能 Web Socket Proxy Server ADB / TCP U4 内核增强模式 • 动态切核 • 内核功能调试 / 分析增强,如首屏性能、多 进程等 Devtools Discovery & Inspector Web Socket Local Agent USB / Web Socket Web Engine Web Engine Chomium Devtools 架构 Compass Devtools 架构
23. 总结与规划
24. 小结:开发者友好的 Web App 方案 基于传统 Web,低成本投入,即可达到 Web App 级体验 传统 Web 开发 前 端 Compass 增强能力 投 放 客户端 Web 业务 U4 WebView Web 容器 WKWebView 资源服务 JS Worker
25. 实际业务效果 首屏耗时达到秒开体验的 Web 业务比例从 30+% 提升至 80+%,部份场景体验接近于 Native 中端机 低端机
26. 规划:Web Compass 2.0 更标准、更一体化的一站式前端开发框架 带默认推荐, 可灵活替换 前端开发框架 Compass 增强式 DSL 组件库 Web 容器 U4 5.0 内核: • 框架增强,如 JS Snapshot • 架构升级,如多进 程、渲染架构等 • 能力增强,如互动 场景、WebXR、 多媒体等 U4 WebView WKWebView 资源服务 JS Worker 面向 多端 融合 优化
27. 扫码回复「D2」 获取第十七届 D2 演讲 PDF 材料 微信扫码关注「U4 内核技术」 了解更多 U4 内核技术内幕的分享 后续也将推送 D2 会后技术文章,敬请关注!!
28. 感谢大家观看

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