首页 前端技术 Lynx:字节跳动开源的高性能跨平台 UI 框架

Lynx:字节跳动开源的高性能跨平台 UI 框架

字节跳动近期宣布开源其自研的跨平台 UI 框架 Lynx,该框架已在 TikTok 等应用中广泛使用,旨在帮助 Web 开发者利用现有技能,通过一套代码同时构建移动端原生界面与 Web 端界面。

Lynx 官网:https://lynxjs.org/

Lynx 框架简介

Lynx 是一个面向多端应用开发的高性能 UI 框架,支持使用 Web 标记语言、CSS 和 JavaScript 创建原生跨平台移动应用。其核心目标是为开发者提供接近原生体验的跨平台开发能力,提升开发效率和应用性能。

Lynx 的核心特性

1. 双线程架构

Lynx 采用静态强制划分用户脚本的运行环境,将用户脚本拆分为两个独立的运行时:主线程运行时和后台运行时。主线程运行时由专为 Lynx 优化的 JavaScript 引擎驱动,负责处理启动和高优先级事件;后台运行时作为用户代码的默认执行环境,确保主线程的低负载与非阻塞状态。

2. 首帧直出(IFR)

通过短暂阻塞主线程,Lynx 确保界面首帧一次性完整呈现,避免空白界面,为用户带来即时响应的流畅体验。

3. 主线程脚本(MTS)

Lynx 支持一小段静态调度的代码在主线程运行,用于处理高优先级事件和手势行为,实现原生般的交互触感。

4. 原生 CSS 支持

Lynx 原生支持 CSS 动画、过渡效果、选择器、变量,以及现代 CSS 视觉效果,如渐变、裁剪和遮罩,方便开发者进行界面设计。

使用 Lynx 构建应用

开发者可以使用熟悉的 Web 技术栈(HTML、CSS、JavaScript)在 Lynx 上进行开发。Lynx 提供了灵活的布局引擎,支持弹性盒布局(Flexbox)、绝对/相对定位、百分比尺寸和动态内容自适应等功能。

此外,Lynx 支持热更新和运行时热重载,使得 UI 调试和功能更新更加灵活高效。

Lynx 的性能表现

在实际应用中,Lynx 团队发现,从 Web 迁移到 Lynx 的界面普遍能够显著缩短启动时间,达到 2 至 4 倍的提升。内部性能测试显示,在 iOS 平台上,Lynx 的表现与同类技术不相上下;而在安卓平台上,Lynx 则持续保持领先地位。

Lynx GitHub开源地址

Lynx 项目已在 GitHub 上开源,地址为:https://github.com/lynx-family/lynx。开发者可以通过提交 Issue、Pull Request 等方式参与项目的开发和优化,共同推动 Lynx 的发展。

站心网

字节跳动近期宣布开源其自研的跨平台 UI 框架 Lynx,该框架已在 TikTok 等应用中广泛使用,旨在帮助 Web 开..

为您推荐

字节跳动发布首个AI IDE Trae编程工具

2025年3月3日,字节跳动以一场静默的技术革命引爆开发圈——中国首个AI原生集成开发环境Trae国内版正式发布。这款被称作“会思考的IDE”的工具,不仅能听懂人话写代码,甚至能端到端生成完整应..

鸿蒙OpenHarmony系统可以运行跨平台的.NET Core吗?

鸿蒙(HarmonyOS)和 OpenHarmony 系统本身并不原生支持直接运行 .NET Core,但可以通过一些方法使 .NET Core 应用在其上运行。鸿蒙和 OpenHarmony 是基于 LiteOS 和 Linux 内核的多终端操作系统,因此它们的运行时..

跨平台UI框架 MAUI Avalonia Flutter怎么选?

选择跨平台 UI 框架取决于你的项目需求、目标平台、开发团队的技能和框架的特点。以下是 MAUI、Avalonia 和 Flutter 的比较,帮助你做出合适的选择。1. .NET MAUI (Multi-platform App UI)微软推出的跨平台框架,可..

Three.js - 开源的 JavaScript 3D 图形库

Three.js 是一个开源的 JavaScript 3D 图形库,用于在 Web 浏览器中创建和渲染各种 3D 场景、动画和效果。它是基于 WebGL 技术的封装,简化了使用 WebGL 的复杂性,使开发者可以更轻松地创建交互式的 3D 网页应用。T..

.NET 高级程序员面试题和答案

在.NET高级程序员的面试中,通常会涉及到一系列深入的技术问题,这些问题旨在评估候选人的编程能力、系统设计理解以及对.NET平台和相关技术的掌握程度。以下是一些可能的面试问题及其简要答案:如何在Controller中注..

C++跨平台的Ini文件解析开源代码Leksys' INI Parser

前言Ini文件在Windows上可以使用GetPrivateProfileString系列函数,在Linux中也有多种可以选择的ini文件解析,比如iniparser,libconfini等,但这些库都需要链接一个动态库或静态库,在项目管理中有点不方便,Leksys..

发表回复

返回顶部

微信分享

微信分享二维码

扫描二维码分享到微信或朋友圈

链接已复制