第一章 Electron介绍 | Electron in Action(中译) (6)

Electron运行packagemain脚本的进程被称为主进程。 这个文件可以命名任何您想要的名称,只要它正确地包含在package.json中。

 

主进程

主流程有几个重要的职责。它可以响应应用程序生命周期事件,例如启动、退出、准备退出、后台调用、前台跳转、等等。主过程也负责与本机操作系统接口通信。如果你想要显示对话框去打开或者保存文件,可以从主进程中执行。

 

渲染进程

主进程可以使用Electron浏览器窗口模块创建和销毁渲染器进程,渲染器进程可以加载web页面来显示用户界面。每一个进程利用Chromium的多进程架构,并在自己的线程上运行,然后,这些页面可以加载其他JavaScript文件并在此进程中执行代码。与普通web页面不同,你可以在自己的渲染进程中,访问所有Node APIs,允许使用本机模块和较低级别的系统交互。

每个渲染进程都是独立的,无法访问操作系统集成的接口。如果需要触发打开或保存文件对话框或访问任何其他操作系统集成。其对应的渲染进程必须与主进程进行通讯。

 

Electron vs. NW.js

Electron与另一个名为NW.js(以前称为node-webkit)的项目类似。这两者有很多共同之处。事实上,在开始研究电子之前,zcbenz(Electron项目发起者)是NW.js的重要贡献者。也就是说,它们在几个重要的方面是不同的,如表1.1所示。

 

         表1.1 Electron和NW.js之间的主要区别的比较

  Electron NW.js
平台   支持官方最新的Chromium版本   Chromium分支版本  
进程模型   分离进程模型   共享Node进程  
错误报告   内置   不支持  
自动更新       不支持  
Windows支持   Windows 7及以上   Windows XP及以上  

 

NW.js使用了一个Chromium的分支版本。Electron使用Chromium和Node.js并且不做任何修改。这使得Electron更容易跟上大多数Chromium和Node的最新版本。电子还包括自动下载更新和错误崩溃上报,NW.js不支持。

NW.js应用程序从HTML页面启动,每个浏览器窗口共享一个Node 进程。如果打开多个窗口,它们都共享同一个Node进程。Electron将Node和浏览器进程分开。在Electron,你从Node启动一个主进程。这个主进程可以打开浏览器窗口,每个都有自己的进程。电子提供了主进程和浏览器窗口之间的通讯接口,在这本书。我们称之为渲染进程

如果需要考虑向后兼容性,那么NW.js可能是更好的选择,因为它支持Windows XP和Vista。电子只支持Windows 7及以后。对于多媒体应用,Electron通常是更好的选择,因为Chromium的FFmpeg库是一个静态链接的依赖项,Electron支持更多开箱即用的依赖,用NW.js,您需要手动链接FFmpeg依赖项。

 

总结

Electron是一个使用web技术构建桌面应用程序的运行时框架。

该项目开始于GitHub,作为Atom文本编辑器的基础。

Electron结合Chromium模块-剥离版本的Chrome网络浏览器与Node。

这种组合允许您构建能够访问文件系统的应用程序以及编译模块,以及呈现UI和使用web api。

Electron被大大小小的应用程序所使用,如Atom,微软的Visual Studio Code和Slack。

对于那些不需要学习三种或更多语言,也不需要学习每个平台的框架,就想要针对一个以上平台的个人或小型团队来说,Electron非常适合。

Electron允许web开发人员使用他们现有的技能集来构建在浏览器环境中不可能实现的应用程序。

Electron紧跟Chromium和Node的最新版本,这意味着您可以使用web平台的最新和最强大的功能。

电子应用程序可以访问操作系统api,如应用程序和上下文菜单、文件打开和保存对话框、电池状态和电源设置等。

与基于浏览器的web应用程序相比,电子应用程序被允许具有增强的特权,并且对其功能的限制更少。

电子应用程序由一个主进程和一个或多个渲染程序组成。

主流程处理OS集成,管理应用程序的生命周期,并创建渲染器流程。

渲染器进程显示UI并响应用户事件。

Electron与NW.js的不同之处在于,它使用的是Chromium官方支持的内容模块。而NW,使用定制的Chromium。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyjyjp.html