微信纯血鸿蒙版正式发布,295天走完微信14年技术之路!

简介: 不管外界如何评价和鞭策,这款产品本身,依然需要研发团队一个键一个键敲出来,从内核,到架构,到内测,到公测,再到一轮一轮的 debug,他们要在不到一年的时间里,走完微信14 年的路。回顾鹅厂所做过的产品里,也许从未有过一款,被如此放在放大镜下凝视。每一次上架,每一个 bug,乃至于每一个里程碑,几乎都预定当天热搜。

本文由腾讯技术团队原创分享于鹅厂黑板报,下文有排版优化。

1、写在前面

直至现在,「微信鸿蒙版」这五个字,依然被赋予着太多意义。

这是一款产品,也不仅仅是一款产品。开发它的本质,是让两个高速前进,相互影响的复杂系统,彼此磨合和熟悉,像是执行一场空中加油任务。

不管外界如何评价和鞭策,这款产品本身,依然需要研发团队一个键一个键敲出来,从内核,到架构,到内测,到公测,再到一轮一轮的 debug,他们要在不到一年的时间里,走完微信14 年的路。

回顾鹅厂所做过的产品里,也许从未有过一款,被如此放在放大镜下凝视。每一次上架,每一个 bug,乃至于每一个里程碑,几乎都预定当天热搜。

站在正式版发布的1 月 9 日,或许这一切都可以风轻云淡地说:the show must go on。但这过去的 295 天里,他们的经历,我们认为值得记录下来,分享给关心微信鸿蒙版的用户朋友们。

技术交流:

- 移动端IM开发入门文章:《新手入门一篇就够:从零开发移动端IM

- 开源IM框架源码:https://github.com/JackJiang2011/MobileIMSDK备用地址点此

