本文介绍了一些Electron 开发中的相关术语(Glossary)。
- ASAR
- CTR
- DMG
- IME
- IDL
- IPC
- libchromiumcontent
- 主进程(main process)
- MAS
- Mojo
- 原生模块(native modules)
- NSIS
- OSR
- 进程(process)
- 渲染进程(renderer process)
- Squirrel
- 用户区(userland)
- V8
- 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.json的main属性中指定。这就是在以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都在单独的进程中运行。它具有与你自己页面不同的权限,并且你的应用与嵌入式内容之间的所有交互都是异步的。这样可以确保应用不受嵌入内容的影响。
