字節跳動開源跨平臺UI框架Lynx:一套程式碼同時構建多端原生介面

OSCHINA
↑點選藍字 關注我們
字節跳動釋出了最新開源專案 Lynx:
Lynx 是一套幫助 Web 開發者複用現有經驗,透過一份程式碼同時構建移動端原生介面與 Web 端介面的技術方案。
Lynx 專為多樣化、富互動的場景打造,它有著高效能、多功能的渲染引擎、效能優先的雙執行緒 UI 程式設計正規化、以及基於 Rust 的現代工具鏈等諸多特性。
Lynx 最具代表性的架構決策之一是靜態強制劃分使用者指令碼的執行環境,將使用者指令碼拆分跑在了兩個獨立的執行時上:
  • 主執行緒執行時,它由 PrimJS 這個專為 Lynx 最佳化的 JavaScript 引擎驅動,有著獨享的同步 UI 操作許可權,用於處理初始啟動和高優事件處理等任務
  • 後臺執行時,作為使用者程式碼的預設執行環境,以確保主執行緒的低負載和非阻塞。
這一架構帶來了 Lynx 的兩大殺手鐧:
  1. 首幀直出 (Instant First-Frame Rendering,IFR):用研表明:如果渲染足夠快(而 Lynx 正是如此),那麼在介面過渡時就無需多餘的反饋。Lynx 透過短暫阻塞主執行緒,確保首幀一次性完整呈現,因為使用者不會看到空白,可以給使用者帶來一種即刻響應的感知體驗。
  2. 主執行緒指令碼 (Main Thread Script,MTS):它是一小段靜態排程的程式碼,被授予在主執行緒執行的權力,用於處理高優的事件和手勢行為,非常適合那些要求極致跟手、快速響應的場景,以實現原生互動觸感。
GitHub 地址:https://github.com/lynx-family/lynx
開源公告:https://lynxjs.org/zh/blog/lynx-unlock-native-for-more
END
熱門文章
分享在看點贊~Orz

相關文章