跳到主要内容

词汇表

本页定义了一些在 Electron 开发中常用的术语。

ASAR

ASAR 代表 Atom Shell Archive Format(Atom Shell 归档格式)。asar 归档是一种简单的类似 tar 的格式,它将文件连接成一个单独的文件。Electron 可以从中读取任意文件,而无需解压整个文件。

创建 ASAR 格式的主要目的是提高 Windows 上读取大量小文件时的性能(例如,从 node_modules 加载应用程序的 JavaScript 依赖树时)。

代码签名

代码签名是一个过程,应用程序开发者对其代码进行数字签名,以确保代码在打包后没有被篡改。Windows 和 macOS 都实现了各自版本的代码签名。作为桌面应用程序开发者,如果您计划将应用程序分发给公众,那么对代码进行签名非常重要。

有关更多信息,请阅读代码签名教程。

上下文隔离

上下文隔离是 Electron 中的一项安全措施,它确保您的预加载脚本不会将特权的 Electron 或 Node.js API 泄漏到渲染器进程中的 Web 内容。启用上下文隔离后,从预加载脚本公开 API 的唯一方法是通过 contextBridge API。

有关更多信息,请阅读上下文隔离教程。

另请参阅:预加载脚本渲染器进程

CRT

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

DMG

Apple 磁盘映像是 macOS 使用的一种打包格式。DMG 文件通常用于分发应用程序“安装程序”。

IME

输入法编辑器。一种允许用户输入键盘上没有的字符和符号的程序。例如,这允许拉丁键盘用户输入中文、日文、韩文和印度字符。

IDL

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

IPC

IPC 代表进程间通信。Electron 使用 IPC 在主进程和渲染器进程之间发送序列化的 JSON 消息。

另请参阅:主进程渲染器进程

主进程

主进程,通常是一个名为 main.js 的文件,是每个 Electron 应用程序的入口点。它控制应用程序的生命周期,从打开到关闭。它还管理本机元素,例如菜单、菜单栏、Dock、托盘等。主进程负责在应用程序中创建每个新的渲染器进程。完整的 Node API 内置于其中。

每个应用程序的主进程文件都在 package.json 中的 main 属性中指定。这就是 electron . 知道在启动时执行哪个文件的方式。

在 Chromium 中,此进程被称为“浏览器进程”。它在 Electron 中被重命名,以避免与渲染器进程混淆。

另请参阅:进程渲染器进程

MAS

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

Mojo

一种用于进程内或进程间通信的 IPC 系统,这很重要,因为 Chrome 非常希望能够将其工作拆分为单独的进程,或者不拆分,具体取决于内存压力等。

请参阅https://chromium.googlesource.com/chromium/src/+/main/mojo/README.md

另请参阅:IPC

MSI

在 Windows 上,MSI 包由 Windows Installer(也称为 Microsoft Installer)服务用于安装和配置应用程序。

更多信息可以在Microsoft 的文档中找到。

原生模块

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

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

有关更多信息,请阅读原生 Node 模块教程。

公证

公证是一个 macOS 特有的过程,开发者可以将代码签名的应用程序发送到 Apple 服务器,通过自动化服务验证是否包含恶意组件。

另请参阅:代码签名

OSR

OSR(离屏渲染)可用于在后台加载繁重的页面,然后在之后显示它(速度会快得多)。它允许您渲染页面而不将其显示在屏幕上。

有关更多信息,请阅读离屏渲染教程。

预加载脚本

预加载脚本包含在渲染器进程的 Web 内容开始加载之前执行的代码。这些脚本在渲染器上下文中运行,但由于可以访问 Node.js API,因此被授予更多特权。

另请参阅:渲染器进程上下文隔离

进程

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

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

另请参阅:主进程渲染器进程

渲染器进程

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

另请参阅:进程主进程

沙箱

沙箱是从 Chromium 继承的安全功能,它将渲染器进程限制为一组有限的权限。

有关更多信息,请阅读进程沙箱教程。

另请参阅:进程

Squirrel

Squirrel 是一个开源框架,使 Electron 应用程序能够在发布新版本时自动更新。有关 Squirrel 入门的更多信息,请参阅autoUpdater API。

用户空间

这个术语起源于 Unix 社区,其中“用户空间”或“用户区”指的是在操作系统内核之外运行的程序。最近,这个术语在 Node 和 npm 社区中流行起来,用于区分“Node 核心”中可用的功能与由更大的“用户”社区发布到 npm 注册表的软件包。

与 Node 一样,Electron 专注于拥有一小部分 API,这些 API 提供了开发多平台桌面应用程序所需的所有基本元素。这种设计理念使 Electron 能够保持为一个灵活的工具,而不会过度规定其应如何使用。用户空间使用户能够创建和共享工具,这些工具在“核心”中可用的功能之上提供额外的功能。

实用程序进程

实用程序进程是主进程的子进程,允许运行任何无法在主进程中运行的不受信任的服务。Chromium 使用此进程来执行网络 I/O、音频/视频处理、设备输入等。在 Electron 中,您可以使用 UtilityProcess API 创建此进程。

另请参阅:进程主进程

V8

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

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

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

webview

webview 标签用于在 Electron 应用程序中嵌入“访客”内容(例如外部网页)。它们类似于 iframe,但不同之处在于每个 webview 都在单独的进程中运行。它不具有与您的网页相同的权限,并且您的应用程序与嵌入内容之间的所有交互都将是异步的。这使您的应用程序免受嵌入内容的侵害。