跳转到内容

Electron

来自轻之舟百科

Electron(原名:Atom Shell)是由 GitHub 开发、现由 OpenJS Foundation 与开发者社区共同维护的开源跨平台桌面应用开发框架,基于 Chromium 渲染引擎与 Node.js 运行时构建,允许开发者使用 HTMLCSSJavaScript 等 Web 技术构建兼容 WindowsmacOSLinux 的原生桌面应用程序。[1][2][3]

Electron
外文名 Electron
别名 Atom Shell(原名)
开发者 GitHub / OpenJS Foundation
首次发布 2014年4月(beta版)
稳定版本 42.3.3(2026年)
编程语言 JavaScriptC++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 的技术本质可概括为 ChromiumNode.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]

参考文献

[编辑 | 编辑源代码]