Zum Hauptteil springen

Glossar

Diese Seite enthält Begriffe, die während der Entwicklung von Electron häufig verwendet werden.

ASAR

ASAR steht für Atom-Shell-Archiv-Format. Ein asar-Archiv ist ein simples, tar-ähnliches Format, das die Dateien in einer einzelnen Datei zusammenführt. Electron kann willkürliche Dateien aus dem Archiv lesen ohne diese zu entpacken.

Das ASAR-Format wurde in erster Linie entwickelt, um die Leistung unter Windows zu verbessern, wenn große Mengen kleiner Dateien gelesen werden (z. B. beim Laden des Abhängigkeitsverzeichnisses vom JavaScript Ihrer App von node_modules).

Code-Signierung

Die Code-Signierung ist ein Vorgang, bei dem der App-Entwickler seinen Code digital signiert, um zu gewährleisten, dass danach keine unauthorisierten Veränderungen daran vorgenommen worden sind. Windows und macOS benutzen beide jeweils ein eigenes Verfahren der Code-Signierung. Falls Sie vorhaben Ihren Code zu veröffentlichen ist es für Sie als Entwickler von Desktop-Apps wichtig, dass Sie Ihren Code digital signieren.

Für weitere Informationen haben wir Ihnen dasCode Signing-Tutorial zur Verfügung gestellt.

Kontextisolation

Kontextisolierung ist ein Sicherheitsmechanismus in Electron, der sicherstellt, dass Ihr Preload-Script nicht ausversehen während des Renderer-Prozesses privilegierte Electron- oder Node.js-APIs an Web-Inhalte übermittelt. Nach Aktivieren der Kontextisolierung ist der einzige Weg, wie APIs durch Ihren Preload-Script angreifbar gemacht werden können, der über die API contextBridge.

Für weitere Informationen haben wir Ihnen das Tutorial Kontextisolierung zur Verfügung gestellt.

Siehe auch: Preload-Script, Renderer-Prozess

CRT

Die C Runtime-Library (CRT) ist Teil der C++ Standard-Library, welche die ISO C99-Standard-Library beinhaltet. Die Visual C++ Bibliotheken, welche die CRT implementieren, unterstützen native Codeentwicklung sowie gemischt nativen und verwalteten Code als auch reiner verwalteter Code für .NET-Entwicklung.

DMG

"Apple Disk Image" ist ein Paket-Format von macOS. DMG-Dateien werden oft zur Distribution von Installern verwendet.

IME

Input Method Editor. Ein Programm, dass dem Benutzer die Eingabe von Buchstaben und Zeichen, welche nicht auf der Tastatur vertreten sind, erlaubt. Zum Beispiel können Benutzer einer lateinischen Tastatur chinesische, japanische, koreanische und indische Zeichen einzugeben.

IDL

Interface description language. Schreiben Sie Funktionssignaturen und Data Types in einem Format, welches dazu genutzt werden kann Interfaces in Java, C++, JavaScript, etc. zu erzeugen.

IPC

IPC steht für Interprozedurale Kommunikation. Electron benutzt IPC um zwischen dem Main- und dem Renderer-Prozess serielle JSON-Nachrichten zu schicken.

siehe auch: main process, renderer process

Main-Prozess

Der Main-Prozess, für gewöhnlich main.js genannt, ist der Einstiegspunkt einer jeden Electron-App. Er kontrolliert die Lebensdauer der App, von open zu close. Er steurert auch Native Elemente wie Menu, Menu Bar, Dock, Tray, usw. Der Main-Prozess ist verantwortlich für die Erzeugung eines jeden neuen Renderer-Prozesses in der App. Die vollständige Node-API ist eingebaut.

Die Datei für den Hauptprozess jeder App ist in der main Eigenschaft in package.json angegeben. Auf diese Weise weiß electron . welche Datei beim Start ausgeführt werden muss.

In Chromium wird dieser Prozess als "Browser-Prozess" bezeichnet. In Electron wird er umbenannt, um Verwechslung mit Renderer-Prozessen zu vermeiden.

Siehe auch: process, renderer process

MAS

Abkürzung für Apple's Mac App Store. Für Infromationen zum Einreichen deiner App zum MAS siehe Anleitung: Mac App Store Veröffentlichung.

Mojo

Ein IPC-System zur inner- und zwischenprozeduralen Kommunikation, und das ist wichtig, denn Chrome will bei einer bestimmten Speicherauslastung in der Lage sein die Arbeitslast in unterschiedliche Prozesse aufzuteilen.

Siehe https://chromium.googlesource.com/chromium/src/+/main/mojo/README.md

Siehe auch: IPC

MSI

Der Dienst des Windows Installers von Microsoft Windows (auch Microsoft Installer genannt) benutzt MSI-Packete dazu Programme zu installieren und zu konfigurieren.

Weitere Informationen stehen Ihnen auf Microsoft's documentation zur Verfügung.

systemeigene Module

Native Module, in Node.js auch addons genannt, sind Module, welche in C oder C++ geschrieben werden und genau wie normale mithilfe der require() Funktion geladen werden können. Sie werden in erster Linie dazu eingesetzt, um eine Schnittstelle zwischen JavaScript in Node.js und C/C++-Bibliotheken zur Verfügung zu stellen.

