Electron 相关术语


本文介绍了一些Electron 开发中的相关术语(Glossary)。

  1. ASAR
  2. CTR
  3. DMG
  4. IME
  5. IDL
  6. IPC
  7. libchromiumcontent
  8. 主进程(main process)
  9. MAS
  10. Mojo
  11. 原生模块(native modules)
  12. NSIS
  13. OSR
  14. 进程(process)
  15. 渲染进程(renderer process)
  16. Squirrel
  17. 用户区(userland)
  18. V8
  19. webview

1. ASAR

ASAR表示Atom Shell Archive Format(Atom Shell打包格式)。asar打包文件是一种简单的类似tar的格式,可以将多个文件连接成单个文件。Electron可以从其中读取任意文件,而无需解压。

创建ASAR格式主要是为了提高Windows上的性能。


2. CTR

C运行时库(CRT,C Run-time Library)是包含ISO C99标准库的C++标准库的一部分。用于实现CRT的Visual C ++库支持本机代码开发、本机代码和托管代码的混合、以及用于.NET开发的纯托管代码。


3. DMG

Apple Disk Image)是macOS使用的打包格式。DMG文件通常用于发布应用“安装器”。electronic-builder支持dmg构建目标。


4. IME

Input Method Editor,该程序允许用户输入键盘上没有的字符和符号。例如,允许在拉丁文键盘的用户输入中文、日文、韩文和印度文字符。


5. IDL

接口描述语言(Interface description language)。以可用于生成Java、C++、JavaScript等接口的格式编写函数签名和数据类型。


6. IPC

I进程间通信(Inter-Process Communication)。Electron使用IPC在主进程渲染器进程之间发送序列化的JSON消息。


7. libchromiumcontent

包含Chromium Content模块及其所有依赖项(如:Blink、V8等)的共享库。也称为"libcc"


8. 主进程(main process)

主进程通常是一个名为main.js的文件,是每个Electron应用的入口。它控制着应用从打开到关闭的生整个命周期。它还管理Menu、Menu Bar、Dock、Tray等本地元素。主进程负责在应用程序中创建每个新的渲染进程。内置了完整的Node API。

每个应用的主进程文件都在package.jsonmain属性中指定。这就是在以electron .的方式启动执行时,知道执行什么文件的方式。

在Chromium中,此进程称为“浏览器进程”(browser process)。在Electron中将其重命名是为了避免与渲染进程混淆。

另请参见:进程渲染进程


9. MAS

Apple's Mac App Store的缩写。有关将应用提交到MAS的详细信息,请参阅Mac App Store提交指南


10. Mojo

一个IPC系统,用于在进程内或进程间的通信,这一点很重要,因为Chrome一直希望能够根据内存压力等判断是否将其工作拆分为单独的进程。

参阅:chromium.googlesource.com/chromium/src/+/master/mojo/README.md


11. 原生模块(native modules)

原生模块(在Node.js中也称为插件(addons))是用C或C++编写的模块,可以用require()函数加载到Node.js或Electron中,就普通的Node.js模块一样。它们主要用于在Node.js中运行的JavaScript和C/C++库之间提供接口。

Electron支持原生Node模块,但是由于Electron很可能使用与系统中安装的Node二进制文件不同的V8版本,因此在构建原生模块时必须手动指定Electron标头的位置。

另请参阅使用原生Node模块


12. NSIS

Nullsoft Scriptable Install System是用于Microsoft Windows的脚本驱动的安装器(Installer)制作工具。其根据免费软件许可的组合发布的,并是像InstallShield之类的商用产品的替代品。electronic-builder支持以NSIS为构建目标。


13. OSR

OSR(屏幕外渲染,Off-screen rendering)可用于后台加载较重的页面,以在之后显示(速度会更快)。它使你可以渲染但不在屏幕上显示页面。


14. 进程(process)

进程是正在执行的计算机程序的实例。通过主进程和一个或多个渲染进程,Electron应用实际上正在同时运行多个程序。

在Node.js和Electron中,每个正在运行的进程都有一个process对象。该对象是全局的,提供了关于当前进程的信息并对其进行控制。作为全局变量,它在应用中始终可用于,而无需require()引用。

另请参见:主进程渲染进程


15. 渲染进程(renderer process)

渲染进程是你应用中的浏览器窗口。与主进程不同,这些进程可以有多个,并且每个进程都在独立的进程中运行。它们也可以被隐藏。

在普通浏览器中,网页通常在沙箱环境中运行,并且不允许访问本机资源。但是,Electron用户可以在网页中使用Node.js API,从而实现与低层的操作系统交互。

另请参见:进程主进程


16. Squirrel

Squirrel是一个开源框架,可以让Electron应用在发布新版本时自动更新。有关使用Squirrel的相关信息,请参见autoUpdater API


17. 用户区(userland)

本术语起源于Unix社区,其中"userland""userspace"是指在操作系统内核外运行的程序。最近,该术语已在Node和npm社区中流行,以区分“Node core”中可用的功能与更大的“user”社区发布到npm Registry的软件包之间的区别。

像Node一样,Electron专注于拥有一小组API,这些API为开发跨平台桌面应用提供所有必要的原语。这种设计理念使Electron成为可以保持灵活的工具,而不必过多地说明应如何使用它。通过Userland,用户可以创建和共享工具,这些工具可以在“核心”功能的基础上提供其他功能。


18. V8

V8是Google的开源JavaScript引擎。它由C++编写,并在Google Chrome中使用。V8可以独立运行,也可以嵌入到任何C++应用程序。

Electron将V8作为Chromium的一部分进行构建,然后在构建时将Node指向该V8。

V8的版本号始终与Google Chrome的版本号相对应。Chrome 59包含V8 5.9,Chrome 58包含V8 5.8,依此类推。


19. webview

webview标记用于在你的Electron应用中嵌入“访客”内容(如:外部网页)。它们类似于iframe,但不同之处在于每个Webview都在单独的进程中运行。它具有与你自己页面不同的权限,并且你的应用与嵌入式内容之间的所有交互都是异步的。这样可以确保应用不受嵌入内容的影响。