在今年 HDC 大会上,华为正式发布 HarmonyOS NEXT,并且宣布鸿蒙原生应用进入全面冲刺阶段,5000 多个常用应用已全部启动开发,其中超过 1500 个应用已完成上架。
在这串令人振奋的数字背后,承载着千千万万个开发者的热忱和期待。作为国内最大的办公软件之一,WPS 用了八个月时间完成了鸿蒙化,成为鸿蒙生态中的一员。
我们采访了金山办公架构师覃欢,听他讲述 WPS 完成 HarmonyOS NEXT 开发适配背后的故事。
覃欢在 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 基本上都被薅完了。”
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 多场景深度调优
除了在技术层面提供支持,华为还在战略层面,快速推进第三方库的鸿蒙化进程。
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
WPS 携手鸿蒙,或将颠覆移动办公生态版图
HarmonyOS NEXT,作为华为技术实力的体现,在新的发展道路上为用户带来更安全、更自主可控的操作系统体验,能够与微软的 Windows 系统以及国际科技巨头进行有力竞争,助力我国争取科技领域的主动权。
众所周知,微软 Office 在 Windows 上拥有系统特权,这是第三方软件所不具备的。在功能上,WPS 完全可以与微软 Office 相媲美,但在 Windows 上依然缺乏系统特权。
随着全栈自研的 HarmonyOS NEXT 的发布,意味着属于中国自己的主场已经准备好了。覃欢表示,希望 WPS 能够通过与 HarmonyOS NEXT 的深度结合,打破微软 Office 在 Windows 上的深度绑定策略。
覃欢认为,一旦这一想法付诸实现,WPS 将提供超出用户预期的功能和体验。他们最近在做的启动优化就是一个例子,由于能够深入了解系统加载的细节,从而针对性地调整,大幅提升了 WPS 启动速度。
截至 2024 年 5 月,鸿蒙生态设备已经超过了 9 亿台。HarmonyOS 在市场上的影响力正在不断增强,为政企办公等应用提供了广阔的市场空间和新的机遇。
覃欢表示:“我们期待华为在这一过程中扮演关键角色,为办公领域带来新的动力,在政企办公生态领域建立一套更成熟,能够与 Windows 系统相媲美甚至超越它的办公生态体系,帮助我们在科技领域占据优势地位。”
当前,鸿蒙生态已经超过 5000 个应用,这不仅仅是一个简单的数字,而是一个生态系统的逐渐构建和完善。
应用生态的繁荣,绝非一日之功,它需要时间的沉淀、技术的积累,以及各方力量的持续投入。在这个过程中,华为作为生态的发起者和推动者,不断优化鸿蒙的开发工具和平台,降低开发门槛,提升开发效率。同时,华为提供技术支持和资源投入,鼓励开发者创新,扶持优质应用快速成长。
相信随着 HarmonyOS NEXT 商用版的发布,将有更多企业投身于鸿蒙带来的蓝海市场,也为彻底颠覆移动办公生态的版图带来新的可能性。