Native Node-Module werden von Electron unterstützt, aber da Electron sehr es wahrscheinlich eine andere V8-Version als die von der auf ihrem System verwendete Node.js Version verwendet, musst du den Ort der Electron-Header beim Bauen von nativen Modulen manuell angeben.

Für weitere Informationen siehe das Tutorial der [Native Node Modules].

Beglaubigung

Beglaubigung ist bei macOS ein automatischer Dienst für einen Entwickler seine code-signierte App an einen Apple-Server zu schicken, um sie auf schadhafte Bestandteile überprüfen zu lassen und verifiziert zu werden.

Siehe auch: code signing

OSR

OSR (Offscreen Rendering) kann dazu verwendet werden langsam ladende Seiten im Hintergrund laden zu lassen und erst danach abzubilden (was bedeutend schneller ist). Es ermöglicht das rendern einer Seite, ohne dass diese sofort im Bildschirm sichtbar wird.

Für weitere Informationen siehe das Tutorial Offscreen Rendering[osr].

Preload-Script

Preload-Scripte enthalten Code, welcher in einem Renderer-Prozess ausgeführt wird noch bevor seine Web-Inhalte beginnen geladen zu werden. Diese Scripte laufen innerhalb des Renderer-Kontextes, erhalten aber durch Zugriff auf APIs von Node.js mehr Privilegien.

Siehe auch: renderer process, context isolation

process

Ein Prozess ist eine Instanz eines Computerprogramms, welches ausgeführt wird. Electron Anwendungen, welche einen main- und einen oder mehrere renderer-Prozesse verwenden, bestehen eigentlich aus mehreren parallel laufenden Programmen.

In Node.js und Electron hat jeder laufende Prozess ein process-Objekt. Dieses globale Objekt stellt Informationen und Steuerungsmöglichkeiten über den aktuellen Prozess bereit. Als globales Objekt ist es immer verfügbar für Anwendungen, welche nicht require() benutzen.

Siehe auch: main process, renderer process

renderer process

Der Renderer-Prozess ist ein Browser-Fenster, der in Ihrer App läuft. Anders als der Main-Prozess kann es gleich mehrere von ihnen geben, und jeder läuft dann in einem eigenen Prozess. Sie können auch versteckt laufen.

Siehe auch: process, main process

sandbox

Die Sandbox ist ein Sicherheitsmechanismus, der von Chromium stammt, welcher Ihre Renderer-Prozesse auf eine bestimmte Anzahl von Befugnissen beschränkt.

Für weitere Informationen siehe das Tutorial Process Sandboxing.

Siehe auch: process

Squirrel

Squirrel ist ein Open-Source Framework, welches Electron Apps ermöglicht sich automatisch zu aktualisieren, wenn neue Versionen veröffentlicht werden. Siehe dir die autoUpdater API an für mehr Informationen wie du mit Squirrel startest.

userland

Der Begriff hat seinen Ursprung in der Unix Community, wo "userland" oder "userspace" für Programme steht, die außerhalb des Kernels des Betriebssystems agieren. Seit einiger Zeit wird der Begriff auch in der Node und npm Community verwendet, um zwischen Features, die im "Node core" verfügbar sind, und Paketen, die in der npm registry veröffentlicht wurden, zu unterscheiden.

Wie Node fokussiert sich auch Electron darauf, eine relativ einfache API mit allen nötigen primitiven Werkzeugen, die es braucht, um Multi-Plattform Desktop-Anwendungen zu entwickeln, bereitzustellen. Diese Design-Philosophie ermöglicht es Electron, ein flexibles Werkzeug zu sein, ohne zu stark in der Art, wie es benutzt werden kann, einzuschränken. Userland erlaubt Nutzern das Erstellen und Teilen von Tools, die weitere, komplexere Funktionalität bereitstellt, zusätzlich zu denen, die im "Core" existieren.

utility process

The utility process is a child of the main process that allows running any untrusted services that cannot be run in the main process. Chromium uses this process to perform network I/O, audio/video processing, device inputs etc. In Electron, you can create this process using UtilityProcess API.

Siehe auch: process, main process

V8

V8 ist Googles Open Source JavaScript-Engine. Es wurde in C++ geschrieben und wird von Google Chrome genutzt. V8 kann selbstständig oder integriert in einem C++-Programm laufen.

Electron baut V8 als Teil von Chromium und weist dann Node beim Bauen darauf hin.

V8 und Google Chrome haben die selben Versionsnummern. Chrome 59 beinhaltet V8 5.9, Chrome 58 beinhaltet V8 5.8, und so fort.

webview

webview Tags werden dazu genutzt "Gast"-Inhalte (wie externe Webseiten) in Ihrer Electron-App einzubinden. Sie ähneln dabei den iframes, aber sind von Ihnen auch verschieden, weil jede Webview in einem anderen Prozess läuft. It doesn't have the same permissions as your web page and all interactions between your app and embedded content will be asynchronous. This keeps your app safe from the embedded content.