根据腾讯官方在公测群中的公告,新版Windows QQ公测体验安装包将于3月24日左右发出。新版 Windows QQ 将采用全新 QQ NT 架构,并焕新了交互界面,更加个性美观,统一简洁。对于"NT"架构这个字眼,大概猜测一下应该是“New Technoly”或“New Technology”的意思,代表“新技术”,而这所谓的新技术其实就是基于 Electron 开发的,有些人看到 Electron 就笑了,想到了 性能低、占用内存大、安装包巨大 等缺点,那么究竟如何呢?
QQ Linux新版
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
首先我们先来看一下新的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前端来说更为稀少难找,并且薪资成本高的缘故吧。
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通信层面,以便控制内存的,后面我们拭目以待吧。
目前,腾讯 QQ 已经发布了 最新的macOS 版和 Linux 版。据 QQ Linux 版介绍,QQ 全新版本采用了全新架构 QQ NT 技术架构驱动,支持消息、小世界、QQ 空间板块等功能,还增加了夜间模式、截图能力、群应用、全局搜索能力,UI 方面采用了与微信相似的三栏式设计。不过,由于NT架构对于Electron的依赖,新版QQ对于电脑内存的需求远高于老版本。另外一点,Electron毕竟是外国的开源框架(特别是chromium内核),腾讯可能需要考虑技术封锁的可能性?
关键词: