Electron
Electron(原名:Atom Shell)是由 GitHub 開發、現由 OpenJS Foundation 與開發者社區共同維護的開源跨平台桌面應用開發框架,基於 Chromium 渲染引擎與 Node.js 運行時構建,允許開發者使用 HTML、CSS 和 JavaScript 等 Web 技術構建兼容 Windows、macOS 及 Linux 的原生桌面應用程式。[1][2][3]
| Electron | |
|---|---|
| 外文名 | Electron |
| 別名 | Atom Shell(原名) |
| 開發者 | GitHub / OpenJS Foundation |
| 首次發布 | 2014年4月(beta版) |
| 穩定版本 | 42.3.3(2026年) |
| 編程語言 | JavaScript、C++、Python |
| 作業系統 | Windows、macOS、Linux |
| 平台 | 跨平台 |
| 軟件類型 | 桌面應用開發框架 |
| 許可協議 | MIT License |
| 官方網站 | electronjs.org |
| 源碼倉庫 | GitHub |
概述
Electron 是一款開源的跨平台桌面應用開發框架,其核心架構由 Chromium 瀏覽器引擎與 Node.js 運行時環境組合而成,兩者之間通過 IPC(進程間通信)機制進行交互。[4] 開發者可藉助前端技術棧構建具備原生系統訪問能力的桌面程序,包括文件系統讀寫、系統通知調用及硬件交互等功能。[2] Electron 兼容 macOS(Monterey 及以上)、Windows 10/11 及主流 Linux 發行版,並提供 x64、ARM64 等多架構支持。[3]
歷史
Electron 的前身名為 Atom Shell,最初是 GitHub 為開發其開源文本編輯器 Atom 而構建的附屬項目。[4] 2014 年 4 月,Atom Shell 以 beta 版本形式公開發布;隨着該框架的影響力逐漸超越 Atom 本身,項目於 2015 年正式更名為 Electron,並作為獨立專案進行維護。[1] 此後,Electron 交由 OpenJS Foundation 管理,由活躍的全球貢獻者社區持續維護與迭代。[2]
技術架構
核心組成
Electron 的技術本質可概括為 Chromium 與 Node.js 的組合體。[4] Chromium 內核負責提供現代瀏覽器的 HTML5、CSS3 渲染能力及 JavaScript 引擎;Node.js 運行時則賦予應用訪問底層系統 API、文件系統及網絡模塊的能力。[2] 兩者通過 Electron 封裝的 IPC 模塊實現主進程(Main Process)與渲染進程(Renderer Process)之間的通信。
進程模型
Electron 採用多進程架構。主進程負責管理應用生命周期、創建瀏覽器窗口及調用原生 API;每個 BrowserWindow 實例對應獨立的渲染進程,負責頁面 UI 渲染。[2] 該模型與 Chromium 的多進程架構保持一致,可有效隔離單個窗口的崩潰風險。
功能特性
跨平台支持
Electron 提供統一的 API 抽象層,同一套代碼庫可編譯為 Windows(ia32、x64、arm64)、macOS(Intel 及 Apple Silicon)和 Linux 平台的可執行程序。[3] 其版本發布與 Chromium 大版本保持同步,確保安全補丁及時跟進。[2]
原生系統訪問
通過 Node.js 集成,Electron 應用可調用作業系統原生接口,包括自定義應用菜單、對話框、系統通知、全局快捷鍵、文件拖放及自動更新模塊(autoUpdater)等。[2]
打包與分發
Electron 社區提供 Electron Forge、electron-builder 等工具鏈,支持生成平台特定的安裝包格式,如 Windows 的 .msi / .exe、macOS 的 .dmg 以及 Linux 的 .rpm / .deb 等。[2]
典型應用
Electron 框架已被廣泛應用於消費級與企業級桌面軟件的開發,代表性應用包括:[2][3]
- Visual Studio Code:微軟開發的跨平台原始碼編輯器
- Atom:GitHub 推出的開源文本編輯器(Electron 的起源項目)
- Slack:團隊協作通訊工具
- Discord:即時通訊與社區平台
- GitHub Desktop:GitHub 官方桌面客戶端
- Postman:API 測試與開發工具
- Figma:界面設計工具(桌面端)
- Microsoft Teams(舊版):微軟協作平台
爭議與評價
Electron 因基於 Chromium 內核,常被批評應用體積較大且內存佔用較高。[5] 部分廠商因此轉向更輕量的替代方案,如微軟新版 Teams 即從 Electron 遷移至 Microsoft Edge WebView2 以提升性能並減少內存消耗。[6] 儘管如此,Electron 憑藉 Web 技術棧的低門檻、豐富的 npm 生態及活躍的社區支持,仍是當前跨平台桌面開發的主流方案之一。[5]
參考文獻
- ↑ 1.0 1.1 Electron_百度百科
- ↑ 2.0 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 Build cross-platform desktop apps with JavaScript, HTML, and CSS | Electron
- ↑ 3.0 3.1 3.2 3.3 GitHub - electron/electron
- ↑ 4.0 4.1 4.2 Electron跨平台桌面應用程式開發框架入門簡介及學習筆記 - 知乎
- ↑ 5.0 5.1 幾個桌面應用開發框架比較:Electron、Flutter、Tauri - 21CTO
- ↑ 騰訊兩則消息:公司的第一個專利是Pony馬的成果,十年"屎山"終重構,QQ選用了友商放棄的Electron