微信跨鸿蒙「新生」,却藏着国产化 “成长阵痛”

OFweek电子工程网 中字

新语言,国产化,微信与鸿蒙两大生态融合,背后艰辛何人知

1月9日晚,受人期待已久的鸿蒙原生版微信终于正式上架,一度冲上热搜。目前「微信鸿蒙版」已支持视频号、折叠消息转发、 群红包、转账、小程序等功能,与普通版功能基本相同。

然而开发微信鸿蒙版,需要经历什么?腾讯「鹅厂黑板报」的一篇长文,回顾了这场「国产系统」和「国民级应用」融合的拉力赛,透露出的ITer“辛酸与泪”,也许只有同为开发ICer的人能理解。

“一纸通知”,互联网“三峡大坝”开建

在「微信鸿蒙版」之前,支付宝、抖音、京东、淘宝、美团、WPS office等均已接踵而至,原生鸿蒙生态版图的最后一个TOP应用,微信,却迟迟不能上架,被人一度诟病“耍大牌”。

“2024年3月21日,一份简单又正式的通知来了,大家已经决定了,鸿蒙微信,你牵头来搞。”在开发团队成员@客村小蒋今天的长文总结中,回忆起当初的鸿蒙开发伊始,仍不禁感慨。

要知道,微信从2011年诞生到现在十几年间,不断更新迭代,功能已达数百项之多,涵盖了社交、支付、小程序、公众号、视频号等众多复杂的业务领域,代码量更是庞大到难以计数。

如今要将这些功能用全新的ArkTS编程语言在鸿蒙系统上重新开发,就好比要把一座摩天大楼推倒重建,而且是在全新的地基上,其工程量和数据量简直无法估量。

“不过,对微信团队来说,学习新的编程语言,可能是整个适配工作中,最不算困难的事情之一。在一个全新的平台上,做一款要支撑海量用户、高并发的通讯需求,同时有支付、小程序、视频平台等多个大功能模块的应用,还要满足极高频使用下的稳定性,是更大的挑战。”@客村小蒋这样写道。

为此,微信原生鸿蒙团队,刚开始组建,就有一个堪比iOS、安卓客户端开发团队的规模。第一天开始,鸿蒙微信就是按照“三峡大坝”建的。

“集结”“拉通”“基建”,万丈高楼初见规模

“这个团队在内部素以擅长攻克不同环境、不同语言的开发工作著称。”腾讯指派了从塞班(Symbian)时期就负责微信开发工作的团队,主导微信鸿蒙版的开发。

“负责鸿蒙微信开发的大哥,是老广研,他在鹅厂的时间,比微信的历史都久。” @客村小蒋遥想当年开发微信 1.0 ,老广研负责塞班微信项目的时候。

那时候的诺基亚,如日中天,品牌和市场份额远超现在的苹果,可塞班系统作为一个开放度有限的 “原始操作系统”,开发难度极大,用大哥的形容就是 “刀耕火种”。但他带着团队,硬是凭借一股肯钻研的劲头,在塞班上 “手搓” 出了朋友圈、公众号这些如今我们习以为常的功能。

得益于智能手表端微信的研发工作,腾讯和华为负责鸿蒙微信开发的两个团队是“老相好”。3月到4月,两边集结,开始每个项目开发的准备工作:拉通、对齐、讨论,最终敲定以「Alita内核」作为跨平台内核,移植基础库,让微信,在鸿蒙系统上跑起来。

Alita内核:老广研带着团队做智能手表、车机,包括最早的 Linux PC 端的微信。不同品牌、不同终端,比手机更碎片化的生态,非常需要一个跨平台的内核,把最重要、最基础的能力搭成可复用的基建。在一天和团队一起看了热映的《阿丽塔:战斗天使》,老广研说我们刚立项的跨平台内核,就叫“阿丽塔内核”吧。阿丽塔,又帅又能打。阿丽塔内核,也成了微信跨平台开发的基建。

“开发如建城,需要提前平衡百年后人口规模、交通状况、人民需求、产业结构、商业发展等关系”,微信的海量用户和丰富功能,极大考验开发团队的架构能力和前瞻视角。

