IT之家 7 月 3 日消息,腾讯今日发文称,微信鸿蒙版一直备受关注。但可能很多朋友并不了解,由于鸿蒙系统的特殊架构,过去十几年积累下来的微信功能无法直接迁移,而必须从零重写。
腾讯邀请微信鸿蒙适配团队的三位成员,深入聊聊这场大规模重构背后的技术挑战、产品取舍与协作机制。希望这期节目能解答用户关于微信鸿蒙版的一些疑惑。
嘉宾:anqi,鸿蒙微信手机版基础功能负责人
嘉宾:zuogang,鸿蒙微信电脑版基础功能开发负责人
嘉宾:小蒋,“客村小蒋”,字“X 毛”,微信公关团队
客座主播:刘飞,内容创作者,产品经理,播客《三五环》《半拿铁》主播
IT之家附播客实录全文:
刘飞:欢迎大家收听“以鹅传鹅”,我是刘飞。今天邀请到的是鸿蒙微信团队。几位老师,先跟大家打声招呼吧!
zuogang:大家好!我是 zuogang,是鸿蒙微信电脑版基础功能开发负责人。
anqi:大家好!我是微信的 anqi,主要负责鸿蒙微信手机版基础功能这一块的(鸿蒙微信手机版基础功能开发负责人)。
小蒋:大家好!我是小蒋,在微博上大家叫“客村小蒋”,我是微信公关团队的。
刘飞:今天邀请几位来,我们就是想聊一聊鸿蒙微信在做的一些事情,以及在鸿蒙微信的开发过程中大家遇到的一些问题和一些思考。
我们先从鸿蒙微信到底是什么开始聊起吧,能不能简单介绍一下鸿蒙系统?我知道有一些听友可能有一些简单的理解,比如说,鸿蒙是跟 iOS 和安卓都不一样的系统。但是对于鸿蒙版本的微信,以及为什么要有鸿蒙版本,可能也没有基础的认知。
小蒋:鸿蒙操作系统在华为手机上,可能大家很早就听过这个名字了,因为它的操作系统就叫“鸿蒙”。但是为什么我们现在又要做一个鸿蒙版的微信?就是因为现在的鸿蒙操作系统,华为自己又叫它“原生鸿蒙”,英文叫“HarmonyOS NEXT”。所谓的原生,就是它完全不再基于开源安卓的框架,而是完全自己从零开始又做了一套框架,可以理解为它是完全全新的华为自主研发的操作系统,这也就意味着我们在安卓上面做的这个版本是不能直接运行在现在的原生鸿蒙操作系统上,包括它的技术框架、编程语言都完全不一样,那我们就要根据这个来重新去把微信从头再开发一遍。
刘飞:我们可以先说一说现在接手鸿蒙微信的团队。你们两位在的团队,应该一位是负责 PC 端的、一位负责手机端的。
zuogang:对。
刘飞:你们团队之前是什么样的渊源?
小蒋:我先班门弄斧一下,后面两位专业补充。因为我是听我们手机端鸿蒙微信的负责人有讲过更早的历史。
安奇在的这个团队,最早是负责塞班微信的,而且是非常非常早,就是在 2011 年微信开始开发的时候,我们的第一个版本应该就是“塞班微信”。这个操作系统它后面很快的不行了之后,安奇在的这个团队是去做了很多其他的一些探索。
anqi:塞班之后,我们这个团队做过很多探索性的项目,慢慢下来我们积累了很多通用的组件和跨平台的开发经验,后面来了一些新的客户端需求自然也就给到我们这边来了,像儿童手表微信或者一些车厂的车机微信,还有运动手表、智能手表,还有一些特殊的硬件,像微信相框上面也有简单的微信客户端,再后面就到了信创 Linux 微信。
刘飞:这些它的底层是不是也有一些相似之处?
anqi:微信的功能上是一样的,但是操作系统和 CPU 架构是有很大区别的,像操作系统主要有 Android、Android Wear、Linux 车机,这些都是定制的 Linux 系统,还有 Altas 单核计算平台。
刘飞:在开发上的可复用性也没有那么强,每一次都要重新给它定制,对吧?
anqi:对,像 UI 这些强依赖平台的就每次都要定制的,但是微信的功能逻辑,比如发一条消息、收一张图片这种,这些都是一样的,所有的平台都是一样的。
刘飞:就是服务端那边的基本上就不会太受影响,对吧?
anqi:对,服务端不太受客户端的影响,就是我们做了这么多之后不可能每次都要重写这些同样的功能,我们就把这些功能慢慢的积累到了写跨平台的语言上,比如说我们全是用 C++ 实现了这些功能。
刘飞:就是其实还是做了一些工作,不用重复造轮子了?
anqi:对。
小蒋:我们还有一个内核,叫“阿丽塔内核”,背景就是基于这些很多平台的不同特点,微信的基础聊天功能可以用这个内核就实现出来,不管是在什么平台上都可以快速地把基础功能跑起来。
anqi:是的,正是有了这些积累和这些经验,后面我们拿到鸿蒙客户端的时候才不至于很慌!
刘飞:就还是有一些积累的,也不是完全从零开始?
anqi:是的。
刘飞:那在电脑端这边呢?
zuogang:我们团队之前负责的就是 Windows、Mac 两个端微信,还做了很多小众的手机平台,比如 Windows Phone、S40(诺基亚后来做的 Feature Phone)。我们之前的做法,就像安奇所说,我们有一些基础组件,但大部分的业务逻辑和 UI 都是各自平台原生实现。当安奇团队把 Linux 信创版本交给我们之后,我们就面临了一个选择,是再搭一个团队去按 Linux 系统的原生技术栈来实现,还是把以前的方案推倒全盘重来,就是在 PC 端从底到上都做一套跨平台方案?我们还是做了一些考虑的:第一,性能体验;第二,团队技术栈的匹配度;第三,团队成员的发展和成就感。我们想的是,让大家负责更多的平台,做更有挑战的事情。我们就做了一个重要的决定,就是在接手 Linux 微信这个契机从头做一个跨平台的 PC 微信框架。
刘飞:所谓的跨平台,是跨哪些平台呢?
zuogang:当时的目标是 Windows、Mac、Linux。
刘飞:就是常用的 PC 端?
zuogang:对。做这个事情的时候我们也是通过合理分层设计,即使未来有鸿蒙 PC 或者其他 PC 接入的时候也可以把可复用的组件做到最大化。
刘飞:明白,这也可以理解,因为 PC 端本身在微信的使用场景里是属于小比例,如果在一个更小众的平台,那可能专门做这个平台的团队同学就感觉没什么成就感和也没什么成长性。
zuogang:是的,确实我们是基于这样的考虑。
刘飞:所以现在鸿蒙也好,其实苹果也在想办法融合,就是移动端和电脑端尽量做跨平台的融合,我看其他品牌,包括 vivo、OPPO 他们也都在做这个事情。这是不是也有利于你们未来大家的融合或者团队能有更多创新的事情可以做?
zuogang:对。当我们用跨平台技术做这件事的时候,要的人力比以前的分平台来做是要更少的,我们也会帮助业务更快地去迭代去发展,也是现在的一个趋势。
小蒋:我们 PC 端微信,大家可能直观的觉得它用户量没那么大,但 PC 端微信更多是工作场景,其实用户量还是非常非常大的。另外有一个很有意思的事情,PC 端微信很重要的一个功能是“直播助手”,很多主播在去发起直播的时候一定会通过 PC 端去发起,因为要接很多外设。我们 PC 端微信的团队在这个方面有非常多的投入跟优化,这也是我们目前做的非常好的一个功能,就是虽然它的用户量不大,但是它创造的价值是非常非常大的。
刘飞:对,PC 端微信在有些场景下还是有很多不可替代性的,就平时大家工作的场景、工作的平台如果是在 PC 上的话,传个文件或者打开一些需要操作的东西,在电脑端还是更方便。这是最基本的,就是为什么需要 PC 微信的前提。
接下来我们聊一聊现在做的这些迁移到鸿蒙上可能会面临什么样的问题,先从前面说的“阿丽塔内核”开始聊吧。阿丽塔内核,就像前面说的它是基础的积累,这个内核能不能稍微展开说一说?
anqi:这个内核,是我们之前做过很多探索性的业务都用到了这个微信的功能,慢慢的我们就把这个微信的功能做到通用的组件里面,这个通用的组件主要有像网络通信、聊天、文件收 / 发这些基础功能,包括运维的像日志、功能上报都在这里面的。后面我们基于阿丽塔内核很快做了鸿蒙的第一个 Demo 出来。
小蒋:这个内核名字的来源也很有意思,就来自那部电影《阿丽塔・战斗天使》,取名的时候说看完电影觉得这个角色又帅又能打,所以我们的内核也起这个名字。
这个内核,刚刚 anqi 有说,就是我们很快基于这个内核能把能收发信息的鸿蒙版微信 Demo 做出来,但是这个 Demo 为什么不能马上就推出来给大家去测试或者用,就是因为这个内核更多的还是基础的信息收发、通讯这些功能,要实现其他的大家更常用的功能,比如朋友圈、小程序这些,那还需要有非常非常多的工作要做。所以,这个工作就分两步:第一步,安奇的团队负责把基建搭好。基建搭好,意思就是把这些业务接进来,我要先给它做好准备;第二步,业务的同学也要来学习这个系统、了解这个系统,然后把自己的业务在阿丽塔内核实现的基础版本上一点一点的堆进来。这个过程,就是“地基”搭好了,我们还要把承接更多业务的地基打得更深更广,然后一点一点的让其他的业务在这个上面去把房子盖起来。
刘飞:有一个技术上不太了解,可能大家也比较好奇的问题,其实做鸿蒙系统的微信和安卓原来的,很多技术框架是差别很大的,还是要很多东西从头开始搭的,对吧?
anqi:是的,因为微信这个端是比较注重用户体验的,很多用户高频使用的这些功能…
刘飞:对,尤其是日常大家每天打开的时间都很长,频次都很高。
anqi:对,常用的聊天、朋友圈、联系人,这些都是用原生来开发的。用原生开发,它在加载速度和流畅度的上限是比较高的。
刘飞:所以这个过程当中还是花了很多时间去做的?
anqi:是的。
刘飞:那中间有遇到什么困难吗,就不管是开发上、团队上,还是各方面等等?
anqi:主要困难是时间紧、任务重,因为我们要把过去微信十几年积累的功能大部分都是要重做的。
刘飞:这不是微信 1.0,对吧?这是微信十几年的版本。
小蒋:对,微信现在是 8.0(Version8.0)。
anqi:其实我们在开发过程中微信后面增加的那些功能开发起来是比较简单的,因为这些功能包括文档、负责人、设计稿都是在的,我们重新实现起来就快很多。但微信上是有很多老功能,这些功能往往实现了可能有十年以上的历史了。
刘飞:它实现了,就放在那儿了,对吧?
anqi:对,这些功能都转交了很多手了,能看到的就只有代码。
刘飞:要再去拆代码,代码里面可能注释写得也不一定全?
anqi:是的。程序员最痛苦的事情,就是看别人写的代码,还有看自己之前写的代码。
刘飞:自己之前写的就跟别人写的代码差不多了。
anqi:是。所以,反而那些老的功能会卡得比较久一些。
同时,鸿蒙系统它还处在高速的迭代期,系统会有各种各样的问题。最直观的,我们看到的就是鸿蒙的 API 版本。在其他系统上,像安卓,它的 API 版本基本上是一年一个大版本。但是在鸿蒙的初期,快的时候一个月就有两个版本。
刘飞:他会更新 API 的接口,是吧?
anqi:是的。
刘飞:你要去配合,去做调整?
anqi:是的。如果涉及到“破坏性”的升级,我们就要花很多精力去重新适配它。
刘飞:什么是“破坏性”的升级?
anqi:就是这个接口的行为跟之前不一样了。
刘飞:完全不一样了?
anqi:是的。
刘飞:你要如果直接上线,那就用不了了?
anqi:对,产生各种各样的意外问题。
刘飞:还有别的吗?
anqi:还有个比较困难的点,就是招新。其实这个项目成立之后公司从上到下都是非常重视的,也给了我们很多招聘名额。但是招聘还是需要我们自己来的。
刘飞:名额在这,但是人不会自己来?
anqi:是的,还需要我们自己去招聘。因为很多同学业务上也比较忙,平时都是靠抽空,趁编译时间去刷简历库。简历本来就很少,但是客户端开发要求却一点都不少,特别涉及到跨平台开发要求甚至还会更高。
刘飞:跨平台开发,一般会找有什么样经验的呢?他可能甚至要对底层代码、底层语言有一些了解吗?
anqi:这些都是有要求的。操作系统,跨语言的开发经验,基础的我们用得比较多的 C++ 语言,还有对知识面的广度深度都有一定的要求。
刘飞:说到鸿蒙微信,还有一个点是,它有两套,不光有移动端,也有自己的 PC 端。那鸿蒙的 PC 端和移动端有很大的区别吗?其实并不是说你开发了一套它就能自己适配 PC 端了是吧?
zuogang:本身如果是用 ArkTS 来做的应用,是可以做到“一次开发多次运行”。但是从实际出发,因为手机毕竟是单窗口交互系统,但是在 PC 上是多窗口多任务的交互系统,我们如果只是把移动端的应用跑在 PC 上,那我们只是给用户一个能跑的应用,但实际上它并不好用。
刘飞:这就包括最基本的 UI 等等这些完全不一样?
zuogang:对。所以出于体验的考虑,我们是想着要给用户提供电脑微信更好的体验,让它的体验是跟 Windows、Mac、Linux 电脑系统对齐的。
刘飞:这个过程中你们面临的困难是不一样的吗?
zuogang:我们面临的困难:
第一,因为我们这个团队同时要兼顾 Windows、Mac、Linux 微信,而且我们相当于是要重新做一个版本把现有的版本替换掉,包括要把它的消息快速的迁移到新的版本上,因为架构完全不同,所以要考虑的事情比较多,这本身就是一个很有挑战性的工作,在这个过程中还要去适配鸿蒙 PC。
第二,因为鸿蒙 PC 系统是先有移动操作系统,所以它的一些特性设计是优先考虑移动端的,比如窗口系统、进程模型这些能力,因为我们做的跨平台微信在 Windows、Mac、Linux 上用的一些能力在鸿蒙刚开始的时候它还不完善,所以需要我们去跟他有比较多的交流,宣讲我们的需求,然后系统去逐步改善,我们再去适配。
第三,因为鸿蒙 PC 为了兼容现有的一些 PC 软件,所以他是把 Qt 融合到他的 ArkTS 框架上,它就产生了两个主线程。
刘飞:可以理解,是两个框架、两个结构,对吧?
zuogang:对,就是要把 QT 这套机制融入到它的原生机制中,所以它两个线程同步就会导致一些复杂的时序问题,这也是需要我们去配合他们一起定位、一起解决。
刘飞:所以这个过程当中,因为本身鸿蒙也是一个新的系统,他们刚做出来的,中间也需要大家的互动,或者给他们提一些需求。
zuogang:是的。
刘飞:所以开发鸿蒙 PC 跟开发 Linux 原生还挺不一样的,是吧?
zuogang:是,Windows、Mac、Linux 已经是成熟的系统,它的接口已经是稳定的了。
刘飞:他们也不会说一个大版本就更新一些接口了?
zuogang:对,就即使现在 iOS 升级了,可能是增加一些新的 API,但是老的 API 大多都是兼容的。但是在鸿蒙 PC 上,因为它是一个新的系统,有个发展过程。
刘飞:所以有一些觉得不合理的接口,他就直接换掉了?
zuogang:对。或者有些欠缺的,要补上。所以相对来说会难度更大。
刘飞:你说到这儿了,跟华为那边,尤其是在这个阶段,是不是要有更紧密的沟通,他们会有专门的对接团队来解决吗?
zuogang:对,他们有非常多的团队跟我们进行线上交流,总共可能有上百次交流。
anqi:其实我们私下是有建很多群的,平时那些小问题反馈,我们直接就抛在群里面了,华为那边同学也会积极响应,很快的帮我们去解决,或者给我们一个确定的结论。有些需要长线追踪的,比较耗时的那些问题,我们也会提一个单来进行长期的追踪。
我举一个很小的例子。在 iOS 上,双击手机顶部列表会滚到顶部的功能。安卓上是没有的。如果要自己做呢,其实也可以,可能体验没那么好。我们把这个问题直接在群里面丢给华为那边同学,直接反馈,他们很快就给了我们一个结论,说我们系统可以支持这个,你们就不用再去重新开发了。
刘飞:像这种之前在微信移动端实现得比较好的一些功能,希望华为配合来完成的,就跟他们沟通,他们也会配合来一起做,对吧?
anqi:是的。
刘飞:zuogang 这边有什么补充吗?
zuogang:对,其实华为开发同学配合度和投入度都是很高的,就像有一些系统 Qt 提升的 Bug,我们给他们写出最小重现的事例,他们就帮忙一起分析、一起研究解决。
anqi:对。
zuogang:我们绝大多数都是通过线上交流解决问题。我印象比较深的一次问题,碰到微信内置浏览器会经常 Crash,我们当时找不到头绪。然后前天晚上我 11 点给华为的对接同学说了这个事情,结果没想到他们第二天就从中山、武汉过来一起帮忙定位,当天就定位、解决了。确实也是挺佩服和感谢他们的!
刘飞:你提到浏览器,突然我意识到一个问题,就是微信里面要做的东西真的还挺多的。像浏览器的功能特性就很复杂,小程序它又是一个这么大的框架。
zuogang:还有编辑器、笔记、文件预览,有很多很多功能。
刘飞:对。我们十几年用微信用过来,一两年有个大功能,每次会感觉有些大变化。现在再回头看会发现已经积累了这么多东西了,之前是没太意识到的。
zuogang:是的。
刘飞:可能有一些听友也会比较奇怪,鸿蒙版的有一些产品上得就挺快的,因为我看到之前有一个信息,在 2024 年“华为开发者大会”上有很多主流 App 的 LOGO,当时也没有看到微信的 LOGO,很多人也比较关心,包括大家买华为肯定也要考虑这个问题,就是如果没有“微信”,那我买这个手机,用起来也比较难用。在开发难度上是不是也的确是因为微信的一些特性和一些客观的原因会导致它开发起来就是难度比较大?
anqi:确实是存在这个问题,不同的 App,它的复杂度,采用的技术路线不同,适配的难度是有很大区别的。比如很多应用采用了我们之前说的那些跨平台技术方案,像 Flat、Web,这些适配起来就简单很多,只需要系统来支持 Flat 框架,支持得好的话,很容易就可以迁移过来的。一迁移过来,它的功能就会比较全。
但是微信呢,因为在其他端都是采用了原生的开发方式,我们没有办法就直接把它给迁到新的操作系统上来。我们使用原生开发呢,就非常依赖系统的更新,还有提供的一些功能,跟系统要配合度很高才能来完成微信上的功能,这个也就拖慢了微信的适配进度。
刘飞:包括前面说的,本身原生开发的很多功能实现,我理解,像刚才提到的内置浏览器或者其他的一些组件,完全基于原生的框架实现,它的成本也是不一样的。有一些组件,如果直接用外部的现成组件,包括开源的组件,可能就在上面搭一层,实现的速度也会更快。对吧?
anqi:是的。
刘飞:从前面也听得出来,在开发过程当中本身是有些难度的。具体来说,在 2024 年 6 月份当时华为“开发者大会”的时候,你们团队当时做到什么程度了?
zuogang:我们 PC 版的进度是这样的,因为在 2024 年 6 月份的时候我们还没有拿到鸿蒙 PC 电脑,所以当时的重点还是在 Windows、Mac 和 Linux 版本。
我们是从 6 月份开始去参与华为的技术培训,先了解这个系统。我们浏览器组件同学先去适配,因为鸿蒙移动端需要浏览器,我们其他的同学是在 9 月份才正式的开始适配。
刘飞:所以其实前面还是有很多就像刚才提到一些原生的工作要去做,那团队的资源有限。安奇有什么补充的吗?
anqi:去年这个时候我们有一个简单的 Demo 出来,这个时候正在忙基础建设方面的事情,还有拉其他的业务同学去参加华为给我们开的技术培训课。这个时候我们关键任务就是要把“地基”给打好,其他业务要依赖的,我们准备好之后,他们才能更好的入场来实现他们的业务。
小蒋:当时也有一些网友就会看发布会上的 LOGO 墙,数半天,就说“就没有你们,你们肯定就没有在做。”但其实当时我们技术团队已经是加班加点了。
刘飞:但这也反过来说明大家对微信的预期还是很高的,就是你需要在鸿蒙系统里有“微信”,不然的话,就像前面说,手机使用起来就是没那么方便。
小蒋:对、对、对,我们内部也把这个看得比较重,就是大家对微信的期待还是蛮高的,尤其是很多已经用起来非常常见的功能。因为我们的版本在一个一个推,每个版本我们都会发现不同的人群会说“为什么这个功能没有?这个功能对我非常非常非常的重要!”而且不同的人群会有不同的“非常、非常重要!”也就说明微信的很多功能还是非常去契合用户的需求,或者说用户在长期的使用过程中已经通过这些功能去实现了自己的需要。这也就意味着我们一定要把功能打磨得足够好、足够丝滑、足够稳定,这也是我们刚刚提到的,一定要用原生开发;另外,一定要把体验一点一点的打磨好再拿出来,拿出来之前一定要先去测试,测试中间发现问题马上把它改。改好之后,待这个版本比较稳的时候再去把它推向比较大的用户群。不断地去重复这个过程,我们才会真正的把这个版本去上架。在鸿蒙微信上,我们同样是要去坚持这样一个过程。现在只是在鸿蒙微信上我们是从头开始去建的微信,很多刚需的功能因为要经历这个过程,那有些用户就会觉得比较“痛苦”,因为“我明明看到你的内测版本,有些人在内测了,已经有了,为什么我没有?”其实就是因为我们要保证功能的足够稳定、足够丝滑、足够好用,才会给它推向更大范围的用户。
刘飞:看你们之前也一直很谨慎,应该是 10 月份有第一个版本,当时算是内测版本吧,当时出去的名额也不是特别多,对吧?
小蒋:对。名额,安奇可以帮忙解释一下,为什么我们会用那样一个方式,以及为什么大家会觉得你放的名额这么少?甚至有些用户骂我们“耍猴”。
anqi:那这里我就要首先讲一下我们的开发流程,刚才蒋老师也有大概讲一下。
我们每个功能都要:先内部开发完自测;自测完之后,我们有内部的测试团队,他们有设定好的用例;他们把这些用例过完,没有问题之后,我们就要去邀请部分外面的用户来体验这个功能,当这部分用户体验之后,他会反馈一些问题出来,我们的监控平台也会监控到一些问题的上报;我们把这些问题修复之后,再给这部分用户推送修复版本,再继续观察这些问题的修复情况。一直重复这个循环,到最终有足够稳定的版本,有了稳定的版本之后我们才敢去慢慢的加大放量,比如说邀请更多的用户,或者进行公测,公测就是面向所有的用户,可以“先到先得”,大家看到之后就能下载安装体验;公测没有问题之后,我们才会把这个版本推到了正式商店,这样就是所有用户都可以看到的稳定版本。
刘飞:哪怕是稳定版本或者所谓的正式版本,它的功能也是在逐步迭代的,对吧?
anqi:是的。
刘飞:你们在这上面会有功能优先级的考量,这些考量主要是怎么考虑的呢?就是先有哪些功能。
anqi:我们第一个版本的时候是根据产品经理他自己的经验,像基础聊天、支付、朋友圈这些第一个版本是一定要带出去的。其他的功能,就是要看用户反馈的声量,我们内部也有简单的分类,并不是所有的功能都会按声量来排的,有些是它虽然声量会小一些,但它是一个很刚需的需求。
刘飞:可能有一些功能是你没有用户就会觉得很缺失或者有一些问题。
anqi:是的。其他的那些,像换聊天背景、换铃声,这些我们归到叫“改善性需求”,这些需求的声量是非常高的,但是我们会把这些综合考虑,然后把更刚需的但声量少的调到前面来。综合考量来开发这些功能。
小蒋:对,这个点我之前也跟我们的一位技术负责人聊过这个话题,他跟我说过一个我还蛮触动的点,他说:“微信很多时候在做事情的时候,我们要非常去考虑沉默用户。”所谓的沉默用户,他说,就是我们的爸爸妈妈、爷爷奶奶这样的用户,他们是永远不会在社交平台上去发声说你这个功能为什么没有?你为什么不做?但是我们做的些取舍和优先级排序是一定要考虑他们的实际使用跟感受的。如果我们不考虑他们,如果他们遇到问题是没有地方反馈的,对于这部分用户来说,那就是一个他完全没法用的状态了。
zuogang:我补充一点,其实在 PC 微信里面还有一批用户,是无障碍用户,这些人是视障群体。其实用户量也不大,但是我们觉得这些需求的优先级也是比较高的,因为如果我们支持不好,他们因为视障的原因,他看不到,支持不好的话,他就无法使用这个软件。可能普通人看不到这部分工作,但实际上对需要的人它意义非常重要,所以我们也会花比较多的精力去做这方面的适配。
小蒋:再回溯一下刚刚说到“耍猴”那个问题,其实有这么一个问题,刚刚也提到我们的开发流程是“内测-腰测-灰度”这样的节奏。但一开始鸿蒙的应用商店会有一个限制,内测的上限是 1000 人。1000 人,对于微信来说是完全满足不了我们去测试一个功能的要求。
刘飞:收集用户反馈。
小蒋:如果不用这种内测的方式,我们就只能用“尝鲜”的方式。所谓“尝鲜”,就是在华为的应用商店里面有个“应用尝鲜”专区,也就意味着可以在这里上架,不用上架正式去。上架这里,可以设定限制名额,几万个都可以,原则就是“先到先得”,先看到了就先下载。比如说,我们在这里放 1 万个下载名额,那这次这 1 万个下载之后,我们发现了一些共性的问题,那我们就肯定要再换一个版本,解决这个问题,我们需要的是得看看原来下载的这 1 万个用户,推给他们,他们遇到的问题到底有没有解决。但是当时的应用商店是没有定向推送能力,就是意味着我不能定向的推给原先下载了…
刘飞:已经下过了,你跟他说“现在已经改了”。
小蒋:这次又变成了“先到先得”,那就意味着又是另外 1 万人来下载。
刘飞:哦,就原来那些人还得再来抢,那这次抢不到,就没有新版本了?
小蒋:对,这样对于我们来说,也达不到我们去看这个问题有没有修复的目的了。所以我们只能被迫着选择“尝鲜”的方式,以及尽量的把这个量放大一点,但事实上也还是不能满足我们这个需求的。这样持续了大概一个月的时间,那段时间也是我们被骂得最惨的。后面也是跟华为的同学一起开会去商量怎么解决这个问题,最后的解决方案是,华为帮我们把内测的上限从 1000 人提到了比较高的比例,这就能够满足我们的需求,所以我们就去招募了一些来参与内测的用户,那我们就可以推给他们,发现问题之后,我们再定向的推给这些人,然后把稳定的版本上到正式商店,或者是在“应用尝鲜”里面我们不再去限制这个量,让大家都能下到,都能正常地用。
刘飞:就中间还是会有一些客观因素的限制。这个过程中,有一些功能看似比较简单,因为看到有一些信息说,有的功能,比如调节字体大小,或者现在 App 都有深色模式,这些提供的也都挺慢的。这个是不是也是因为还是有一些新的难度?
anqi:像字体调节、深色模式,这种就属于看着很简单但实际上工作量非常大的功能点。
因为微信功能是有很多团队在负责的,然后我们要拉所有的团队一起协作来解决这个事情,要确保每一个功能的每一个页面在所有字体档位显示都不会出现问题。
刘飞:因为功能页面也特别多?
anqi:是的。
深色模式,这种我们把它给归到“改善性需求”上了,我们会花更多的精力去做了前面说的一些刚需功能,这个进度就会慢一点。
刘飞:你说到这个点,其实鸿蒙版本它也不只是分为简单的手机和 PC,还包括不同的机型。就像前段时间的华为 Pura X 阔折叠屏手机,这款手机适配,我理解也不是之前的鸿蒙移动端,自动拉伸就可以完成适配了,可能还是有更多新的工作要做的,是不是也是挺有难度的?
anqi:是的。适配华为 Pura X 的时候跟字体调节、深色模式工作量是差不太多的,因为涉及到所有功能页面都要去适配、去测试。当时在发布之前这个手机的保密要求是非常高的,华为那边同学也非常认真负责,就保证“人机不分离”。
刘飞:就一直带着这个机器?
anqi:最开始的时候我们只有 2 台测试机,但是华为那边只有 1 个同学过来,我们也没有办法做到…
刘飞:就是他人得在场?
anqi:是的。
刘飞:你得在他在的情况下做一些测试?
anqi:对,特别是开发的时候,我们如果要把这个手机连到电脑上,就必须当着他们的面来做这件事情。就很多功能都是我们当着他们面去现场改的,改完之后再轮到下一个功能。这么去做这件事情。
刘飞:这里面有哪些具体的是需要单独针对它手机做的吗?
anqi:其实华为 Pura X 适配难度主要集中在外部那个小屏。
刘飞:小屏也能打开聊天窗,能够聊天,对吧?
anqi:是的,在内部使用微信的时候我怕合上了,那这个页面就要出现在外面小窗这里。因为我们很多的功能都是针对长方形的屏幕来设计的。比如说,我转发一条消息,我要预览这条消息的内容、预览要发送的人,下面还有些操作按钮。在长方形的屏幕上是很容易展现出来的,但是如果放到一个方形的小屏幕上,这个屏幕就不足以去展示这些所有的信息了。
刘飞:那你们就要做一些调整、删改?
anqi:对,如果只是做简单的尺寸上调整是没有办法满足这种要求的,我们必须要做产品形态上的调整。比如说,我们把这个功能分成两步或者沿革一些功能,才可以让用户正常来使用这个功能。
刘飞:这种新的适配,对于华为来说,他自己出了一个新的机型,他想要微信配合,这个好像也只能微信来做,除非微信开放核心功能的接口。但这个目前看也不现实,那就得微信来配合做。我想到,十几年前我也在手机公司,当时在锤子,那时我们适配有一些新的东西,比如短信、电话,这些从系统层面都可以重新给它实现。像短信,我内部的短信团队就可以了。但是这种情况下,那手机厂商也得需要各个应用的公司大家来配合做这些,这确实是新的时代新的阶段都会面临的问题。所以这些就会让很多用户尤其是不是那么理解,就说“你不就是做一个适配嘛,怎么会做得那么慢呢?”这些用户就会有很多吐槽。你们是不是也挺有压力的?
anqi:刚开始那段时间压力确实比较大,因为我们白天写代码来开发功能,晚上我们会有值班,看用户的反馈。其实用户的每一条反馈我们都是可以看到的,我们也会认真总结。里面很多用户会言词比较激烈,看了这些语言就特别难受。随着版本的迭代,我们功能开始慢慢的完善起来,这类的声音就慢慢的减少了,然后也会出现一些积极正面的反馈,给我们一些鼓励,说“加油”之类的这些。
小蒋:我那段时间也体会比较深,因为我平时比较爱说话,就开了个微博的账号。原先这个微博主要是解释大家使用微信中间遇到的一些问题,因为鸿蒙微信,一下子就汹涌而来。
刘飞:就是你本来不是专门聊鸿蒙微信的?
小蒋:对,本来不是专门聊鸿蒙微信的。但是找到了一个宣泄的出口,那段时间骂得非常非常凶。有一次有个用户还给我赐了个名字,叫“搞微信的屌毛”。说实话,我倒是“如获至宝”,赶紧把它拿过来贴在微博上,我自己把它玩成了梗,包括到今天也很多人在微博上叫我“屌毛”,我觉得“屌毛”还好一些。叫“屌毛”,我自己想了想,在真实的语境里面叫“屌毛”,更多就是朋友之间大家互相在叫。这么叫,可能下意识的用户觉得“我们是站在一起的。”
刘飞:至少感觉上是拉近了关系。
小蒋:对,至少拉近了关系。有一些客观的情况,解释的时候有些用户还是能够听进去。到了现在,骂的也还是很多。骂,当然我们也要听,这就意味着他对微信的期望跟需求是很高的,那我们肯定还是加班加点地赶紧把这些功能都补上;另外,刚刚聊到一些客观的问题客观的限制,就是我该去讲一讲的也会跟大家去尽量做一些解释。中间观感上的这些东西,跟实际情况中间的这个 Gap,我觉得还是需要跟大家做一些比较良性的沟通。
刘飞:对,尤其是信息上,大家首先知道,认不认可、理不理解是另外一回事,但是先做好沟通嘛。
小蒋:是的、是的。补充一个问题,我自己也比较好奇,原来做版本,肯定是慢慢的去加工的,你是能看到反馈。现在这个,等于是有一个对标的版本,那就变成了我们要去一点一点追这个东西,那作为开发人员来说,这个心态跟之前不断的做新功能,这个心态有没有什么不一样?
anqi:之前做其他功能的时候,有一种做“甲方”的感觉,就是我提供多少功能,这些都是新增的,对于用户来说都是新的体验。但是在鸿蒙微信这里,我们是在做“乙方”,并且我们跟用户主动反馈的机会是很少的,主要在微信的更新日志那里,也就是应用商店看到那里,我们希望每个版本能让更新的内容更多,也是我们对用户的反馈吧。
刘飞:既然说到这儿了,有一个很核心的问题,大家作为鸿蒙用户肯定都特别关心的,到底什么时候移动端能拉齐 iOS 和安卓,PC 端能拉齐 Mac 和 Windows?
anqi:移动端这里大家尽可放心,我们最终的目标一定是要对齐 iOS 和安卓的。
刘飞:首先,它不会是一个残缺版的?
anqi:对!
刘飞:我听你们讲,特别像是跟领导汇报什么时候完成,但是我确实是在这儿代表用户,用户就是我们的“领导”嘛!
zuogang:是的。
刘飞:既然要对齐 iOS 和安卓的功能,是不是从团队上这也得是一个很稳定的团队?我估计很多用户也会比较关心,说你们这个团队就是一个只是做适配的团队,是一个临时的组织还是一个成建制的。就是未来 iOS、安卓、鸿蒙也是相对平行的,未来功能都会同步迭代的这么一个团队的建制?
anqi:在鸿蒙微信手机版刚立项的时候我们其实就在准备一个满建制的团队了,那时候公司从上到下都很重视这件事情,专门成立了鸿蒙移动端的开发中心来做这件事情。包括平时一些业务开发的重视程度上,跟之前我们做其他端,比如手表端、车机端这些,规格是完全不一样的。
刘飞:相当于在之前,尤其是之前跨平台的那些微信版本,比如车机等等,有一些操作你不可能完全复刻。但是现在的移动端、PC 端,在鸿蒙上还是要把它变成和 iOS、安卓、Mac、Windows 一个等级的要求?
anqi:是的,我们终极目标就是把鸿蒙微信做得要对齐安卓和 iOS,甚至超过 iOS 版本的。
刘飞:最后问一个问题,你们毕竟也在鸿蒙这个生态上做了挺长时间开发了,作为技术人员、开发人员,你们目前怎么看待这个生态呢?
anqi:首先,我觉得它是一个很有希望的新的生态,因为它是一个新的操作系统,是站在一个比较高的点上来设计的,在很多理念是要比安卓甚至比 iOS 要更先进的。
刘飞:因为没有太多历史包袱,是充分设计的。
anqi:是的。包括安全、用户隐私,还有跨端的互联,做的都是很先进的设计。现在它是在早期阶段,很多功能虽然还没有完善,但设计上是很先进的,是一个更加现代的操作系统。
刘飞:现在很多开发者开发鸿蒙觉得难度大,其实遇到的问题跟你们之前的问题类似,就是要从零开始做很多工作,它也没有很多现成的组件。但是未来鸿蒙这个生态也有很多标准化的组件了,它也有很多成熟的体系,接口也稳定了,是不是开发起来它也不会比 iOS 和安卓差别很大,甚至在你刚才是说理念先进的基础上,开发成本可能还会低?
anqi:在可预见的将来,在完善之后它的开发成本是会更低的。比如说,我在鸿蒙系统上要实现“选择照片”这个功能,在鸿蒙上花很小的成本就可以实现的,并且是一个非常安全的系统空间来帮你做这件事情,这些都不需要开发者来理会。对用户来说,不用担心应用去窃取你的隐私这些事情。
zuogang:我从 PC 的角度来说,确实鸿蒙 PC 操作系统它没有历史负担,所以它的设计可以借鉴以往操作系统的一些优点,而规避已知的一些问题。但毕竟是新系统,操作系统是一个复杂的工程,在实践过程中肯定也会有一些不足。比如说,我们在 PC 适配过程中发现了一些适配问题,因为微信是一个体量比较大、比较复杂的应用,所以我们针对性能和体验的要求是比较高的。那我们就会从我们的角度出发,发现系统目前还有一些能力不完备,我们就会持续给华为提需求,帮助这个系统越来越好,最终帮助我们鸿蒙微信 / PC 微信更好。
短期来看,从办公需求来说,跟 Windows、Mac 相比,差别不大。差别大的在什么地方呢?重度游戏,还有生产力工具,如果这方面能做起来的话,我们以后开发同学能用鸿蒙 PC 来开发鸿蒙 PC 微信,设计同学能用鸿蒙 PC 来设计一些自己的软件。这些现在还没有,但如果是这些能落实下来,那未来鸿蒙系统就能覆盖更多的市场了。
刘飞:今天非常感谢鸿蒙微信团队的老师们。确实,今天聊下来知道大家遇到了很多困难,也感受到很多鸿蒙用户对你们的期待是非常高的。我们也希望前面提到的半年之后能看到更多新的里程碑,大家能用上跟 iOS 和安卓相同体验的,甚至体验更好的鸿蒙版本。
感谢各位,也感谢大家,我们就聊到这儿。下期再见。拜拜。
小蒋:感谢大家!
更新时间:2025-07-04
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-=date("Y",time());?> All Rights Reserved. Powered By 61893.com 闽ICP备11008920号
闽公网安备35020302035593号