注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學(xué)技術(shù)計算機/網(wǎng)絡(luò)軟件與程序設(shè)計深入淺出Electron:原理、工程與實踐

深入淺出Electron:原理、工程與實踐

深入淺出Electron:原理、工程與實踐

定 價:¥99.00

作 者: 劉曉倫
出版社: 機械工業(yè)出版社
叢編項:
標 簽: 暫缺

ISBN: 9787111696094 出版時間: 2021-12-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 316 字數(shù):  

內(nèi)容簡介

  這是一本能幫助讀者夯實Electron基礎(chǔ)進而開發(fā)出穩(wěn)定、健壯的Electron應(yīng)用的著作。書中對Electron的工作原理、大型工程構(gòu)建、常見技術(shù)方案、周邊生態(tài)工具等進行了細致、深入地講解。工作原理維度:對Electron及其周邊工具的原理進行了深入講解,包括Electron依賴包的原理、Electron原理、electron-builder的原理等。工程構(gòu)建維度:講解了如何駕馭和構(gòu)建一個大型Electron工程,包括使用各種現(xiàn)代前端構(gòu)建工具構(gòu)建Electron工程、自動化測試、編譯和調(diào)試Electron源碼等。技術(shù)方案維度:總結(jié)了實踐過程中遇到的一些技術(shù)難題以及應(yīng)對這些難題的技術(shù)方案,包括跨進程消息總線、窗口池、大數(shù)據(jù)渲染、點對點通信等。周邊工具維度:作者根據(jù)自己的“踩坑”經(jīng)驗和教訓(xùn),有針對性地講解了大量Electron的周邊工具、庫和技術(shù),涉及Qt開發(fā)框架、C 語言、Nodejs框架甚至Vite構(gòu)建工具等,幫助讀者拓寬技術(shù)廣度,掌握開發(fā)Electron應(yīng)用需要的全棧技術(shù)。

作者簡介

  劉曉倫資深技術(shù)專家,有10余年研發(fā)經(jīng)驗,是Electron及其相關(guān)技術(shù)在企業(yè)應(yīng)用領(lǐng)域的早期實踐者,GitHub/Gitee優(yōu)秀開源項目作者。作者還為Electron項目提交過數(shù)個Issue和Pull Request均被官方接納。原遠傳研發(fā)中心負責(zé)人、小遠機器人研發(fā)總監(jiān)?,F(xiàn)在擔(dān)任一家創(chuàng)業(yè)公司的技術(shù)負責(zé)人,負責(zé)的產(chǎn)品以Electron為主要技術(shù)方向。除此之外,作者還有著十余年的前端及C (Qt)的開發(fā)經(jīng)驗,深入研究過Chromium的源碼及相關(guān)的協(xié)議(DevTools Protocol和V8 Debugger Protocol),其主導(dǎo)研發(fā)的產(chǎn)品為數(shù)家世界五百強企業(yè)提供服務(wù)。

圖書目錄

【第1部分 原理】
第1章 Electron包原理解析 3
1.1 安裝失敗 3
1.2 npm鉤子 4
1.3 鏡像策略 6
1.4 緩存策略 9
1.5 注入命令 11
1.6 共享環(huán)境變量 13
1.7 合適的版本 15

第2章 Electron原理解析 17
2.1 Chromium原理 17
2.2 Node.js原理 20
2.3 源碼結(jié)構(gòu) 23
2.4 主進程Node.js環(huán)境 25
2.5 公開API 27
2.6 不同進程不同的API 31
2.7 加載應(yīng)用入口腳本 32
2.8 提供系統(tǒng)底層支持 34
2.9 解析asar文件 37
2.10 渲染進程Node.js環(huán)境 41
2.11 支持不同的操作系統(tǒng) 42
2.12 進程間通信 45
2.13 頁面事件 48

第3章 electron-builder原理解析 52
3.1 使用方法 52
3.2 原理介紹 53
3.3 偽交叉編譯 57
3.4 輔助工具app-builder 59
3.5 為生產(chǎn)環(huán)境安裝依賴 61
3.6 生成asar 62
3.7 修改可執(zhí)行程序 63
3.8 NSIS介紹 66
3.9 生成安裝包 68

第4章 electron-updater原理解析 71
4.1 使用方法 71
4.2 如何校驗新版本的安裝包 73
4.3 Windows應(yīng)用升級原理 75
4.4 Mac應(yīng)用升級原理 78

第5章 其他重要原理 80
5.1 緩存策略與控制 80
5.2 V8腳本執(zhí)行原理 83
5.3 V8垃圾收集原理 87

【第2部分 工程】
第6章 使用Vite構(gòu)建Electron項目 91
6.1 Vite為什么如此之快 91
6.2 大型Electron工程結(jié)構(gòu) 92
6.3 定義啟動腳本 93
6.4 啟動開發(fā)服務(wù) 95
6.5 設(shè)置環(huán)境變量 96
6.6 構(gòu)建主進程代碼 98
6.7 啟動Electron子進程 100
6.8 配置調(diào)試環(huán)境 102
6.9 打包源碼 104
6.10 打包依賴 106
6.11 制成安裝程序 108
6.12 引入TypeScript支持 111

第7章 使用webpack構(gòu)建Electron項目 113
7.1 需求起源 113
7.2 準備環(huán)境 114
7.3 編譯主進程代碼 116
7.4 啟動多入口頁面調(diào)試服務(wù) 117
7.5 啟動Electron子進程 120
7.6 制成安裝包 121
7.7 注冊應(yīng)用內(nèi)協(xié)議 123

第8章 使用Rollup構(gòu)建Electron項目 125
8.1 Rollup與Svelte 125
8.2 準備開發(fā)環(huán)境 127
8.3 制成安裝包 130

第9章 自動化測試 134
9.1 集成Spectron及Spectron原理 134
9.2 在Jest測試框架中使用Spectron 137

第10章 編譯與調(diào)試Electron源碼 141
10.1 build-tools構(gòu)建工具介紹 141
10.2 手工構(gòu)建Electron源碼 142
10.3 構(gòu)建不同版本的Electron 150
10.4 調(diào)試Electron源碼 151
10.5 調(diào)試崩潰報告 156

第11章 應(yīng)用分發(fā) 162
11.1 源碼混淆 162
11.2 應(yīng)用簽名 165
11.3 靜默安裝與開機自啟 168
11.4 自定義安裝畫面 170
11.5 軟件防殺 173

第12章 逆向分析 174
12.1 用戶安裝目錄 174
12.2 用戶數(shù)據(jù)目錄 175
12.3 注冊表鍵值 177
12.4 自研逆向調(diào)試工具 178

第13章 其他工程要點 183
13.1 使用D8調(diào)試工具 183
13.2 內(nèi)存消耗監(jiān)控 185
13.3 子應(yīng)用管控 189

【第3部分 實踐】
第14章 跨進程消息總線 195
14.1 前端事件機制 195
14.2 Node.js的事件機制 197
14.3 Electron進程間通信 198
14.4 跨進程事件 200
14.5 使用Promise封裝事件 203
14.6 基于HTML API的跨進程事件 205
14.7 跨進程通信帶來的問題 207

第15章 窗口池 209
15.1 窗口渲染過慢 209
15.2 構(gòu)建窗口池 210
15.3 構(gòu)建窗口實例 212
15.4 通用的窗口標題欄 214
15.5 消費窗口池中的窗口 215
15.6 模擬模態(tài)窗口 216

第16章 原生模塊 219
16.1 需求起源 219
16.2 原生模塊開發(fā)方式 221
16.3 傳統(tǒng)原生模塊開發(fā) 223
16.4 使用Node-API開發(fā)原生模塊 225
16.5 Node-API進階 229
16.6 Electron環(huán)境下的原生模塊 233

第17章 應(yīng)用控制 236
17.1 應(yīng)用單開 236
17.2 注冊喚起協(xié)議 237
17.3 喚起外部應(yīng)用 238
17.4 常規(guī)截圖方案介紹 239
17.5 使用第三方截圖庫 241

第18章 Electron與Qt的整合 245
18.1 需求起源 245
18.2 命名管道服務(wù)端 247
18.3 命名管道客戶端 250
18.4 通信協(xié)議 253
18.5 入口應(yīng)用配置 256
18.6 應(yīng)用退出的事件順序 258
18.7 關(guān)閉窗口的問題 260

第19章 大數(shù)據(jù)渲染 262
19.1 常規(guī)無限滾動方案介紹 262
19.2 DOM結(jié)構(gòu)與樣式 265
19.3 模擬滾動條 267
19.4 處理滾動事件 268
19.5 滾動條的顯隱動效 270
19.6 內(nèi)置的數(shù)據(jù)持久化能力 271

第20章 點對點通信 274
20.1 WebRTC原理 274
20.2 構(gòu)建WebRTC服務(wù)器 275
20.3 發(fā)送超大文件 276
20.4 接收超大文件 280

第21章 加密信息提取 283
21.1 需求起源 283
21.2 分析調(diào)試源碼 284
21.3 暴露解密方法 286
21.4 轉(zhuǎn)發(fā)請求 287
21.5 注入腳本 288
21.6 監(jiān)控cookie 289

第22章 其他實踐指導(dǎo) 292
22.1 分析首屏加載時間 292
22.2 模擬弱網(wǎng)環(huán)境 294
22.3 數(shù)據(jù)存儲方案性能對比 296
22.4 加載本地圖片 302
22.5 桌面端編程的生態(tài)演化 302
22.6 Electron的競爭對手 304

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.talentonion.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號