字节跳动开源跨平台 UI 框架 Lynx:一套代码同时构建多端原生界面
字节跳动刚刚发布了最新开源项目 Lynx: Lynx 是一套帮助 Web 开发者复用现有经验,通过一份代码同时构建移动端原生界面与 Web 端界面的技术方案。 Lynx 专为多样化、富交互的场景打造,它有着高性能、多功能的渲染引擎、性能优先的双线程 UI 编程范式、以及基于 Rust 的现代工具链等诸多特性。 Lynx 最具代表性的架构决策之一是静态强制划分用户脚本的运行环境,将用户脚本拆分跑在了两个独立的运行时上: 主线程运行时,它由PrimJS这个专为 Lynx 优化的 JavaScript 引擎驱动,有着独享的同步 UI 操作权限,用于处理初始启动和高优事件处理等任务 后台运行时,作为用户代码的默认执行环境,以确保主线程的低负载和非阻塞。 这一架构带来了 Lynx 的两大杀手锏: 首帧直出 (Instant First-Frame Rendering,IFR):用研表明:如果渲染足够快(而 Lynx 正是如此),那么在界面过渡时就无需多余的反馈。Lynx 通过短暂阻塞主线程,确保首帧一次性完整呈现,因为用户不会看到空白,可以给用户带来一种即刻响应的感知体验。 主线程脚本 (Mai...
