腾讯开发者谈基于 Electron 技术的 Windows 版 QQ,将带来哪些新变化?

Electron环境搭建详细讲解_window qq使用electron框架,2024年最新涨姿势了 【代码】Electron环境搭建详细讲解_window qq使用electron框架,2024年最新涨姿势了。 阅读详情

腾讯客户端工程师(知乎 ID:MagiLu)对大家比较关注的一些问题进行了解答。

以下为回答原文:

基于 Electron 技术的 Windows 版 QQ 内测版本预计 2023 年推出,该版本有哪些新功能?

感谢大家对新版桌面 QQ NT 的使用和关注,今年 QQ 团队启动了 QQ 的架构升级计划,第一站就是解决目前桌面端迭代慢的问题,我们使用新架构从前到后对 QQ 代码进行了重构,而其中选择使用 Electron 作为新版 QQ 桌面端 UI 跨平台解决方案,是基于提升研发效率、框架成熟度、团队技术及人才积累等几个方面综合考虑的结果。

1. 新版 QQ 使用跨平台方案的背景

由于历史原因,QQ 最先有 Windows 版本,然后有了 Mac 和 Linux 版本,三端最早都是独立的团队和独立的代码实现,Windows 功能最丰富全面,Mac 主打创新体验,功能相对较少,Linux 最简陋,随着移动互联网的洗礼,各种组织架构调整、人才流动和业务兴替,当前的桌面端 QQ 处于一个比较臃肿、难以维护、缺少更新迭代的状态。

随着远程办公和远程教育的普及,桌面端又开始回到大家的视野,有旺盛的需求,但要同时维护 QQ 的 Windows / Mac / Linux 三个桌面端,并确保每个端都保持快速、高质量的迭代,显然是一件高成本、高投入、难度大的事。在这样的背景下,要把 QQ 桌面端重新打磨好,我们就需要尽可能多的复用代码,实现一套代码、多端运行、体验统一,提升研发效率,持续提升客户端性能和用户的产品体验,同时满足 Windows / Mac / Linux 三大桌面平台用户的需求。于是,跨平台的复用方案就变成了我们自然而然的选择。

2.跨平台方案的选择