技术团队疯狂招聘摇人,开始设计鸿蒙微信客户端的架构、编辑各模块文档,来支撑各业务进场后能够高效开发。在TAPD流程图里,团队首个目标就是做出一个基础版本,保证用户能实现收发消息、语音通话等最基础也最重要的功能。

TAPD:腾讯敏捷产品研发平台

当然,微信和华为两个团队的开发过程中,除了保持密切沟通,对彼此的技术标准也是相当尊重。比如在“相册选图发送功能”开发时,Android系统需要获取整个相册权限(应用可访问用户所有照片),鸿蒙上采用的是Picker控件方式,这也注定由Android到鸿蒙的微信开发,并不是简单的不同编程语言功能迁移,还涉及新的功能需求开发,也意味着更大的工作量。

Picker 控件的方式:相册照片的展示和选择逻辑都由 Picker 控件提供,微信只能读取到用户勾选的照片,来保障用户隐私。

N次测试、bug、debug,正式版上线

以验证最小可用的原则,6月21日,团队终于做好了第一个内部体验版本,包含收发消息、通话功能。但即便如此简单的功能版本,也出了个闪退型 bug,在 iOS 和安卓上能用,但在鸿蒙上行不通。

“两边团队为此绞尽脑汁,交了两个星期的学费,最后还是靠着某位技术小哥灵光一现想到的,这个 bug也像是一场结业考试,经此一役,开发进入了快节奏。”「鹅厂黑板报」这样总结这次的开发小插曲。

不过微信各个功能间犹如错综复杂的蜘蛛网,牵一发而动全身,像微信小程序的开发就涉及到与支付功能的打通,而支付能力又需要与基础会话功能打通,基建框架下团队开始拓展业务模块,支付、小程序等功能陆续进场。

腾讯科兴园和华为松山湖办公室那“半夜常亮的灯”,只为了一个共同的目标——10月8号鸿蒙公测那天,做出一个有微信支付、朋友圈等功能的新版本。

10月8日,微信鸿蒙内测尝鲜版如约而至,包含基础社交通讯音视频通话、朋友圈、微信支付的二维码收/付款等功能。

但也不出意外,微信鸿蒙尝鲜版也是遭遇了诸多吐槽:

"界面乱得离谱,手机字体忽大忽小,智慧屏按钮小得难按。"

"卡顿闪退成日常,上班族刷圈死机,学生党发消息闪退,心血全没。"

"功能缺失更要命,不能转发、语音差、文件传不了,工作学习全受阻。"

"开发团队能不能加把劲,赶紧优化,别的应用都行,别辜负国产融合的期待!"

首批升级了鸿蒙NEXT的用户,由于微信鸿蒙尝鲜版Bug太多、功能不全,纷纷失望回退,而这也给微信鸿蒙开发团队“一记重创”。但是在全新的平台上,要支撑海量用户、高并发通讯需求,同时涉及支付、小程序、视频等多个大功能模块,还要满足极高频使用下的稳定性,本身就是很大的挑战。

所以,团队用内测 → 找bug → 修bug → 加大内测的方式,来符合具有海量用户软件的开发规律。

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

有意思的是,开发团队还遇到国产软件开发史上难得一见的趣事——某平台上竟然有人公然售卖测试名额,安装包都能拿来成为“灰产”拿来卖属实罕见。这还是由于公测放量过程中,有一次实际登录人数不到放量总数的十分之一,双方共同排查后发现,原来有人把安装包拿去二手平台牟利。后来团队也是完善应用商店机制,把漏洞补上。

在吸收了广大用户的反馈和多轮debug后,微信鸿蒙版历经数次迭代后,已经可以使用视频号、聊天引用、发文件等功能,鸿蒙版微信顺利结束公测。

1月9日团队宣布「微信鸿蒙版」正式版本上线。除了能稳定下载和使用微信外,还可以用到 QQ、腾讯视频、腾讯新闻、QQ 音乐等App。

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

