【速看料】如何看待最新版QQ的NT技术架构?Electron技术要再次火爆?

1、引言

根据腾讯官方在公测群中的公告,新版Windows QQ公测体验安装包将于3月24日左右发出。新版 Windows QQ 将采用全新 QQ NT 架构,并焕新了交互界面,更加个性美观,统一简洁。对于"NT"架构这个字眼,大概猜测一下应该是“New Technoly”或“New Technology”的意思,代表“新技术”,而这所谓的新技术其实就是基于 Electron 开发的,有些人看到 Electron 就笑了,想到了 性能低、占用内存大、安装包巨大 等缺点,那么究竟如何呢?

QQ Linux新版

1、QQ不同平台的历史背景

2000年左右, QQ2000版本发布 ,最开始主要是Windows版本。 2011年11月24日,在感恩节当天,QQ2011foriPhone V1.6正式上线,而安卓版本则是于2010年QQ发布的。对于Linux系统版本QQ迭代比较慢一些,主要节点如下: 2008年07月31日推出 Linux QQ 1.0;2019年10月24日推出 Linux QQ 2.0;2022年12月30日 推出Linux QQ 3.0!


(资料图片仅供参考)

Windows版本QQ

3个不同的系统端最早都是独立的团队实现的三套不同的代码,而Windows平台由于市场占有率高的原因,功能最丰富全面。Mac版本QQ主打创新体验,功能相对较少。Linux版本由于使用量最少,因此功能最为简陋。随着移动互联网的蓬勃发展以及腾讯公司的各种组织架构调整、人员流动和业务迭代,桌面端QQ逐渐变得比较臃肿,并且维护难度大,更新迭代慢。

Linux版本QQ

对于3个不同的平台代码来说,想要同时保持Windows/Mac/Linux三个桌面端QQ的高速迭代和功能的优化显然是一项艰巨和困难的任务,面临着高成本、高投入和高难度问题。在这样的历史背景下,代码的复用——最好是实现同一套代码能在多端运行,并保持统一的体验就变得至关重要。这样能够大幅度的提升研发效率,同时提升客户端性能和用户的产品体验,于是,跨平台的方案就成为了首选。

Mac版本QQ

2、跨平台方案的选择

首先我们先来看一下新的NT桌面端架构,如下图所示:

新的NT桌面端架构

从中我们可以看到,腾讯团队选择了比较成熟的Electron跨平台框架,而非大多数C++开发人员认为的Qt跨平台框架。对于这个选择结果我们可以去猜测推理一下,基本是3个方面的原因:高成熟度、低开发成本和技术团队。例如React Native、Flutter、Tauri等跨平台框架,除了框架本身成熟外,还要考虑生态链以及工具链的成熟度,这些都需要高额的成本,相较之下使用Electron,版本的迭代速度和社区氛围都很不错,这些年主流的桌面端应用基本都选择了Electron,如VScode、Discord、Slack、Skype、Whatsapp、Figma等等。因此QQ团队选择Electron也不失为一种好的选择。

Qt

对于技术团队来说,个人并不太了解QQ团队在技术方向上的人才储备,按道理和经验来说,腾讯在C++方面人才应该是非常充足的吧,找出一些对Qt比较熟悉的开发人员应该不是什么大问题,并且Qt在性能上是一个更好的选择。也可能是由于C++开发人员相较于Web前端来说更为稀少难找,并且薪资成本高的缘故吧。

3、Electron框架

Electron框架 是使用 JavaScript , HTML 和 CSS 构建跨平台的 桌面应用程序 框架,兼容 Mac 、 Windows 和 Linux ,可以构建出同时支持三个平台的 应用程序 。 Electron项目的前身是Atom Shell,基于Node.js和Chromium实现跨平台的桌面GUI应用程序开发。

Electron框架

Electron结合了Chromium和node.js,让桌面应用的开发变成了一件美妙的事情:HTML5前端负责UI呈现和用户交互体验,Node负责与操作系统底层交互,实现一些仅靠前端无法实现的功能,如对文件系统的读写,系统底层API的调用等,并且可以通过node modules进行扩展。此外,开发人员只需要学习一些前端开发的知识,就能很快上手,加上H5的各种框架模板样式,可以做出华丽的用户界面,交互体验也是非常棒的。

但是,Electron的弊端也非常明显,比如性能不如C++、C#,毕竟视图界面需要靠H5去渲染,这个过程和浏览器渲染网页并没有本质的区别。此外软件的体积非常庞大,比如随便做一个最小的App,例如记事本级别的软件,代码可能只有几十k,但引擎能有几百兆。毕竟,Electron本身基本上就是个完整的Chromium了,再加上Node.js,基本上一个App差不多要占400多MB空间,还不包括AppData中的用户数据以及各种缓存、Cookie、Storage……对于Electron应用的内存问题,QQ团队宣称会充分细致地针对每种场景进行分析,再结合定制深度优化Electron和与Native通信层面,以便控制内存的,后面我们拭目以待吧。

4、结语

目前,腾讯 QQ 已经发布了 最新的macOS 版和 Linux 版。据 QQ Linux 版介绍,QQ 全新版本采用了全新架构 QQ NT 技术架构驱动,支持消息、小世界、QQ 空间板块等功能,还增加了夜间模式、截图能力、群应用、全局搜索能力,UI 方面采用了与微信相似的三栏式设计。不过,由于NT架构对于Electron的依赖,新版QQ对于电脑内存的需求远高于老版本。另外一点,Electron毕竟是外国的开源框架(特别是chromium内核),腾讯可能需要考虑技术封锁的可能性?

关键词:

推荐DIY文章
主机存在磨损或划痕风险 PICO4便携包宣布召回
穿越湖海!特斯拉Cybertruck电动皮卡可以当“船”用
vivoXFold+折叠旗舰开售 配备蔡司全焦段旗舰四摄
飞凡R7正式上市 全系标配换电架构
中兴Axon30S开售 拥有黑色蓝色两款配色
荣耀MagicBookV14 2022正式开售 搭载TOF传感器
it