首页 / 科技 / 智能家居 / 正文

shellexecuteex(Electron 24.0.0 正式发布)

放大字体  缩小字体 来源:中航工业集团公司 2026-04-15 13:32  浏览次数:9

大家好,我是Echa。

好消息,2023年4月4号 跨平台桌面应用开发工具 Electron 官方宣布 Electron 24.0.0 版本正式发布。距离上一个版本 Electron 23.0.0 版本(2023年2月7号),短短才56天时间。Electron 研发团队这研发速度惊人。一转眼 Electron 陪伴了大家十年了多时间,有兴趣可以看看小编之前发的 ntent="mp" data-source="innerlink" href="https://www.toutiao.com/article/7213010841720226338/" rel="noopener noreferrer noopener noreferrer" target="_blank">Electron 十年的发展史,记录了Electron 点点滴滴。作为一个跨平台桌面应用开发工具,发展到现在真心不容易。

这次 Electron 24.0.0 版本 包括了对 Chromium 112.0.5615.49、V8 11.2 和 Node.js 18.14.0 的升级和兼容。可以通过以下 npm 命令来安装该版本:

npm install electron@latest

如下图:

今天小编带领大家详细了解 Electron 以及最新版更新内容。

全文大纲

  1. Electron 前身
  2. Electron 介绍
  3. Electron 的原理
  4. Electron 的价值
  5. Electron 部署搭建
  6. Electron 优缺点
  7. Electron 24.0.0 版本更新内容

Electron 前身

Electron 最初由赵成和 GitHub 的工程师于 2013 年4月创建,当时名字为 Atom Shell,用来服务于 GitHub 的开发工具 Atom,2014 年5月开源,2015 年4月才正式更名为 Electron。目前 GitHub 公司内部仍有一个团队在维护这个开源项目,且社区内也有很多的贡献者。
Electron 更新非常频繁,平均一到两周就会有新版本发布,Issue 和 Pull request 的回复也非常及时,一般关系到应用崩溃的问题(Crash Issue)一两天就能得到回复,普通问题一周内也会有人跟进。社区活跃程度由此可见一斑。


Electron 原作者 赵成


发起者是中国人

与 Electron 类似的另外一个框架是 NW.js,它们都是用 Web 前端技术来开发桌面 GUI 程序。

Electron VS NW.js

Electron 前身是atomshell,NW.js 前身是Node-Webkit。区别:

  • 程序入口

NW.js 以网页为入口,Electron 以js 为入口,Electron 更加灵活。例如可以开发纯菜单应用。

  • 编译系统

Electron 使用 libchromiumcontent,比NW.js 编译应用的时候,省去编译整个 Chromium (编译Chromium 非常费时)。

  • Node 集成

NW.js 的 Node 集成需要给 Chromium 打补丁才能工作。Electron 通过集成 libuv loop 和 平台的 message loop 避免给 Chromium 打补丁。

  • Multi-context

NW.js 创造了 Node context 和 web context 的概念,而 Electron 没有引入新的 context,而是直接使用 Node 的 Multi-context 特性(这一特性是 Atom 开发者赞助 Node 添加的)。

  • Electron 不支持XP

这两个框架都与中国人有极深的渊源,2011 年左右,中国英特尔开源技术中心的王文睿(Roger Wang)希望能用 Node.js 来操作 WebKit,而创建了 node-webkit 项目,这就是 NW.js 的前身,但当时的目的并不是用来开发桌面 GUI 应用。

中国英特尔开源技术中心大力支持了这个项目,不仅允许王文睿分出一部分精力来做这个开源项目,还给了他招聘名额,允许他招聘其他工程师来一起完成


2012 年,故事的另一个主角赵成(Cheng Zhao)加入王文睿的小组,并对 node-webkit 项目做出了大量的改进。
后来赵成离开了中国英特尔开源技术中心,帮助 GitHub 团队尝试把 node-webkit 应用到 Atom 编辑器上,但由于当时 node-webkit 并不稳定,且 node-webkit 项目的走向也不受赵成的控制,这个尝试最终以失败告终。
但赵成和 GitHub 团队并没有放弃,而是着手开发另一个类似 node-webkit 的项目——Atom Shell,这个项目就是 Electron 的前身。赵成在这个项目上倾注了大量的心血,这也是这个项目后来广受欢迎的关键因素之一。再后来 GitHub 把这个项目开源出来,最终更名为 Electron。
你可能从没听说过这两个人的名字,但开源界就是有这么一批“英雄”,他们不为名利而来,甘做软件行业发展的铺路石,值得这个领域的所有从业者尊敬。