然而里面的困阻一切远不是几千个文字就能简单概述,软件国产化途中ITer们的艰辛也许只有他们自己才体会的到。

当着手用鸿蒙新编程语言重构代码时,以前老一套语言传统方法全失灵,前端、后端为了几个简单的功能,就要对着密密麻麻的代码,逐行调试,“眼睛布满红血丝都不自知”。

跨部门甚至跨公司协作时, “部门墙” 的困扰更是成败的关键,需求与现实时常 “打架”。雷军受采访时就曾表示:“打通部门墙是很难做到的一件事”,如果小米造车的不是雷军做大帅,可能光解决 “部门墙”就要耗费团队大半精力和财力。

“白天开无数个会,晚上才有时间写代码。”这是ITer们的常态。为了打造最好的鸿蒙微信,华为和腾讯的开发部门合作频繁沟通磨合,拉通不厌其烦的会议对齐、分析缺陷、理清需求、找到方案。

而这一切的努力也让开发团队能在正式版发布后,有资格云淡风轻说出那句:the show must go on。

微信跨鸿蒙上新生,软件国产化的旗帜

从语言到架构到生态的纯国产化,「微信鸿蒙版」用了一年走了先前十四年路,看似“简单”却藏着多少ITer夜以继日地付出,是薅光了那早已光秃秃的头发,和那半夜回家只能看见熟睡妻儿丈夫的无奈。

@客村小蒋曾言,微信的技术团队,依靠的则是对技术的狂热信念。这就是信念的力量。原生鸿蒙有一次发布会用的主题叫,“待到山花烂漫时”,信念的力量,很强大。

国内仍有更多人在“坚持信念”这条路上摸爬滚打,甚至前路更加艰难。在芯片底层支撑领域,就有很多ICer们为国产EDA软件的崛起在披荆斩棘。

“国外的 EDA 软件不能用,我们只能依靠自己的国产软件。但国产 EDA 软件在算法和模型的优化上还有很长的路要走。比如在进行芯片的性能模拟时,结果的准确性有时还不够高,这就需要我们不断地去改进算法,提高模拟的精度。”

负责开发国产EDA的一名ICer皱着眉头说道,“而且,国产 EDA 软件与先进工艺的适配也是一个大问题。我们很难获取到最新的工艺参数,即使获取到了,要将这些参数准确地应用到软件中,也需要花费大量的时间和精力。”

而相比没有先进设备,没有关键工艺参数,和微信鸿蒙版开发更让ICer们头疼的是——极恶劣的生态,很少厂家愿意使用国产EDA工具。由于国产 EDA 在市场上的应用时间相对较短,一些企业对其性能和可靠性存在疑虑,更倾向于使用成熟的国外 EDA 工具,这给国产 EDA 的市场推广带来了困难。

芯片设计企业对 EDA 工具的稳定性和准确性要求极高,因为一旦工具出现问题,可能导致整个芯片设计项目的失败,造成巨大的损失。

生态的不健全也导致了国产EDA的进程步履蹒跚,毕竟只有更多工程师使用国产EDA工具,相应的软件开发才能更快发现bug进行修复,也才能吸引更多开发者搭建工具箱,像微信鸿蒙版那样在不断的测试和debug中迭代升级。

不过放弃不是选项,许多EDA大厂也在联合高校科研力量,自主研发算法补短板,一点点校准参数,虽慢,但每一步都坚实有力。

结语

「微信鸿蒙版」正式版成功发布,是国内两大生态融合的里程碑,也是全自主可控操作系统和软件国产化的“风向标”,随着越来越多的软件和系统国产化健全,我们也不会在未来的某一天面对突然成为“板砖”的机器,而两手一摊无能为力了。

声明: 本网站所刊载信息,不代表OFweek观点。刊用本站稿件,务经书面授权。未经授权禁止转载、摘编、复制、翻译及建立镜像,违者将依法追究法律责任。
侵权投诉

下载OFweek,一手掌握高科技全行业资讯

还不是OFweek会员,马上注册
打开app,查看更多精彩资讯 >
  • 长按识别二维码
  • 进入OFweek阅读全文
长按图片进行保存