(本文已同步发布于:http://www.52im.net/thread-4776-1-1.html

2、2024年3月,集结

鹅厂指派了从塞班(Symbian)时期就负责微信开发工作的团队,来主导微信鸿蒙版。从塞班到智能手表、车机、Linux PC 端的微信,这个团队在内部素以擅长攻克不同环境、不同语言的开发工作著称。

同样很重要的一点是,得益于智能手表端微信的研发工作,微信和华为的两个团队是老相识,这也让双方的对接更加顺畅紧密起来。从三月贯穿到四月,两边通过拉通会、分享会学习鸿蒙系统研发框架,不定时组织技术专题讨论。

双方都很清楚,这不是一场三天两夜就能解决的小规模战斗,而是旷日持久的兵团级战役。兵马未动,粮草先行,敲下第一行代码之前,还有许许多多的工作需要准备。

3、2024年4月,基建

万丈高楼平地起,基建是最重要的第一步。

搞基建,“三通一平”(通电/通路/通水/土地平整)是基本要求,进取一些,可以做到“五通一平”(加入通讯/排污),再进一步,还有“七通一平”(加入通气/有线电视),乃至于“十通一平”(加入宽带/铁路/暖气)。通得越多,越有利于后期扩展和长远发展。

经过塞班、手机、手表等各种终端上的长期打磨,这个团队积累了一套名为Alita(阿丽塔)的跨平台内核。这也为鸿蒙版微信的基建打下了基础。这个阶段的重中之重是,快速熟悉鸿蒙系统,移植基础库,让 Alita 内核能够在鸿蒙系统上运行起来,和华为一边沟通、一边验证推进。

4、2024年5月,架构

接下来考验的是架构能力。开发团队需要设计好鸿蒙微信客户端的架构、编写好各模块文档,支撑各业务进场后能够高效开发。

这一步的难点,在于充分预判到业务之间的复杂解耦,既要降低各业务之间的依赖性,又要提高整体的稳定性,还要留出高可扩展性,属于典型的“我全都要”难题。

这就好比从零开始建设一座城市,要预估到这座百年之后超级都市的人口规模、交通状况、人居需求、产业结构、商业发展等因素,以及提前平衡这些因素之间的关系,需要具备极大的前瞻视角。

技术团队继续摇人,招聘也快马加鞭推进。TAPD(腾讯敏捷产品研发平台)流程图里,他们的首个目标是做出一个基础版本,保证用户能实现收发消息、语音通话等最基础、也是最重要的功能。

5、2024年6月,磨合

进入了真正的手搓环节。flutter(跨平台应用程序开发框架)、liteapp(专为移动端设计的跨平台开发框架)等,都是这个阶段的关键工作。

为了这桌“年夜饭”,技术小哥们一边在厨房切菜烧饭,一边去客厅招呼各方沏茶倒水,让支付和VoIP(语音通话技术)等基础能力陆续凑上一桌。

除了内外部密切的技术沟通,微信和华为团队对彼此的技术标准保持了互相尊重。以相册选图发送功能为例,在 Android 系统上,选图需要获取整个相册权限,也就是说应用可以访问用户的所有照片。在鸿蒙上的选图功能,为了保障用户隐私,微信采用的是 Picker 控件的方式,相册照片的展示和选择逻辑都由 Picker 控件提供,微信只能读取到用户勾选的照片。

6、第一个里程碑:bug 如约而至

赶在6月21日前,团队做好了第一个内部体验版本,包含收发消息、通话功能。和2011年1月21日发布的 iOS和安卓版的微信1.0版本相比,多了语音消息发送。

你可能会不以为然:大动干戈这么久,就整了个这毛坯房?

其实这里蕴含的开发思路,是验证最小可用的原则,本质上是对第一阶段研究鸿蒙语言和系统的成果验收。重要的是把基本功练好,才能为后续的开枝散叶打好底子。

但即便是如此普通的版本,也出了个闪退型 bug,最后查出来是系统的底层 API 问题:同样的代码逻辑,在 iOS 和安卓上能用,但在鸿蒙上行不通。两边团队为此绞尽脑汁,交了两个星期的学费,最后还是靠着某位技术小哥灵光一现想到的。

这个 bug也像是一场结业考试,经此一役,开发进入了快节奏。

微信集合了众多产品功能,各功能间又有复杂的交互和依赖关系,比如小程序的开发就涉及到与支付功能的打通,而支付能力又需要与基础会话功能打通。在完成基建的前提下,基础、支付、小程序……能进场的业务模块都陆续进了场。一个共同的目标是——10月8号鸿蒙公测那天,做出一个新版本。这个版本,将新增微信支付、朋友圈等功能。

7、2024年10月8日:喜欢您来

10月8日,微信鸿蒙原生版开启内测邀请,尝鲜版本包含基础社交通讯音视频通话、朋友圈、微信支付的二维码收/付款等功能。

内测开启,意味着微信和其他所有适配原生鸿蒙的第三方App一样,从内测到应用尝鲜再到公测,走上了鸿蒙系统第三方软件开发的三部曲。

为什么要限量内测而不是一口气开放下载呢?

在全新的平台上,要支撑海量用户、高并发通讯需求,同时涉及支付、小程序、视频等多个大功能模块,还要满足极高频使用下的稳定性,是很大的挑战。

所以,用内测 → 找bug → 修bug → 加大内测的方式,是一个更符合软件开发规律的方式。

经历了4天紧张的测试和debug,包括微信支付在内的多个功能经过严格测试流程后,合入大版本,10 月 12 日,微信鸿蒙原生版正式开始公测。

8、2024年10月~11 月:这都能遇到灰产啊啊啊

公测放量过程中,有一次实际登陆人数不到放量总数的十分之一?某平台上竟然有人公然售卖测试名额?

一系列插曲打破了原定的放量节奏,双方共同排查后发现,原来有人把安装包拿去二手平台牟利。应用商店完善机制后,把漏洞补上。

安装包都能拿来卖,也堪称是国产软件开发史上浓墨重彩的一笔。

微信鸿蒙版在尝鲜专区上线了2万测试名额,但后台显示,登录数据一直较低,我们和华为一同复盘发现,因为有人用脚本去抢名额,触发了应用商店的安全机制,同时扰乱了应用商店的计数逻辑,导致大概90% 的放量被拦截,最终实际下载的用户只有 10%左右。

又是浓墨重彩的一笔......

如何让用户尽可能体验到微信测试版本?

在基本保障尝鲜专区不断档的情况下,11 月 6 日,双方紧急协商,华为将微信鸿蒙版的测试名额大幅扩容,微信再次邀请扩容后的用户分批有序参与内测,共同完善新版本的各种体验。

在不断收集用户反馈、历经数次迭代后,目前的版本已经可以使用视频号、聊天引用、发文件等功能,所有鸿蒙用户也都可以直接下载,更多功能在持续上线。

9、2025年1月9日:不止是微信

吸收了广大用户的反馈和多轮debug后,鸿蒙版微信顺利结束公测,1月9日正式版本上线。你除了能稳定下载和使用微信外,还可以用到 QQ、腾讯视频、腾讯新闻、QQ 音乐等App。

自今年起,腾讯20多款产品通过敏捷开发,实现鸿蒙系统的适配工作,更多腾讯的产品适配也在路上。

一个发生在2024年10月29日的插曲,某种程度上,可以反映微信鸿蒙版开发团队的工作情形和协作流程:

19:20,项目组微信支付团队发现,即将要上架的最新尝鲜版的微信,小部分用户转账入口出现bug,点击后无反应。

20:15,客服团队同步后台客诉情况。

20:57,微信支付团队初步定位,有问题的代码是今日合入导致的,疑似是LiteApp(跨端的框架,微信转账是鸿蒙第一个使用这个框架的功能)的问题。

21:31,进一步定位问题,发现在一些极端情况下, LiteApp的文件缓存写入被系统提示权限不足,联系华为技术团队一起定位。

21:47,支付技术团队完成最新内测版微信的修复,合入后,提交版本给测试团队。

22:32,支付技术团队复盘问题,提出后续改进措施。

22:41,微信基础技术团队向华为应用商店提审新版本内测包。

22:54,向华为应用商店提审尝鲜版。

23:30,最新尝鲜版微信通过审核,上架尝鲜专区,转账问题修复。

微信公众平台曾有一句 slogan 深入人心:再小的个体,也有自己的品牌。同样的,再小的问题,放在微信上,都会被亿量级地扩大。

我们知道,永远等不来“完美交付”这一天。灰度测试、持续迭代,让产品在和用户的互动中得到改进,是腾讯一直以来的产品理念。

感谢微信用户、鸿蒙用户始终跟我们站在一起,7x24小时反馈bug、提出优化意见。如果把新产品开发比做一场足球赛,那希望你们一直都在,做我们敏捷开发“球队”的第12人。

10、微信的其它故事

技术往事:微信估值已超5千亿,雷军曾有机会收编张小龙及其Foxmail

QQ和微信凶猛成长的背后:腾讯网络基础架构的这些年

2017微信数据报告:日活跃用户达9亿、日发消息380亿条

腾讯开发微信花了多少钱?技术难度真这么大?难在哪?

技术往事:“QQ群”和“微信红包”是怎么来的?

开发往事:深度讲述2010到2015,微信一路风雨的背后

开发往事:微信千年不变的那张闪屏图片的由来

开发往事:记录微信3.0版背后的故事(距微信1.0发布9个月时)

一个微信实习生自述:我眼中的微信开发团队

为什么说即时通讯社交APP创业就是一个坑?

微信七年回顾:历经多少质疑和差评,才配拥有今天的强大

前创始团队成员分享:盘点微信的前世今生——微信成功的必然和偶然

即时通讯创业必读:解密微信的产品定位、创新思维、设计法则等

QQ现状深度剖析:你还认为QQ已经被微信打败了吗?

[技术脑洞] 如果把14亿中国人拉到一个微信群里技术上能实现吗?

QQ和微信止步不前,意味着即时通讯社交应用创业的第2春已来?

那些年微信开发过的鸡肋功能,及其带给我们的思考

读懂微信:从1.0到7.0版本,一个主流IM社交工具的进化史

同为IM社交产品中的王者,QQ与微信到底有什么区别

社交应用教父级人物的张小龙和马化腾的同与不同

专访马化腾:首次开谈个人经历、管理心得、技术创新、微信的诞生等

一文读懂微信之父张小龙:失败天才、颠覆者、独裁者、人性操控师

(本文已同步发布于:http://www.52im.net/thread-4776-1-1.html

目录
相关文章
|
6天前
|
供应链 监控 安全
对话|企业如何构建更完善的容器供应链安全防护体系
随着云计算和DevOps的兴起,容器技术和自动化在软件开发中扮演着愈发重要的角色,但也带来了新的安全挑战。阿里云针对这些挑战,组织了一场关于云上安全的深度访谈,邀请了内部专家穆寰、匡大虎和黄竹刚,深入探讨了容器安全与软件供应链安全的关系,分析了当前的安全隐患及应对策略,并介绍了阿里云提供的安全解决方案,包括容器镜像服务ACR、容器服务ACK、网格服务ASM等,旨在帮助企业构建涵盖整个软件开发生命周期的安全防护体系。通过加强基础设施安全性、技术创新以及倡导协同安全理念,阿里云致力于与客户共同建设更加安全可靠的软件供应链环境。
150227 10
|
4天前
|
供应链 监控 安全
|
14天前
|
弹性计算 人工智能 安全
对话 | ECS如何构筑企业上云的第一道安全防线
随着中小企业加速上云,数据泄露、网络攻击等安全威胁日益严重。阿里云推出深度访谈栏目,汇聚产品技术专家,探讨云上安全问题及应对策略。首期节目聚焦ECS安全性,提出三道防线:数据安全、网络安全和身份认证与权限管理,确保用户在云端的数据主权和业务稳定。此外,阿里云还推出了“ECS 99套餐”,以高性价比提供全面的安全保障,帮助中小企业安全上云。
201928 14
对话 | ECS如何构筑企业上云的第一道安全防线
|
6天前
|
SQL 安全 前端开发
预编译为什么能防止SQL注入?
SQL注入是Web应用中常见的安全威胁,攻击者通过构造恶意输入执行未授权的SQL命令。预编译语句(Prepared Statements)是一种有效防御手段,它将SQL代码与数据分离,确保用户输入不会被解释为SQL代码的一部分。本文详细介绍了SQL注入的危害、预编译语句的工作机制,并结合实际案例和多语言代码示例,展示了如何使用预编译语句防止SQL注入,强调了其在提升安全性和性能方面的重要性。
|
10天前
|
搜索推荐 物联网 PyTorch
Qwen2.5-7B-Instruct Lora 微调
本教程介绍如何基于Transformers和PEFT框架对Qwen2.5-7B-Instruct模型进行LoRA微调。
421 34
Qwen2.5-7B-Instruct Lora 微调
|
1月前
|
人工智能 自然语言处理 前端开发
从0开始打造一款APP:前端+搭建本机服务,定制暖冬卫衣先到先得
通义灵码携手科技博主@玺哥超carry 打造全网第一个完整的、面向普通人的自然语言编程教程。完全使用 AI,再配合简单易懂的方法,只要你会打字,就能真正做出一个完整的应用。
9952 29
|
3天前
|
人工智能 算法 搜索推荐
阿里云百炼xWaytoAGI共学课开课:手把手学AI,大咖带你从零搭建AI应用
阿里云百炼xWaytoAGI共学课开课啦。大咖带你从零搭建AI应用,玩转阿里云百炼大模型平台。3天课程,涵盖企业级文本知识库案例、多模态交互应用实操等,适合有开发经验的企业或独立开发者。直播时间:2025年1月7日-9日 20:00,地点:阿里云/WaytoAGI微信视频号。参与课程可赢取定制保温杯、雨伞及磁吸充电宝等奖品。欢迎加入钉钉共学群(群号:101765012406),与百万开发者共学、共享、共实践!
|
3天前
|
SQL 存储 Apache
基于 Flink 进行增量批计算的探索与实践
本文整理自阿里云高级技术专家、Apache Flink PMC朱翥老师在Flink Forward Asia 2024的分享,内容分为三部分:背景介绍、工作介绍和总结展望。首先介绍了增量计算的定义及其与批计算、流计算的区别,阐述了增量计算的优势及典型需求场景,并解释了为何选择Flink进行增量计算。其次,详细描述了当前的工作进展,包括增量计算流程、执行计划生成、控制消费数据量级及执行进度记录恢复等关键技术点。最后,展示了增量计算的简单示例、性能测评结果,并对未来工作进行了规划。
254 5
基于 Flink 进行增量批计算的探索与实践
|
2天前
|
人工智能 自然语言处理 API
阿里云百炼xWaytoAGI共学课DAY1 - 必须了解的企业级AI应用开发知识点
本课程旨在介绍阿里云百炼大模型平台的核心功能和应用场景,帮助开发者和技术小白快速上手,体验AI的强大能力,并探索企业级AI应用开发的可能性。

热门文章

最新文章