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 lesen Sie das Code Signing Tutorial.
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 lesen Sie das Context IsolationTutorial.
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. Weitere Informationen zum Einreichen der App bei der MAS, finden Sie im Mac App Store Einreichungsleitfaden.
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 lesen Sie das Native Node Module Tutorial.
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 lesen Sie das Offscreen Rendering Tutorial.
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.
Weitere Informationen finden Sie im Process Sandboxing Tutorial.
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-Prozess
Der Utility-Prozess ist ein untergeordneter Prozess des Hauptprozesses, der die Ausführung aller nicht vertrauenswürdige Dienste, die nicht im Hauptprozess ausgeführt werden können. Chromium verwendet diesen Prozess, um Netzwerk-E/A, Audio-/Videoverarbeitung, Geräteeingaben usw. durchzuführen. In Electron können Sie diesen Prozess mithilfe der UtilityProcess API erstellen.
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 iframe
s, 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.