前几天逛知乎,发现了一个提问:
微信居然换QT框架了!作为一名老C++er狂喜啊,赶紧去研究了一下。
在微信的官网,已经放出了4.0.0的测试版本供大家下载安装使用:
这个测试版大家可以放心安装,它不会覆盖你电脑上现有的微信,而是可以与现有稳定版本共存。
首先我发现了一个细节,这个新版本的微信,安装后不管是文件夹还是可执行程序的命名上,都由原来的WeChat
改为了Weixin
:
整个界面布局和之前版本大体差不多,但UI细节看起来更加简洁了,而且还支持了界面上文字的大小设置:
另外还有非常重要的一个功能是,新版微信有暗黑模式了:
要说4.0技术层面最大的亮点,那就是采用了QT做了UI框架了!
这是用Spy++看到的微信窗口类名:
用IDA打开,可以看到QT的很多信息:
在各种软件都在Electron化的今天,微信此举可谓洪流中的逆行者!就连隔壁QQ都开始用Electron了!
大家有没有发现,现在自己的电脑配置越来越高,动不动就十几个G内存,但性能好像跟以前并没有太大的变化。要知道,十几年前大多数个人PC电脑,内存不过2G、4G,有8个G都算高配了。
这里面很重要的一个原因,就是越来越多的软件Electron化!它们的UI界面都是前端JS开发出来的。大家现在看到的很多软件,像某网盘,某下载软件等等,都给你塞了一个浏览器内核在里面,这样一加起来,你的电脑上可能都有十几个甚至几十个浏览器内核了,这么多一起跑,这不慢就怪了。
但这也无可厚非,如果不用Electron这样的技术,很难做到跨平台,公司里就要维持Mac、Windows、Linux三个平台的开发团队,成本自然很高。而且Native开发本身难度就比Web开发大得多,连小马哥都曾经坦言Windows开发又麻烦又没人用:
但有了Electron后,只需要招一波人,套个浏览器的壳,就能做到跨平台,至于性能,慢点就慢点吧。
据网络上的信息,Windows版本的微信之前采用的Duilib这个库,QQ也曾经用过这个库,但麻烦就在于它没法跨平台,Linux版本就常年摆烂中。
从这一次切换到QT来看,微信团队还是有点技术追求的,不甘心随大流。腾讯本身也是国内做C++开发的大厂,也拥有这样强大的技术实力去做这件事。加之信创大势所趋,Linux版本未来也会越来越多,跨平台也越来越紧迫了。
对于跨平台的技术方案,你觉得Electron和QT哪个更好,欢迎留言交流。
via公众号:脚本之家(jb51net)