W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
這篇文檔解釋了一些經(jīng)常在 Electron 開(kāi)發(fā)中使用的專業(yè)術(shù)語(yǔ)。
ASAR 表示 Atom Shell Archive Format。 一個(gè) asar 檔案就是一個(gè)簡(jiǎn)單的 tar
文件 - 比如將那些有關(guān)聯(lián)的文件放至一個(gè)單獨(dú)的文件格式中。 Electron 能夠任意讀取其中的文件并且不需要解壓整個(gè)文件。
ASAR格式是為了在Windows系統(tǒng)讀取大量的小文件時(shí) (比如像從node_modules
加載應(yīng)用的JavaScript依賴關(guān)系樹(shù)) 提高性能。
代碼簽名是一個(gè)過(guò)程,其中應(yīng)用開(kāi)發(fā)人員對(duì)其代碼進(jìn)行數(shù)字簽名以 確保代碼在打包后未被篡改。 Windows 和 macOS 都實(shí)現(xiàn)了自己的代碼簽名版本。 作為桌面應(yīng)用開(kāi)發(fā)人員, 如果您計(jì)劃將代碼分發(fā)給 公眾,則必須對(duì)代碼進(jìn)行簽名。
上下文隔離是 Electron 中的一項(xiàng)安全措施,可確保 預(yù)加載腳本不會(huì)將擁有優(yōu)先權(quán)的 Electron 或 Node.js API 泄漏到 Web 渲染器進(jìn)程中的內(nèi)容。 啟用上下文隔離后,從預(yù)加載腳本公開(kāi) API 的唯 方法是通過(guò) contextBridge
API。
C 運(yùn)行時(shí)庫(kù) (CRT) 是包含了 ISO C99 標(biāo)準(zhǔn)庫(kù)的 C++ 標(biāo)準(zhǔn)庫(kù)的一部分。 實(shí)現(xiàn)了 CRT 的 Visual C++ 庫(kù)支持本機(jī)代碼開(kāi)發(fā), 以及混合的本機(jī)和托管代碼, 以及用于 .NET 開(kāi)發(fā)的純托管代碼。
是指在 macOS 上使用的蘋果系統(tǒng)的磁盤鏡像打包格式。 DMG 文件通常被用來(lái)分發(fā)應(yīng)用的 "installers"。
輸入法編輯器. 是一個(gè)允許用戶輸入在鍵盤上找不到的字符和符號(hào)的程序。 例如,使用戶可以用拉丁語(yǔ)鍵盤輸入中文,日文,韓文和印度文字。
接口描述語(yǔ)言(Interface Description Language)。 撰寫函數(shù)簽名與數(shù)據(jù)類型的格式語(yǔ)言,可用于生成 Java、C++ 和 JavaScript 等語(yǔ)言中的接口。
IPC 代表進(jìn)程間通信。 Electron使用IPC在主進(jìn)程和渲染器進(jìn)程之間發(fā)送 序列化的JSON消息。
主進(jìn)程,通常是指 main.js
文件,是每個(gè) Electron 應(yīng)用的入口文件。 控制著整個(gè)應(yīng)用的生命周期,從打開(kāi)到關(guān)閉。 它也管理著系統(tǒng)原生元素比如菜單,菜單欄,Dock 欄,托盤等。 主進(jìn)程負(fù)責(zé)創(chuàng)建 APP 的每一個(gè)渲染進(jìn)程。 包含了全功能的 Node API。
應(yīng)用的主進(jìn)程定義在 package.json
中的 main
屬性中。 當(dāng)您運(yùn)行 electron .
時(shí) Electron 便會(huì)知道需要運(yùn)行哪個(gè)文件。
在Chromium中,此進(jìn)程被稱為“瀏覽器進(jìn)程”。 Electron 中這樣稱呼是為了不與渲染進(jìn)程混淆。
這是蘋果 Mac App Store 的縮寫。
一種用于進(jìn)程內(nèi)部或進(jìn)程間通信的 IPC 系統(tǒng), 這很重要, 因?yàn)?Chrome會(huì)依據(jù)內(nèi)存壓力等來(lái)決定是否將其工作分拆給不同的進(jìn)程。
可參考https://chromium.googlesource.com/chromium/src/+/main/mojo/README.md
在 Windows上,Windows 安裝程序 (也稱為Microsoft Installer) 服務(wù)使用MSI軟件包來(lái)安裝和配置 應(yīng)用程序。
更多信息可以在 微軟的文檔 中找到。
原生模塊(在 Node.js 中也稱為 addon)是用C/C++寫成的,可以在 Node.js 中加載,或通過(guò) require() 函數(shù)在 Electron 中引入的模塊。這些模塊用起來(lái)與普通的Node.js模塊并無(wú)二致。 它主要用于橋接在 JavaScript 上運(yùn)行 Node.js 和 C/C++ 的庫(kù)。
Electron 支持原生的 Node 模塊,但是 Electron 非常可能使用了和你系統(tǒng)中安裝的Node所不一樣的 V8 版本,所以在構(gòu)建原生模塊的時(shí)候你需要手動(dòng)指定 Electron 所使用的頭文件的位置。
公證是一個(gè)特定于 macOS 的過(guò)程,開(kāi)發(fā)人員可以在其中將經(jīng)過(guò)代碼簽名的應(yīng)用發(fā)送到 Apple 服務(wù)器,以便通過(guò)自動(dòng)化服務(wù)查驗(yàn)惡意組件。
OSR(離屏渲染) 可以讓您在后臺(tái)渲染大型頁(yè)面,之后再將其顯示到屏幕上(這種方式更快)。 這使您不必將頁(yè)面顯示到屏幕上也可以渲染它。
預(yù)加載腳本包含在渲染器進(jìn)程中, 里面的代碼在其網(wǎng)頁(yè)內(nèi)容加載之前執(zhí)行。 這些腳本雖運(yùn)行于渲染器的環(huán)境中,卻因能訪問(wèn) Node.js API 而擁有了更多的權(quán)限。
一個(gè)進(jìn)程是計(jì)算機(jī)程序執(zhí)行中的一個(gè)實(shí)例。 Electron 應(yīng)用同時(shí)使用了 main 進(jìn)程和一個(gè)或者多個(gè) renderer 進(jìn)程來(lái)運(yùn)行多個(gè)程序。
在 Node.js 和 Electron 里面,每個(gè)運(yùn)行的進(jìn)程包含一個(gè) ?process
? 對(duì)象。 這個(gè)對(duì)象作為一個(gè)全局的提供當(dāng)前進(jìn)程的相關(guān)信息和操作方法。 作為一個(gè)全局變量,它在應(yīng)用內(nèi)能夠不用 require() 來(lái)隨時(shí)取到。
渲染進(jìn)程是應(yīng)用中的瀏覽器窗口。 與主進(jìn)程不同,渲染進(jìn)程可能同時(shí)存在多個(gè),同時(shí),每一個(gè)渲染進(jìn)程都運(yùn)行與獨(dú)立的進(jìn)程中。 渲染進(jìn)程也可以隱藏。
沙盒是一個(gè)從Chromium繼承下來(lái)的安全功能,它將你的渲染過(guò)程限制在一組有限的權(quán)限。
Squirrel 是一個(gè)開(kāi)源框架, 能夠讓 Electron 應(yīng)用程序自動(dòng)更新到最新發(fā)布的版本。
"userland" 或者 "userspace" 術(shù)語(yǔ)起源于 Unix 社區(qū),當(dāng)程序運(yùn)行在操作系統(tǒng)內(nèi)核之外。 最近這個(gè)術(shù)語(yǔ)被推廣到 Node 和 npm 社區(qū),用于區(qū)分 "Node 內(nèi)核"功能與在 npm 上注冊(cè)的"用戶" 們所發(fā)布的包的功能。
就像 Node ,Electron 致力于使用較小的API集來(lái)支持開(kāi)發(fā)跨平臺(tái)應(yīng)用所必需的原語(yǔ)。 這個(gè)設(shè)計(jì)理念讓 Electron 能夠保持靈活而不被過(guò)多的規(guī)定有關(guān)于如何應(yīng)該被使用。 Userland 讓用戶能夠創(chuàng)造和分享一些工具來(lái)提額外的功能在這個(gè)能夠使用的 "core(核心)"之上。
實(shí)用程序進(jìn)程是主進(jìn)程的子進(jìn)程,它允許運(yùn)行任何不能在主進(jìn)程中運(yùn)行的不受信任的服務(wù)。 Chromium 使用此進(jìn)程執(zhí)行網(wǎng)絡(luò) I/O、音頻/視頻處理、設(shè)備輸入等。在 Electron 中,您可以使用 UtilityProcess API 創(chuàng)建此進(jìn)程。
V8 是谷歌開(kāi)源的 JavaScript 引擎。 它是用 C++ 編寫的,用于谷歌的 Chrome 瀏覽器。 V8 可以單獨(dú)運(yùn)行,也可以嵌入任何 C++ 應(yīng)用程序。
Electron將 V8 作為Chromium的一個(gè)部分進(jìn)行構(gòu)建,然后在構(gòu)建Node時(shí)也指向那個(gè) V8
V8 的版本號(hào)與谷歌 Chrome 的版本號(hào)對(duì)應(yīng)。 Chrome 59 的 V8 版本是 5.9,Chrome 58 的V8 版本是 5.8,以此類推。
webview
標(biāo)簽頁(yè)用于在您的 Electron 應(yīng)用中嵌入“訪客”內(nèi)容(例如外部網(wǎng)頁(yè))。 其功能與 iframe
類似,但 webview 運(yùn)行于獨(dú)立的進(jìn)程中。 作為頁(yè)面它擁有不一樣的權(quán)限并且所有的嵌入的內(nèi)容和你應(yīng)用之間的交互都將是異步的。 這將保證你的應(yīng)用對(duì)于嵌入的內(nèi)容的安全性。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: