内容简介
这是一本能帮助读者夯实Electron基础进而开发出稳定、健壮的Electron应用的著作。
书中对Electron的工作原理、大型工程构建、常见技术方案、周边生态工具等进行了细致、深入地讲解。
工作原理维度:
对Electron及其周边工具的原理进行了深入讲解,包括Electron依赖包的原理、Electron原理、electron-builder的原理等。
工程构建维度:
讲解了如何驾驭和构建一个大型Electron工程,包括使用各种现代前端构建工具构建Electron工程、自动化测试、编译和调试Electron源码等。
技术方案维度:
总结了实践过程中遇到的一些技术难题以及应对这些难题的技术方案,包括跨进程消息总线、窗口池、大数据渲染、点对点通信等。
周边工具维度:
作者根据自己的“踩坑”经验和教训,有针对性地讲解了大量Electron的周边工具、库和技术,涉及Qt开发框架、C++语言、Node.js框架甚至Vite构建工具等,帮助读者拓宽技术广度,掌握开发Electron应用需要的全栈技术。
作者简介
刘晓伦 著:刘晓伦
资深技术专家,有10余年研发经验,是Electron及其相关技术在企业应用领域的早期实践者,作者还为Electron项目提交过数个Issue和Pull Request均被官方接纳。
原远传研发中心负责人、小远机器人研发总监。现在担任一家创业公司的技术负责人,负责的产品以Electron为主要技术方向。
除此之外,作者还有着十余年的前端及C++(Qt)的开发经验,深入研究过Chromium的源码及相关的协议(DevTools Protocol和V8 Debugger Protocol),其主导研发的产品为数家世界五百强企业提供服务。
目录
前言第一部分 原理
第1章 Electron包原理解析3
1.1 安装失败3
1.2 npm钩子4
1.3 镜像策略6
1.4 缓存策略9
1.5 注入命令11
1.6 共享环境变量13
1.7 合适的版本15
第2章 Electron原理解析17
2.1 Chromium原理17
2.2 Node.js原理20
2.3 源码结构23
2.4 主进程Node.js环境25
2.5 公开API27
2.6 不同进程不同的API31
2.7 加载应用入口脚本32
2.8 提供系统底层支持34
2.9 解析asar文件37
2.10 渲染进程Node.js环境41
2.11 支持不同的操作系统42
2.12 进程间通信45
2.13 页面事件48
第3章 electron-builder原理解析52
3.1 使用方法52
3.2 原理介绍53
3.3 伪交叉编译57
3.4 辅助工具app-builder59
3.5 为生产环境安装依赖61
3.6 生成asar62
3.7 修改可执行程序63
3.8 NSIS介绍66
3.9 生成安装包68
第4章 electron-updater原理解析71
4.1 使用方法71
4.2 如何校验新版本的安装包73
4.3 Windows应用升级原理75
4.4 Mac应用升级原理78
第5章 其他重要原理80
5.1 缓存策略与控制80
5.2 V8脚本执行原理83
5.3 V8垃圾收集原理87
第二部分 工程
第6章 使用Vite构建Electron项目91
6.1 Vite为什么如此之快91
6.2 大型Electron工程结构92
6.3 定义启动脚本93
6.4 启动开发服务95
6.5 设置环境变量96
6.6 构建主进程代码98
6.7 启动Electron子进程100
6.8 配置调试环境102
6.9 打包源码104
6.10 打包依赖106
6.11 制成安装程序108
6.12 引入TypeScript支持111
第7章 使用webpack构建Electron项目113
7.1 需求起源113
7.2 准备环境114
7.3 编译主进程代码116
7.4 启动多入口页面调试服务117
7.5 启动Electron子进程120
7.6 制成安装包121
7.7 注册应用内协议123
第8章 使用Rollup构建Electron项目125
8.1 Rollup与Svelte125
8.2 准备开发环境127
8.3 制成安装包130
第9章 自动化测试134
9.1 集成Spectron及Spectron原理134
9.2 在Jest测试框架中使用Spectron137
第10章 编译与调试Electron源码141
10.1 build-tools构建工具介绍141
10.2 手工构建Electron源码142
10.3 构建不同版本的Electron150
10.4 调试Electron源码151
10.5 调试崩溃报告156
第11章 应用分发162
11.1 源码混淆162
11.2 应用签名165
11.3 静默安装与开机自启168
11.4 自定义安装画面170
11.5 软件防杀173
第12章 逆向分析174
12.1 用户安装目录174
12.2 用户数据目录175
12.3 注册表键值177
12.4 自研逆向调试工具178
第13章 其他工程要点183
13.1 使用D8调试工具183
13.2 内存消耗监控185
13.3 子应用管控189
第三部分 实践
第14章 跨进程消息总线195
14.1 前端事件机制195
14.2 Node.js的事件机制197
14.3 Electron进程间通信198
14.4 跨进程事件200
14.5 使用Promise封装事件203
14.6 基于HTMLAPI的跨进程事件205
14.7 跨进程通信带来的问题207
第15章 窗口池209
15.1 窗口渲染过慢209
15.2 构建窗口池210
15.3 构建窗口实例212
15.4 通用的窗口标题栏214
15.5 消费窗口池中的窗口215
15.6 模拟模态窗口216
第16章 原生模块219
16.1 需求起源219
16.2 原生模块开发方式221
16.3 传统原生模块开发223
16.4 使用Node-API开发原生模块225
16.5 Node-API进阶229
16.6 Electron环境下的原生模块233
第17章 应用控制236
17.1 应用单开236
17.2 注册唤起协议237
17.3 唤起外部应用238
17.4 常规截图方案介绍239
17.5 使用第三方截图库241
第18章 Electron与Qt的整合245
18.1 需求起源245
18.2 命名管道服务端247
18.3 命名管道客户端250
18.4 通信协议253
18.5 入口应用配置256
18.6 应用退出的事件顺序258
18.7 关闭窗口的问题260
第19章 大数据渲染262
19.1 常规无限滚动方案介绍262
19.2 DOM结构与样式265
19.3 模拟滚动条267
19.4 处理滚动事件268
19.5 滚动条的显隐动效270
19.6 内置的数据持久化能力271
第20章 点对点通信274
20.1 WebRTC原理274
20.2 构建WebRTC服务器275
20.3 发送超大文件276
20.4 接收超大文件280
第21章 加密信息提取283
21.1 需求起源283
21.2 分析调试源码284
21.3 暴露解密方法286
21.4 转发请求287
21.5 注入脚本288
21.6 监控cookie289
第22章 其他实践指导292
22.1 分析首屏加载时间292
22.2 模拟弱网环境294
22.3 数据存储方案性能对比296
22.4 加载本地图片302
22.5 桌面端编程的生态演化302
22.6 Electron的竞争对手304
······
[ 深入浅出Electron下载地址 ]【免费下载】
最后修改:2024 年 12 月 28 日
© 允许规范转载