(1). 背景:
①. 业务发展,需要用到桌面端技术:
a. 如离线可用、调用桌面系统能力.
②. 桌面端的开发方式:
a. Native、QT、Flutter、NW、Electron、Tarui
1. 技术选型是Electron
Electron是一个可以使用Web技术来开发跨平台桌面应用的开发框架
(1). 其技术组成如下:
①. Electron = Chromium + Node.js + Native API
②. Electron应用包体积大的根本原因是什么?
a. 和chromium的框架设计有关:
(1). 其对很多功能都没有宏控制
(2). 导致很难把庞大复杂的细节功能去除掉
b. 造成了基于chromium的开发框架,如electron、nwjs打出的包起步就是100多M
(4). Electron是多进程架构,架构具有以下特点:
①. 由一个主进程和N个渲染进程组成
②. 主进程承担主导作用,用于完成各种跨平台和原生交互
③. 渲染进程可以是多个,使用Web技术开发,通过浏览器内核渲染页面
④. 主进程和渲染进程通过进程间通信来完成各种功能
(5). Electron进程间通信技术原理:
①. electron使用IPC(interprocess communication)在进程之间进行通信
②. 其提供了IPC通信模块,主进程的ipcMain和渲染进程的ipcRenderer
③. 从electron源码来看:
a. ipcMain和ipcRenderer都是EventEmitter对象