首先,我们希望最后选择的跨平台方案应该是成熟足够、低开发和使用成本的,不需要为了使用框架本身,还需要投入额外巨大的人力成本。这个其实在 React Native、Flutter、Tauri 等跨平台框架的使用过程中,我们都遇到过类似的问题,除了功能开发,为了把框架生态、周边、工具链建设好,还需要投入巨大的额外成本,Qt 也有类似的问题。而使用 Electron,对于 Web 前端开发同学,基本上是 0 成本,现有的 Web 前端的大部分基建都可以直接复用,而且使用 Web 开发 UI 的效率,在主流技术栈里算是很高的了。并且这几年主流的桌面端应用基本都选择了 Electron,如 VScode、Discord、Slack、Skype、Whatsapp、Figma 等等(https://www.electronjs.org/ apps),新的桌面应用基本上也是首选 Electron,另外,Electron 版本的迭代速度和社区氛围都很在线。

其次,技术选型是否适合当前团队也是一个考虑点,团队是否有相关的技术积累,是否有人才储备来持续投入这个技术栈也非常重要。Qt 的确在性能上是一个很好的选择,但目前团队对 Qt 没有太多积累,基建基本没有,而且市场上相关人才其实比较匮乏,招聘就更难了,而当前 QQ 团队 Web 前端团队积累是比较充分的,可以比较好的权衡质量、性能和效率。

最后,Electron 只是目前新版 QQ 桌面 UI 跨平台的部分,在总体项目中占比较小,并不是 WebQQ 或者网页版 QQ 或者内嵌浏览器,新版 QQ 其实基于 NT 架构进行了完整的重构和重写,基本构思如下图,可以看到核心的 QQ 逻辑还是运行在 C++ 这一层。

3.Electron 应用的内存占用

至于大家关心的 Electron 应用的内存问题,并非不能被优化和解决。由于一般 Web 应用的短周期使用路径,往往不太关注内存使用。而使用 QQ 中群聊和图文消息比较多情况,也会给内存带来不小的考验。但是当我们沉下心来,充分细致地针对每种场景进行分析,再结合定制深度优化 Electron 和与 Native 通信层面的优化,内存可以被很好控制,剩下的不过是再把一些内存泄漏的场景找出来而已。目前阶段,我们基本上一到两周就会出一个新版本,比如今天灰度的 Mac 版本,在内存占用方面就做了非常大的优化,有兴趣的同学可以使用最新版本,可以长时间运行跟老版本做个对比,已经得到明显的优化,而且优化还在持续中,敬请期待。

4.用户体验和反馈

新的 Mac 版 QQ 上线以来,其实我们一边不断迭代新功能,一边持续性能优化,过程中也收到很多不错的内测反馈和好评,也给了我们不少信心去选择并坚持这个技术路线。

最后,新版 LinuxQQ 已经在内测中,很快将和大家见面。能够快速推出功能齐全的 Linux 版 QQ,也是得益于所选方案给带来的迭代效率明显提升。

 

Windows微信QQ防撤回补丁RevokeMsgPatcher原理与实战指南 在即时通讯软件中,消息撤回功能旨在为用户提供纠错机会,但其背后的实现原理涉及客户端本地消息处理逻辑。通过逆向工程分析,开发者可以定位到执行消息清除操作的特征码(二进制字节序列),并利用十六进制编辑技术进行指令替换(如将函数调用改为空操作NOP),从而实现本地防撤回效果。这种技术方案在工程实践上具有明确的实用价值,尤其适用于需要留存关键沟通记录、防止信息缺失的办公与协作场景。本文以热门的RevokeMsgPatcher工具为例,深入解析其通过特征码定位与DLL文件修改实现微信、QQ消息防撤回的核心机制,并详细 阅读详情

相关推荐

开源桌面宠物项目:零门槛复活QQ宠物,重温经典养成体验

桌面应用开发是软件工程中的重要领域,它允许开发者创建运行在操作系统上的本地程序。其原理通常基于特定框架(如Electron)将Web技术栈封装为原生应用,从而实现跨平台部署。这类技术的核心价值在于平衡开发效率与用户体验,为轻量级工具、效率软件和娱乐应用提供了高效实现路径。在众多应用场景中,怀旧经典软件的复刻与再造是一个独特方向,它巧妙地将情感需求与开源工程实践相结合。本文聚焦于一个典型的开源桌面宠物项目,它通过本地化运行完美避开了对高性能显卡和网络服务的依赖,实现了极低的硬件门槛。项目复刻了经典的QQ宠物养

weixin_30430169的博客 464

腾讯QQ新版的秘密武器:Electron框架如何实现无缝跨平台体验

新版QQ大家都用过,而腾讯为什么要使用大量人力来构建新版QQ呢?腾讯QQ使用Electron框架就是实现无缝跨平台体验。通过使用Electron,QQ能够在Windows、macOS和Linux上提供一致的用户体验,同时保持高性能和稳定性。Electron框架解决了QQ在不同平台上 native 应用开发难度大、维护成本高的问题

鸽芷咕的博客 1万+

新版微信QQ防撤回补丁实战:RevokeMsgPatcher原理与适配指南

在即时通讯软件中,消息撤回功能允许用户在一定时间内撤回已发送的消息,这基于客户端与服务器之间的指令交互协议。其技术原理通常涉及客户端在收到撤回指令后,对本地消息记录进行状态标记或删除操作。从软件工程角度看,这种机制体现了数据状态管理和用户交互设计的基本思想。对于需要长期保存关键沟通记录的场景,如技术讨论、项目交接或法律咨询,消息的完整性和可追溯性具有重要价值。因此,防撤回技术应运而生,它通过静态补丁或动态注入等方式,修改客户端处理撤回指令的逻辑流程,从而保留被撤回的消息内容。本文聚焦于广泛使用的开源工具Re

weixin_30920597的博客 612

Electron以慢著称,为什么桌面QQ却选择它做架构升级?跟着大厂玩(electron-egg)

🍩为什么使用?桌面软件(办公方向、 个人工具),仍然是未来十几年PC端需求之一,提高工作效率🍉只需懂 JavaScript🍑所有开发者都能学会桌面软件研发本期结束咱们下次再见👋~🌊 关注我不迷路,如果本篇文章对你有所帮助,或者你有什么疑问,欢迎在评论区留言,我一般看到都会回复的。我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

杨不易呀 979

基于Electron与Canvas的桌面宠物开发:从原理到实践

桌面应用开发是前端技术栈的重要延伸,其核心在于利用Web技术构建跨平台的本地软件。Electron框架通过结合Chromium和Node.js,实现了使用HTML、CSS和JavaScript开发桌面应用的能力,其原理基于主进程与渲染进程的分离架构。Canvas动画技术则为动态图形渲染提供了基础,通过精灵图和状态机管理可实现复杂的交互效果。这些技术的工程价值在于能够低成本、高效率地创建个性化、高自由度的桌面工具。在应用场景上,从信息看板到系统监控助手,现代桌面应用正变得日益丰富。本文聚焦于桌面宠物这一具体实

weixin_30326515的博客 404

全新重构,探寻 24 岁 QQ 大重构背后的思考

在瞬息万变的互联网行业中,年过二十四的 QQ 堪称超长寿的产品,见证了中国互联网崛起的完整历程。然而,如今这个元老级产品经历了一次从内到外彻底的重构。在这次重构中,QQ 选择了 Electron 作为 UI 跨平台开发框架。尽管 Electron 被 Slack、Visual Studio Code 和 Discord 等大型产品广泛使用,但也引发了一些网友的担忧,例如内存占用、安装包体积和启动速度等方面的问题。

xiangzhihong8的专栏 968

QQ 已实现 “三端同步更新”,底层 NT 架构基于 Electron

Electron 是使用 JavaScript,HTML 和 CSS 构建跨平台的桌面应用程序框架,基于 Chromium 和 Node.js,兼容 Mac、Windows 和 Linux。Windows 系统有的,Linux 系统早晚都会有,真正做到三端统一。腾讯QQ 已实现 “三端同步更新”(Windows、Linux 和 Mac),并且未来也会继续执行 “三端同步更新” 的策略。QQ 基于 NT 技术架构,实现了桌面端 QQ 的三端体验统一(Windows、macOS 和 Linux)。

Jdjdjjdjdjdje的博客 932

Python自动化办公:5分钟搞定钉钉群文件自动发送(附完整代码)

本文详细介绍了如何利用Python实现钉钉群文件的自动化发送。通过结合钉钉企业内部应用与群机器人API,构建了包含智能令牌管理、文件上传与消息发送的完整工作流。文章提供了可直接复用的完整代码,并分享了定时任务、目录监听等进阶实战方案,帮助职场人士高效解决重复性文件发送难题,实现办公自动化。

7z8x2c4v6b9的博客 325

Electron架构优化:QQ桌面版内存管理实战

跨平台桌面应用开发中,Electron框架因其Web技术栈优势被广泛采用,但内存管理始终是核心挑战。通过Chromium渲染引擎与Node.js的深度整合,开发者能快速构建功能丰富的应用,但需面对多进程架构带来的内存开销。在大型商业应用场景下,采用模块化设计、动态加载策略和内存监控体系可显著提升性能。以腾讯QQ桌面版为例,通过进程模型重构、虚拟列表技术等优化手段,成功将内存占用降低45%。这些实践为Electron应用开发提供了宝贵经验,特别是在IM软件等高并发场景中,平衡性能与开发效率尤为重要。

weixin_30595035的博客 364

用迅为RK3588开发板DIY无人机飞控:从电路设计到PID调参全记录

本文详细记录了使用迅为RK3588开发板DIY无人机飞控的全过程,从硬件选型、PCB设计到实时系统构建和PID调参。RK3588核心板凭借其强大的AI算力和丰富接口,成为高性能无人机控制解决方案的理想选择。文章还分享了视觉导航系统集成和实际飞行测试经验,为硬件爱好者提供实用参考。

weixin_29053577的博客 434

AXI2APB_bridge 设计

此处研究AHB Slave到 APB master的桥接器,实现接口转化,例如下图之后是参数描述

Starry__的博客 4036

全新暗黑版微信来了,腾讯使用QT重构!

大家现在看到的很多软件,像某网盘,某下载软件等等,都给你塞了一个浏览器内核在里面,这样一加起来,你的电脑上可能都有十几个甚至几十个浏览器内核了,这么多一起跑,这不慢就怪了。据网络上的信息,Windows版本的微信之前采用的Duilib这个库,QQ也曾经用过这个库,但麻烦就在于它没法跨平台,Linux版本就常年摆烂中。但有了Electron后,只需要招一波人,套个浏览器的壳,就能做到跨平台,至于性能,慢点就慢点吧。首先我发现了一个细节,这个新版本的微信,安装后不管是文件夹还是可执行程序的命名上,都由原来的。

IT界那些事儿 1万+

使用abagen工具箱获取基于脑区的基因表达矩阵

脑区模板定义了您感兴趣的脑区的空间位置。abagen提供了一些预定义的脑区模板,您可以选择使用,也可以使用自定义的脑区模板。它提供了一种简便的方式来获取基于脑区的基因表达矩阵。abagen需要使用Allen脑图谱数据来获取基因表达矩阵。您可以使用abagen内置的下载功能来获取这些数据。这就是使用abagen工具箱获取基于脑区的基因表达矩阵的详细步骤。通过按照上述步骤操作,您可以轻松获取并使用Allen脑图谱数据中的基因表达信息。一旦您加载了脑区模板,您可以使用abagen来获取基于脑区的基因表达矩阵。

web_bug407的博客 1326

RevokeMsgPatcher终极指南:Windows平台微信QQ防撤回补丁深度技术解析

RevokeMsgPatcher是一款专为Windows平台腾讯系即时通讯软件设计的防撤回补丁工具,支持微信、QQ、TIM等多款应用的防撤回功能实现。通过巧妙的二进制补丁技术,该工具能够有效绕过消息撤回机制,让用户完整查看已发送的消息内容。本文将深度解析其技术原理、实现机制以及高级应用技巧。 ## 技术架构与核心原理 ### 二进制补丁机制解析 RevokeMsgPatcher的核心技术基于

gitblog_00298的博客 1025

【保姆级教程】基于UNet++&MobileNetv2的语义分割模型从训练到RK3588部署:让边缘AI落地效率提升300%

通过SMP库一键构建encoder_name="mobilenet_v2", # 选择MobileNetv2作为骨干encoder_weights="imagenet", # 加载预训练权重加速收敛in_channels=3, # 输入图像通道数(RGB)classes=29, # Cityscapes数据集类别数activation=None # 输出无激活,便于后续损失计算本教程从“模型设计-训练-转换-边缘部署”全链路拆解了。

m0_71589036的博客 89

Python 复现AlexNet框架代码

【代码】Python 复现AlexNet框架代码。

Quintin 2420

逆向工程实践指南:Windows平台下腾讯系应用防撤回技术深度剖析

你是否曾遇到过这样的场景:在微信或QQ群聊中,一条重要消息突然消失,只留下"对方已撤回一条消息"的提示?这种令人沮丧的体验催生了一项独特的技术需求——消息防撤回。今天,我们将深入探索一个开源项目,它通过巧妙的二进制修改技术,为Windows平台上的腾讯系应用提供了防撤回解决方案。 ## 逆向工程的实战场景:为何需要防撤回? 在即时通讯成为工作和生活核心工具的今天,消息撤回功能虽然为用户提供了纠

gitblog_00385的博客 825

从 SEGW 到 SADL 的那根线,彻底理解 OData Data Source Mapping

本文摘要(150字): 在SAP Gateway的SADL型OData服务开发中,"Map to Data Source"是关键配置环节。与传统RFC映射不同,SADL映射不是针对单个CRUDQ操作,而是建立OData模型与SADL业务实体间的完整语义对应关系。通过属性映射和关联映射,系统能自动处理数据获取和导航请求。映射编辑器支持三种模式:属性映射处理字段对应,关联映射处理模型间关系,动作映射处理业务操作。映射的本质是建立语义翻译表,决定了后续OData请求如何转化为后端业务实体访问,而非简单的字段重命名

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 61

深入解密Windows防撤回工具:5个高级技巧与实战指南

RevokeMsgPatcher是一款开源的Windows平台防撤回工具,专为微信、QQ、TIM等腾讯系即时通讯软件设计。通过二进制补丁技术,这款工具能够有效拦截消息撤回功能,让用户不再错过任何已发送的消息。💡 无论是技术爱好者还是普通用户,都能通过这款工具深入了解Windows平台软件修改的技术奥秘。 ## 🔥 项目概述与价值定位 RevokeMsgPatcher的核心价值在于将复杂的逆

gitblog_01087的博客 913

关于cefsharp访问iqiyi.com显示403 Forbidden解决办法(2种方法)

cefsharp不加UserAgent的默认值为 (注意126是当前cefsharp的版本)Edge浏览器的UserAgent 为 (edge的版本是128的)说明根据浏览器的不同,UserAgent可能不太一样。

无线智能模块 可视DIY智能专家 1319

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Windows平台微信QQ防撤回补丁技术原理与实战指南

在Windows桌面软件开发领域,二进制补丁技术是一种通过直接修改可执行文件或动态链接库的机器码,来改变程序行为的底层技术。其核心原理在于定位目标函数在内存或文件中的特定指令序列(特征码),并用新的指令(如跳转或空操作)覆盖原有逻辑,从而实现对程序流程的干预。这项技术的工程价值在于,它能在不拥有源代码的情况下,为已编译的软件添加、移除或修改特定功能,是软件逆向工程和安全研究中的重要手段。典型的应用场景包括软件本地化、漏洞修复、功能增强以及安全测试等。本文聚焦于如何将二进制补丁与特征码定位技术,应用于微信、Q

weixin_34348174的博客 319

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

深度解析:如何高效实现Windows平台微信/QQ/TIM防撤回补丁的终极指南

在即时通讯软件成为日常工作生活必备工具的今天,消息撤回功能虽然提供了纠错便利,但也催生了用户对消息持久性的需求。**RevokeMsgPatcher**作为一款开源的Windows平台防撤回工具,通过巧妙的二进制补丁技术,为微信、QQ、TIM等腾讯系应用提供了完整的防撤回解决方案。本文将为你深度解析这一工具的技术原理、实现机制以及在实际应用中的高级配置技巧,让你全面掌握Windows应用功能增强的

gitblog_00846的博客 1031

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

RevokeMsgPatcher深度解析:Windows平台二进制补丁技术实战指南

RevokeMsgPatcher作为Windows平台微信、QQ、TIM等腾讯系应用的反撤回解决方案,通过二进制补丁技术实现了对目标应用程序的功能修改。该项目采用C#开发,通过特征码匹配和字节级修改的方式,在不修改原始程序逻辑的前提下,实现了消息防撤回和多开功能。本文将深入剖析其技术原理、实现机制和实际应用场景。 ## 技术背景与逆向工程生态 在Windows应用程序安全研究领域,二进制补丁技

gitblog_00557的博客 963

终极指南:如何通过二进制补丁实现Windows微信/QQ/TIM防撤回功能

你是否曾经因为错过了朋友撤回的重要消息而感到困扰?或者因为工作需要,希望保留聊天记录中的关键信息?RevokeMsgPatcher 是一个专门为Windows平台设计的开源工具,它通过巧妙的二进制补丁技术,为微信、QQ、TIM等腾讯系应用提供了防撤回解决方案。在本文中,我们将深入探讨这个工具的工作原理、实现路径以及如何安全地使用它来保护你的聊天记录。 ## 问题根源:为什么我们需要防撤回功能?

gitblog_01087的博客 451

5大核心功能解密:RevokeMsgPatcher如何实现Windows微信QQ消息防撤回

在即时通讯软件成为日常沟通必备工具的今天,消息撤回功能虽然为用户提供了纠错便利,但也带来了信息保存的挑战。RevokeMsgPatcher作为一款开源的Windows平台防撤回工具,通过精妙的二进制补丁技术,为微信、QQ、TIM等腾讯系应用提供了可靠的消息防撤回解决方案。本文将深入解析这一工具的技术原理、实现机制以及实际应用技巧。 [![微信防撤回补丁逆向工程界面](https://raw.gi

gitblog_00362的博客 421

electron打包你的h5应用成桌面应用

使用 JavaScript,HTML 和 CSS 构建跨平台的桌面应用程序。

debug 1214
上一篇: QQ 等级全球第一的人找到了:小时候家里开网吧
下一篇: RMS:GNU Emacs最不应该支持的语言是JavaScript
IT界那些事儿
博客等级 码龄6年 2万+粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值