Electron:修订间差异
创建页面,内容为“Electron(原名:Atom Shell)是由 GitHub 开发、现由 OpenJS Foundation 与开发者社区共同维护的开源跨平台桌面应用开发框架,基于 Chromium 渲染引擎与 Node.js 运行时构建,允许开发者使用 HTML、CSS 和 JavaScript 等 Web 技术构建兼容 Windows、macOS 及 Linux 的原生桌面应用程序。<ref name=":0">[https://baike.baidu.com/item/Electron/60878453 Electron_百度百科]</ref><ref name=":1">[https://elect…” |
无编辑摘要 |
||
| 第4行: | 第4行: | ||
|- | |- | ||
! colspan="2" style="text-align:center;" | '''Electron''' | ! colspan="2" style="text-align:center;" | '''Electron''' | ||
|- | |- | ||
| 外文名 || '''Electron''' | | 外文名 || '''Electron''' | ||
| 第17行: | 第15行: | ||
| 稳定版本 || '''42.3.3(2026年)''' | | 稳定版本 || '''42.3.3(2026年)''' | ||
|- | |- | ||
| 编程语言 || '''JavaScript | | 编程语言 || '''[[JavaScript]]、[[C++]]、[[Python]]''' | ||
|- | |- | ||
| 操作系统 || '''Windows、macOS、Linux''' | | 操作系统 || '''Windows、macOS、Linux''' | ||
| 第25行: | 第23行: | ||
| 软件类型 || '''桌面应用开发框架''' | | 软件类型 || '''桌面应用开发框架''' | ||
|- | |- | ||
| 许可协议 || '''MIT License''' | | 许可协议 || '''[[MIT License]]''' | ||
|- | |- | ||
| 官方网站 || '''[https://electronjs.org/ electronjs.org]''' | | 官方网站 || '''[https://electronjs.org/ electronjs.org]''' | ||
| 第38行: | 第36行: | ||
== 历史 == | == 历史 == | ||
Electron 的前身名为 Atom Shell,最初是 GitHub 为开发其开源文本编辑器 Atom 而构建的附属项目。<ref name=":3" /> 2014 年 4 月,Atom Shell 以 beta 版本形式公开发布;随着该框架的影响力逐渐超越 Atom 本身,项目于 2015 年正式更名为 Electron,并作为独立专案进行维护。<ref name=":0" /> 此后,Electron 交由 OpenJS Foundation 管理,由活跃的全球贡献者社区持续维护与迭代。<ref name=":1" /> | Electron 的前身名为 Atom Shell,最初是 [[GitHub]] 为开发其开源文本编辑器 Atom 而构建的附属项目。<ref name=":3" /> 2014 年 4 月,Atom Shell 以 beta 版本形式公开发布;随着该框架的影响力逐渐超越 Atom 本身,项目于 2015 年正式更名为 Electron,并作为独立专案进行维护。<ref name=":0" /> 此后,Electron 交由 OpenJS Foundation 管理,由活跃的全球贡献者社区持续维护与迭代。<ref name=":1" /> | ||
== 技术架构 == | == 技术架构 == | ||
| 第44行: | 第42行: | ||
=== 核心组成 === | === 核心组成 === | ||
Electron 的技术本质可概括为 Chromium 与 Node.js 的组合体。<ref name=":3" /> Chromium 内核负责提供现代浏览器的 | Electron 的技术本质可概括为 [[Chromium]] 与 [[Node.js]] 的组合体。<ref name=":3" /> [[Chromium]] 内核负责提供现代浏览器的 [[HTML]]5、[[CSS]]3 渲染能力及 [[JavaScript]] 引擎;[[Node.js]] 运行时则赋予应用访问底层系统 API、文件系统及网络模块的能力。<ref name=":1" /> 两者通过 Electron 封装的 IPC 模块实现主进程(Main Process)与渲染进程(Renderer Process)之间的通信。 | ||
=== 进程模型 === | === 进程模型 === | ||
| 第54行: | 第52行: | ||
=== 跨平台支持 === | === 跨平台支持 === | ||
Electron 提供统一的 API 抽象层,同一套代码库可编译为 Windows(ia32、x64、arm64)、macOS(Intel 及 Apple Silicon)和 Linux 平台的可执行程序。<ref name=":2" /> 其版本发布与 Chromium 大版本保持同步,确保安全补丁及时跟进。<ref name=":1" /> | Electron 提供统一的 API 抽象层,同一套代码库可编译为 [[Windows(操作系统)|Windows]](ia32、x64、arm64)、macOS(Intel 及 Apple Silicon)和 [[Linux]] 平台的可执行程序。<ref name=":2" /> 其版本发布与 [[Chromium]] 大版本保持同步,确保安全补丁及时跟进。<ref name=":1" /> | ||
=== 原生系统访问 === | === 原生系统访问 === | ||
通过 Node.js 集成,Electron 应用可调用操作系统原生接口,包括自定义应用菜单、对话框、系统通知、全局快捷键、文件拖放及自动更新模块(autoUpdater)等。<ref name=":1" /> | 通过 [[Node.js]] 集成,Electron 应用可调用操作系统原生接口,包括自定义应用菜单、对话框、系统通知、全局快捷键、文件拖放及自动更新模块(autoUpdater)等。<ref name=":1" /> | ||
=== 打包与分发 === | === 打包与分发 === | ||
Electron 社区提供 Electron Forge、electron-builder 等工具链,支持生成平台特定的安装包格式,如 Windows 的 .msi / .exe | Electron 社区提供 Electron Forge、electron-builder 等工具链,支持生成平台特定的安装包格式,如 Windows 的 .msi / .exe、[[macOS]] 的 .dmg 以及 Linux 的 .rpm / .deb 等。<ref name=":1" /> | ||
== 典型应用 == | == 典型应用 == | ||
| 第68行: | 第66行: | ||
Electron 框架已被广泛应用于消费级与企业级桌面软件的开发,代表性应用包括:<ref name=":1" /><ref name=":2" /> | Electron 框架已被广泛应用于消费级与企业级桌面软件的开发,代表性应用包括:<ref name=":1" /><ref name=":2" /> | ||
* '''Visual Studio Code''':微软开发的跨平台源代码编辑器 | * '''[[Visual Studio Code]]''':微软开发的跨平台源代码编辑器 | ||
* '''Atom''':GitHub 推出的开源文本编辑器(Electron 的起源项目) | * '''Atom''':GitHub 推出的开源文本编辑器(Electron 的起源项目) | ||
* '''Slack''':团队协作通讯工具 | * '''Slack''':团队协作通讯工具 | ||
* '''Discord''':即时通讯与社区平台 | * '''[[Discord]]''':即时通讯与社区平台 | ||
* '''GitHub Desktop''':GitHub 官方桌面客户端 | * '''[[GitHub Desktop]]''':GitHub 官方桌面客户端 | ||
* '''Postman''':API 测试与开发工具 | * '''Postman''':API 测试与开发工具 | ||
* '''Figma''':界面设计工具(桌面端) | * '''Figma''':界面设计工具(桌面端) | ||
| 第79行: | 第77行: | ||
== 争议与评价 == | == 争议与评价 == | ||
Electron 因基于 Chromium 内核,常被批评应用体积较大且内存占用较高。<ref name=":4">[https://www.21cto.com/article/3681504305357682 几个桌面应用开发框架比较:Electron、Flutter、Tauri - 21CTO]</ref> 部分厂商因此转向更轻量的替代方案,如微软新版 Teams 即从 Electron 迁移至 Microsoft Edge WebView2 以提升性能并减少内存消耗。<ref name=":5">[https://mp.weixin.qq.com/s?__biz=MzI4MDQwMzk3OQ==&mid=2247545443&idx=1&sn=ae3e1fcde53752bb015bfa1857535d55 腾讯两则消息:公司的第一个专利是Pony马的成果,十年"屎山"终重构,QQ选用了友商放弃的Electron]</ref> 尽管如此,Electron 凭借 Web 技术栈的低门槛、丰富的 npm 生态及活跃的社区支持,仍是当前跨平台桌面开发的主流方案之一。<ref name=":4" /> | Electron 因基于 [[Chromium]] 内核,常被批评应用体积较大且内存占用较高。<ref name=":4">[https://www.21cto.com/article/3681504305357682 几个桌面应用开发框架比较:Electron、Flutter、Tauri - 21CTO]</ref> 部分厂商因此转向更轻量的替代方案,如微软新版 Teams 即从 Electron 迁移至 [[Microsoft Edge WebView2]] 以提升性能并减少内存消耗。<ref name=":5">[https://mp.weixin.qq.com/s?__biz=MzI4MDQwMzk3OQ==&mid=2247545443&idx=1&sn=ae3e1fcde53752bb015bfa1857535d55 腾讯两则消息:公司的第一个专利是Pony马的成果,十年"屎山"终重构,QQ选用了友商放弃的Electron]</ref> 尽管如此,Electron 凭借 Web 技术栈的低门槛、丰富的 npm 生态及活跃的社区支持,仍是当前跨平台桌面开发的主流方案之一。<ref name=":4" /> | ||
== 参考文献 == | == 参考文献 == | ||
<references /> | <references /> | ||
2026年6月5日 (五) 05:40的版本
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