跳转到主要内容

术语表

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

ASAR

ASAR 是 Atom Shell Archive Format 的缩写。一个 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 Disk Image 是 macOS 使用的一种打包格式。DMG 文件通常用于分发应用程序“安装程序”。

IME

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

IDL

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

IPC

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

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

主进程

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

每个应用程序的主进程文件在 package.jsonmain 属性中指定。这就是 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 上,Windows Installer(也称为 Microsoft Installer)服务使用 MSI 程序包来安装和配置应用程序。

有关更多信息,请参阅 Microsoft 的文档

原生模块

原生模块(在 Node.js 中也称为 插件)是使用 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 社区,其中“用户空间”(userland 或 userspace)指的是在操作系统内核之外运行的程序。最近,这个词在 Node 和 npm 社区中流行起来,用来区分“Node 核心”中可用的功能与由数量庞大的“用户”社区发布到 npm 注册表中的软件包。

与 Node 一样,Electron 专注于提供一套能够为开发跨平台桌面应用程序提供所有必要原语的 API。这种设计理念使 Electron 能够保持灵活性,而不会过度规定其使用方式。用户空间使用户能够创建和共享工具,从而在“核心”功能之上提供额外的功能。

辅助进程

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

另请参阅:进程主进程

V8

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

Electron 在构建 Chromium 时会构建 V8,然后在构建 Node 时将其指向该 V8。

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

webview

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