现如今赵成好像已经不再负责Electron项目的管理工作了。而是交棒给了一个小姐姐了,就是这张照片里的C位女孩儿:Shelley(codebytere)。


Electron 研发团队


这个女孩儿也厉害的很,在做Electron开发工作的同时,还是nodejs、tc39和openjs-foundation的成员。不过小编个人感觉她对待开发者,提的Issue和PR比较草率,没有赵成认真。

Electron 介绍

官网:https://www.electronjs.org/

Github:https://github.com/electron/electron

基于chrome 内核 + nodeJS 服务 + Html5 展现来开发的桌面软件,可以轻易的跨平台。例如Visual Studio Code、Slack 、Atom 等等桌面端软件都是使用Electron 开发的。

如下图:


桌面应用软件都是使用Electron 开发的


Chromium+Nodejs+Native apis=Electron

Chromium : 为Electron提供了强大的UI能力,可以不考虑兼容性的情况下,利用强大的Web生态来开发界面。electron本质上就是chromium(chrome开源版本)浏览器,最新的东西都会在chromium测试,所以electron可以体验最新的api,这也是好处之一)


Chromium 多进程架构图


如果想开发一个桌面 GUI 应用软件,希望其能同时在 Windows、Linux 和 Mac 平台上运行,可选的技术框架并不多,在早期人们主要使用以下三个框架来完成这类工作:

  • wxWidgets:https://www.wxwidgets.org
  • GTK:https://www.gtk.org
  • Qt:https://www.qt.io


这三个框架都是用 C/C++ 语言开发的,受语言开发效率的限制,开发者想通过它们快速地完成桌面应用的开发工作十分困难。
近几年相继出现了针对这些框架的现代编程语言绑定库,诸如 Python、C#、Go 等,大部分都是开源社区提供的,但由于历史原因,要想用到这些框架的全部特性,还是需要编写 C/C++ 代码。并且由于几乎没有高质量的 Node.js 的绑定库,前端程序员想通过这三个框架开发桌面应用更是难上加难。
Stack Overflow 的联合创始人 Jeff Atwood 曾经说过,凡能用 Javascript 实现的,注定会被用 Javascript 实现。桌面 GUI 应用也不例外,近几年两个重量级框架 NW.js和 Electron横空出世,给前端开发人员打开了这个领域的大门。

electron 其实就是个壳子,一个可以展示网页内容的壳子,相当于一个独立的浏览器,而这个浏览器可以提供给你一些接口,去调用系统的资源。

一般在浏览器中网页是没有权限去调用系统资源的,本地文件都无法自主获取,只能通过用户操作喂给浏览器才行。

有了 electron 就自由了,可以调用 electron 提供的一些系统功能,所有 nodejs 中可以使用的功能都可以。



  • 支持Chrome 111



  • 支持DevTools 112


  • 结束对 21.x.y 的支持

根据项目的支持政策,Electron 21.x.y 已终止支持。鼓励开发人员和应用程序升级到更新版本的 Electron。


最后

一台电脑,一个键盘,尽情挥洒智慧的人生;几行数字,几个字母,认真编写生活的美好;

一 个灵感,一段程序,推动科技进步,促进社会发展。

创作不易,喜欢的老铁们加个关注,点个赞,打个赏,后面会不定期更新干货和技术相关的资讯,速速收藏,谢谢!你们的一个小小举动就是对小编的认可,更是创作的动力。

打赏
0相关评论
热门搜索排行
精彩图片
友情链接
声明:本站信息均由用户注册后自行发布,本站不承担任何法律责任。如有侵权请告知立立即做删除处理。
违法不良信息举报邮箱:115904045
头条快讯网 版权所有
中国互联网举报中心