Electron源码学习: Electron组成与初始化流程

Electron源码学习: Electron组成与结构

前言

​ 最近研究学习Electron的源码结构已经有一些小的进展, 越接触Electron就越发现组成这个软件的大集合不得了.现在学习到的仍然是这个大集合的冰山一角, 不过还是有必要记录一下.

Electron的兴盛无疑是建立在了巨人的肩膀之上. 我们都知道Electron是建立在Node.js上的, 然后Node.js 是建立在V8上的. Node.js社区的是目前最大的开源社区之一, 无疑Electron的起跑线非常高, 再加上V8的强劲动力,现在程序UI用Electron除了大了点儿, 其他也就没什么不好的了.(除非一些特殊场景)

​ 笔者的分析测试环境都是Windows环境, 但是这对于分析流程来讲并没有什么影响.

Electron的组成

​ 前面提到Electron由大集合组成, 那么在这里就有必要大致了解清楚这个集合里面包含的哪些优秀的开源库, 不然Electron的优秀无从可知.

​ 我大概整理了下这个组成, 理解不深内容有误请指教.

在这里插入图片描述

Node.js: 这个跨平台的开源项目带来了强大的扩展能力; 只从源码上讲, Node.js提供了众多的基础库, 例如: 加解密算法, 文件系统, 网络相关, 操作系统相关, 看electron_node源码组成: (注意: electron所使用的的nodejs版本,并不是完全版的, 在该特制版中, 少了很多的特性, 比如算法处, 目前electron_node中就只有`AES, RC4等有限的集算法, 真正Node.js的环境有一大堆的算法)

在这里插入图片描述

Libuv: node.js异步事件处理库, 在所有的调用都是异步设定下,让node.js的调用速度快上了一大截. 其中node.js的文件系统, 网络相关等功能由该库完成.

V8: node.js名声很高的一个原因就是因为v8, 因为node.js的高效率的核心本质就是因为v8, v8是Google的Javascript引擎, 各种特性加持下, JS的执行速度简直快的飞起. 虽然随着版本的更迭,V8的体积也越来越大, 但是其效率缺越来越恐怖.比如Node.js 12引入了一个Code Cache的技术, 当真是恐怖如斯.

笔者目前学习的两个版本的Electron, 分别是4.2.9 另一个是8.3.0. V4.2.9 并不算老版本, 还是2019年年底的版本, V8.3.0貌似是2020年6月份的版本, 结果在同样的Electron默认启动页面, V8.3.0 的效率比V4. 2.9提升了30%的启动速度. 然而我现在还没有明白发生了什么事情. (希望明白这里的同学告知下, 感谢)

Electron结构

前面的一些介绍, 和源码分析的关系并不大, 这些都是能在网上找到的一些资料. 当然实际测试的确实测试了很多次得出的结论. 那此时此刻肯定大家最关心的还是源码结构的问题. 来看一个图.
在这里插入图片描述
待续中…

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值