在今年HDC 大会上,华为正式发布HarmonyOS NEXT,并且宣布鸿蒙原生应用进入全面冲刺阶段,5000多个常用应用已全部启动开发,其中超过1500个应用已完成上架。
在这串令人振奋的数字背后,承载着千千万万个开发者的热忱和期待。作为国内最大的办公软件之一,WPS 用了八个月时间完成了鸿蒙化,成为鸿蒙生态中的一员。
我们采访了金山办公架构师覃欢,听他讲述WPS完成HarmonyOS NEXT开发适配背后的故事。
![](http://k.sinaimg.cn/n/spider20240911/788/w1000h588/20240911/e49a-6c562af86582d9ffe5fbe27995075648.png/w700d1q75cms.jpg?by=cms_fixed_width)
覃欢在HDC 2024现场
“HarmonyOS版本没有一行代码和安卓版本是重复的”
第一次正式接触HarmonyOS,是2022年底,覃欢被突然拉到一个会议中,讨论WPS要不要鸿蒙原生化?他感觉有些莫名其妙。
不过也情有可原。覃欢经历过WPS体系下的各种架构变更,其个人成长路线与WPS的快速发展期高度重合。2012年,覃欢才刚进入金山办公这家公司,便参与基于Qt迁移WPS到多平台,包括Windows、Linux,随后又扩展到macOS和信创平台。“我们那一批人,赶上了WPS重构的末班车,经历了体系架构变革、多平台适配以及处理各种指令集,几乎全程参与了这些变革。”覃欢表示。
答案是肯定的,就跟当年拥抱信创一样。
过了个年回来,WPS就开始与华为围绕鸿蒙原生化这件事进行了长期的技术沟通。“从二月份开始,一直到去年的七月份左右,我们经历了七八轮深入的交流,一直在探讨WPS在纯血鸿蒙系统中的技术难点。”覃欢回忆。
到了年中,WPS团队突然得知HarmonyOS不再兼容安卓,也就是同年9月发布的HarmonyOS NEXT计划,即鸿蒙原生应用全面启动。
一旦HarmonyOS NEXT推出,将开启一扇通往无限机遇的大门。这样的发展路径,或许预示着操作系统的三分天下。华为与金山办公双方的目标,放在国家层面、行业发展层面、企业对市场的预期层面来讲,都高度一致。
“我们其实也希望能够搭载HarmonyOS NEXT这趟快车,迅速加入这一进程并共同开拓市场,掌握一定的市场话语权。”覃欢表示。
为了快速将WPS 鸿蒙化,覃欢等人迅速组建起一支鸿蒙化团队。“我们抽调了大约40多名‘高精尖’技术人员。只要是在Office领域的高P基本上都被薅完了。”
![](http://k.sinaimg.cn/n/spider20240911/373/w1311h662/20240911/3313-5737351a37c4acccddd114041b382583.png/w700d1q75cms.jpg?by=cms_fixed_width)
WPS鸿蒙版界面
团队成员不仅要对WPS底层结构尤其内核有深入理解,还要具备跨平台开发的意识。此外,要拥有多系统同时开发的能力,因为要考虑将内核多端统一。
纯血鸿蒙HarmonyOS NEXT完全摒弃了Linux内核,原先运行安卓应用的机制不存在了,WPS如果不跟着改变,也就无法在HarmonyOS NEXT运行。
只能重写。
为此,覃欢等人将现有的WPS PC内核引擎移植到鸿蒙上来,在此基础上重新编写了上层应用程序。为了实现这一点,还构建了一个从内核到上层应用的框架。与之前的安卓版本相比较,鸿蒙版的WPS完全不一样。“没有一行代码是重复的,是完全重写的一套。”覃欢强调。
2023年11月,WPS成功在鸿蒙创新产品上运行。紧接着,通过在内核上添加一个简单的Ark层,也在一个月后实现了WPS在移动设备上的基本操作,如打开文档。这就是上层 ArkUI,底层 C++的鸿蒙版WPS。
40多条需求,倒逼HarmonyOS IDE 成长
将鸿蒙创新产品的内核跑在移动设备上之后,又面临了新的问题——如何搭建能够满足跨栈调用的功能、性能与稳定性的要求?
此前在安卓平台上,WPS曾考虑过C++与Java的互调方案(JNI),但由于性能和稳定性不达标,最终该方案被否决。而在iOS平台上,由于OC和C++共占同一调用栈,这个问题得到了较好的解决。
如今在鸿蒙移动端,上层是Ark运行时,底层是C++,这就必然涉及到类似于JNI的调用问题,比如在大量数据的序列化和反序列化以及跨进程调度通信方面。
“我们是一群被Visual Studio养得非常挑剔的一群人。”覃欢说,WPS 的开发人员绝大多数都是使用市场上成熟的工具链体系,当转向HarmonyOS开发时,遇到了前所未有的挑战。“HarmonyOS的调试工具和开发环境——DevEco Studio 对于我们来说是一个巨大的考验。面对跨语言调试、自定义变量观察、多线程问题分析、内存泄漏等复杂难题时,DevEco是否能够满足我们的能力要求?”
特别是当需要从JS穿透到C++时,由于缺乏有效的跨语言调试能力,类似CMD这样的工具,限制了他们在问题分析和处理上的手段,就只能依赖于日志和时间戳来进行问题分析,调试工作变得异常复杂。
尤其是在远程调试和交叉编译方面,WPS对熟练度和性能要求都很高,但现有的工具无法满足这些需求。WPS的代码量庞大,如何高效地将编译缓存推送到设备上成为了一个难题。
“每次修改代码后,都需要等待几分钟才能进行调试,这对我们的工作效率造成了严重影响。我们尝试了各种方法来提高编译、调试速度以及问题验证效率。”
在此过程中,华为提供了一系列技术支持,比如对可能出现的逻辑错误和异常情况的分析,以及如何在这些情况下保持框架的稳定性,使得框架在安全性方面得到良好的保障,从而避免了异常崩溃(crash)的风险,增强了整个系统的健壮性和可靠性。
最终通过内部与华为技术团队的沟通,WPS 搭建了一套支持同步&异步跨语言的调度框架,基本满足了 WPS 的业务诉求。
事实上,鸿蒙化编译还没正式开始前,WPS 在与华为的正式交流中,第一个讨论的议题就是开发调试工具是否准备好,是否能够支撑如此大量代码的编译与调试工作?在开发初期,WPS 针对 HarmonyOS的专用开发调测工具DevEco 提的需求就多达 25 条。
在与华为技术团队早期交流中,覃欢曾表示,如果WPS的开发环境能够与DevEco很好地兼容或适配,那么之后,几乎所有应用在鸿蒙化过程的开发需求,DevEco都能满足。
随着需求一一得到落实,不仅极大地提升了开发效率,也极大地增强了开发者对鸿蒙生态的信心。覃欢及其团队见证了DevEco从一个潜力无限的IDE成长为一个能够稳定支撑大型项目开发的强大工具。
![DevEco 多场景深度调优](http://k.sinaimg.cn/n/spider20240911/156/w1136h620/20240911/71d3-6c25dbcd087a91e68df1436f703dba5f.png/w700d1q75cms.jpg?by=cms_fixed_width)
除了在技术层面提供支持,华为还在战略层面,快速推进第三方库的鸿蒙化进程。
WPS Office是一个办公软件套装,它在开发过程中依赖了多个三方库来提供额外的功能和增强的性能。但是,WPS 也只是第三方库的使用者,对于三方库的驾驭能力并不足。“推动第三方库鸿蒙化,于我们而言是一件精力消耗非常大的事情。WPS 依赖的三方库有100多个,但是精通的却只有十多个。”覃欢表示。
在鸿蒙生态这艘船上,华为无疑是掌舵者。在推动第三方库适配鸿蒙系统的过程中,华为扮演了关键角色,提供了系统层面的适配与支持,大幅节省了开发团队的研发时间,并确保了性能和研发速度的提升。
“在短短一两周内,便实现了第三方库在HarmonyOS上的顺利运行,加快了WPS向HarmonyOS的迁移进程。”覃欢总结道。
在整个WPS 鸿蒙化的过程中,覃欢主导完成了4000万行代码应用开发,对HarmonyOS NEXT提出的需求超过150项,对集成开发环境(IDE)提出的需求超过40项,极大地补齐了系统能力——比如窗口、应用框架、文件、字体、打印、Dfx等子系统能力和对大型应用的工程化支持能力等。为表彰覃欢突出的技术贡献,华为开发者大会(HDC 2024)为其颁发了鸿蒙先锋“卓越技术贡献奖”奖章。
“没有什么技术点在鸿蒙上无法实现”
WPS 的系统复杂性和庞大代码量,使得 WPS 在系统资源需求上存在特殊性。即使不算三方库,WPS 也有4000万行代码,其安装包体积远远超过大多数鸿蒙APP。
连WPS都能在鸿蒙操作系统上流畅运行,也就意味着,应用鸿蒙化的技术障碍已经基本消除。接下来,开发者只需要更多关注如何优化功能的细节和确保稳定性,以及如何进行适配工作。
“HarmonyOS的学习曲线相对平缓,对于有其他编程语言经验的人来说,上手并不困难。”覃欢表示。
WPS在融入鸿蒙生态的过程中,并未特意招募鸿蒙专业开发者,其团队都是由传统C++、Java、OC开发人员,以及熟悉前端H5开发的技术人员组成。
覃欢表示,对于在C++领域深耕多年的开发者来说,HarmonyOS的设计理念显得清晰且易于理解,其复杂度并不高。加之鸿蒙已解决了跨语言调试的难题,大多数问题都可以通过制作demo或小型化实例来单独细致地调试。
“将指令集迁移到华为平台的过程实际上比预期要简单,没有原本想象的那样困难。毕竟经历过信创,遇到过的问题也多如牛毛;在鸿蒙这里,事情并没有比之前更难,相较而言,在各自过往技术积累下,WPS鸿蒙化相比较还算顺利。”
这8个月来,WPS已经全面测试并验证了HarmonyOS所提供的各项技术能力。“WPS基本上已经把大家所需要的所有技术能力,在鸿蒙系统上趟了一个遍,几乎没有什么技术点在鸿蒙上无法实现。”覃欢表示。
当前,WPS 现已完成鸿蒙原生版应用开发,在诸如手机端、折叠屏、平板等不同大小尺寸的屏幕上分别做了产品适配,并基于多平台账号统一,实现了跨端、跨设备的文档和数据共享,支持多用户协同、浏览编辑、修订能力。目前,WPS鸿蒙原生应用已在全端流畅运行,WPS AI也在多端同步上线,数十项AI功能都迁移到了HarmonyOS NEXT。
![WPS鸿蒙版亮相HDC 2024](http://k.sinaimg.cn/n/spider20240911/67/w1000h667/20240911/6cf6-8307ba4f8bd647d20d5f582fd56cfd6b.png/w700d1q75cms.jpg?by=cms_fixed_width)
WPS携手鸿蒙,或将颠覆移动办公生态版图
HarmonyOS NEXT,作为华为技术实力的体现,在新的发展道路上为用户带来更安全、更自主可控的操作系统体验,能够与微软的Windows系统以及国际科技巨头进行有力竞争,助力我国争取科技领域的主动权。
众所周知,微软Office在Windows上拥有系统特权,这是第三方软件所不具备的。在功能上,WPS完全可以与微软Office相媲美,但在Windows上依然缺乏系统特权。
随着全栈自研的HarmonyOS NEXT的发布,意味着属于中国自己的主场已经准备好了。覃欢表示,希望WPS能够通过与HarmonyOS NEXT的深度结合,打破微软Office在Windows上的深度绑定策略。
覃欢认为,一旦这一想法付诸实现,WPS将提供超出用户预期的功能和体验。他们最近在做的启动优化就是一个例子,由于能够深入了解系统加载的细节,从而针对性地调整,大幅提升了WPS启动速度。
截至2024年5月,鸿蒙生态设备已经超过了9亿台。HarmonyOS在市场上的影响力正在不断增强,为政企办公等应用提供了广阔的市场空间和新的机遇。
![](http://k.sinaimg.cn/n/spider20240911/86/w1267h419/20240911/0174-27f0654b00e3cc540d0717d2e8a36206.png/w700d1q75cms.jpg?by=cms_fixed_width)
覃欢表示:“我们期待华为在这一过程中扮演关键角色,为办公领域带来新的动力,在政企办公生态领域建立一套更成熟,能够与Windows系统相媲美甚至超越它的办公生态体系,帮助我们在科技领域占据优势地位。”
当前,鸿蒙生态已经超过5000个应用,这不仅仅是一个简单的数字,而是一个生态系统的逐渐构建和完善。
应用生态的繁荣,绝非一日之功,它需要时间的沉淀、技术的积累,以及各方力量的持续投入。在这个过程中,华为作为生态的发起者和推动者,不断优化鸿蒙的开发工具和平台,降低开发门槛,提升开发效率。同时,华为提供技术支持和资源投入,鼓励开发者创新,扶持优质应用快速成长。
相信随着HarmonyOS NEXT商用版的发布,将有更多企业投身于鸿蒙带来的蓝海市场,也为彻底颠覆移动办公生态的版图带来新的可能性。