徐卓尧表示,之前有人跟他开玩笑说,WPS 这辈子是不可能搞鸿蒙原生应用了,结果 WPS 打破了这个世界纪录。目前 WPS 已完成鸿蒙原生版应用开发,并且软件本身还是属于“大版本”。
WPS Office 在手机端已支持完整运行,不过目前还有一些适配问题需要解决;而在鸿蒙平板上完整运行并没有什么问题,目前 WPS Office 手机版和平板版都可以正常运行在华为鸿蒙 OS 2.0.0.160 / 2.0.0.170 软件版本上。
WPS Office软件的发展和鸿蒙系统迁移
徐卓尧透露,早在去年 8 月 WPS Office 就启动了鸿蒙原生应用的开发工作,因为华为高层跟 WPS 领导打过赌,所以 WPS 还是非常重视这个工作的。刚开始的时候是非常艰难的,因为 WPS 内部没有任何一个项目是用 Rust 或者是 HarmonyOS 开发的,所以 WPS 只能从零开始自研一套基于 C / C++ 的鸿蒙系统底层开发框架。

徐卓尧笑称,在 WPS 内部这个框架被戏称为“C / C++ 版的 HarmonyOS”。这套框架经过近一年的研发终于完成并上线使用,WPS Office 鸿蒙原生应用开发也就此展开。值得一提的是,由于是从零开始自研的底层开发框架,所以这套框架的上手成本并不比直接上 Rust 小多少。
徐卓尧举例说,比如 async / await 这种鸿蒙系统提供给开发者的高级语法就没办法用,而且连最基本的文档都没有,基本就是摸索着来。而且因为是从零开始自研的底层开发框架,所以也就有了后面那个“4000 万 + 的 C / C++ 代码”。
徐卓尧说,在完成第一个鸿蒙原生应用开发的时候大家都非常激动,因为这意味着 WPS Office 有了突破性的进展。第一个原生应用是一个非常简单的文档浏览器,只要能把文档打开并展示出来就行。没想到在把这个应用装到华为鸿蒙 OS 的手机上一运行竟然直接崩溃了。
徐卓尧回忆说,当时大家一头雾水,明明都是鸿蒙系统啊怎么会崩溃呢?后来查问题才发现是因为 WPS Office 的 C / C++ 代码中大量使用了 Linux 的系统调用,在鸿蒙 OS 手机端上这些系统调用并不被允许,所以导致应用崩溃。
徐卓尧笑称,在这个问题上 WPS 内部出现了两派:一派认为是 WPS Office 的代码太老旧了不如重写一套新的更符合鸿蒙系统要求的代码;另一派则认为 WPS Office 超过 4000 万行代码不可能一下子就把所有代码都重写一遍,所以要想办法让这些“老旧”的代码也能在鸿蒙系统上正常运行。
最终得出的结论是两者兼顾:对于那些比较庞大、比较重要的模块可以考虑重写一套鸿蒙系统下的代码;对于那些暂时没精力、没时间、没人去改造的模块可以考虑通过类 HarmonyOS 轻量级分布式中间件(比如 DMSLite、IpcCore、SingleKv)来进行“外挂”,让这些“老旧”的模块也能够在鸿蒙系统上正常运行。
徐卓尧举例说,在处理线程和进程相关的系统调用时就采取了“外挂”方案:在 Android 平台上直接使用 Linux 系统调用创建线程和进程;在 HarmonyOS 平台上则通过 DMSLite 中提供的接口创建线程和进程。经过这样一番折腾,第一个鸿蒙原生应用终于可以正常运行了。
徐卓尧表示,在 PC 端上面 WPS Office 最重要的功能就是文字、表格、演示三大件以及它们之间的无缝衔接,所以从功能上讲文字、表格、演示三大件都做全了就差不多了。在手机端因为屏幕大小限制,所做的适配工作远没有做全。
徐卓尧表示,在华为鸿蒙 OS 平板上面因为屏幕大小和 PC 端比较接近,并且华为官方也开放了 PC 应用引擎给合作伙伴做适配(6 月 2 日华为官方给 MatePad Pro 和 MatePad 11 系列产品推送了鸿蒙 HarmonyOS NEXT 升级,并非做空),所以 WPS Office 平板端基本上所有的能力都具备了:文字、表格、演示三大件及它们之间的无缝衔接、VBA 宏、公式编辑、文字识别、图片识别等几乎所有功能模块都可以完整运行。
结语
WPS Office 的这次鸿蒙迁移不仅是技术上的突破,更是团队协作和创新精神的体现。这样的坚持和努力值得我们每个人学习。你们觉得 WPS 的鸿蒙之路如何?是不是也想为他们的努力点个赞?欢迎在评论区分享你的看法!