取消
搜索历史
热搜词
原创
活动
转型理念
ENI专访
当前位置:首页 >文章发布 > 正文
超4000万行代码,WPS完成「鸿蒙化」:全面适配HarmonyOS NEXT
来源:CSDN  作者: 佚名 2024-09-14 13:34:03
在今年 HDC 大会上,华为正式发布 HarmonyOS NEXT,并且宣布鸿蒙原生应用进入全面冲刺阶段,5000 多个常用应用已全部启动开发,其中超过 1500 个应用已完成上架。

在今年 HDC 大会上,华为正式发布 HarmonyOS NEXT,并且宣布鸿蒙原生应用进入全面冲刺阶段,5000 多个常用应用已全部启动开发,其中超过 1500 个应用已完成上架。

在这串令人振奋的数字背后,承载着千千万万个开发者的热忱和期待。作为国内最大的办公软件之一,WPS 用了八个月时间完成了鸿蒙化,成为鸿蒙生态中的一员。

我们采访了金山办公架构师覃欢,听他讲述 WPS 完成 HarmonyOS NEXT 开发适配背后的故事。

//m.teamipecs.com/www/Enicn/2024/article_0914/\

覃欢在 HDC 2024 现场

//m.teamipecs.com/www/Enicn/2024/article_0914/\

“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 基本上都被薅完了。”

//m.teamipecs.com/www/Enicn/2024/article_0914/\

WPS 鸿蒙版界面

团队成员不仅要对 WPS 底层结构尤其内核有深入理解,还要具备跨平台开发的意识。此外,要拥有多系统同时开发的能力,因为要考虑将内核多端统一。

纯血鸿蒙 HarmonyOS NEXT 完全摒弃了 Linux 内核 ,原先运行安卓应用的机制不存在了,WPS 如果不跟着改变,也就无法在 HarmonyOS NEXT 运行。

只能重写。

为此,覃欢等人将现有的 WPS PC 内核引擎移植到鸿蒙上来,在此基础上重新编写了上层应用程序。为了实现这一点,还构建了一个从内核到上层应用的框架。与之前的安卓版本相比较,鸿蒙版的 WPS 完全不一样。“没有一行代码是重复的,是完全重写的一套。”覃欢强调。

2023 年 11 月,WPS 成功在鸿蒙创新产品上运行。紧接着,通过在内核上添加一个简单的 Ark 层,也在一个月后实现了 WPS 在移动设备上的基本操作,如打开文档。这就是上层 ArkUI,底层 C++ 的鸿蒙版 WPS。

//m.teamipecs.com/www/Enicn/2024/article_0914/\

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 成长为一个能够稳定支撑大型项目开发的强大工具。

//m.teamipecs.com/www/Enicn/2024/article_0914/\

DevEco 多场景深度调优

除了在技术层面提供支持,华为还在战略层面,快速推进第三方库的鸿蒙化进程。

WPS Office 是一个办公软件套装,它在开发过程中依赖了多个三方库来提供额外的功能和增强的性能。但是,WPS 也只是第三方库的使用者,对于三方库的驾驭能力并不足。“推动第三方库鸿蒙化,于我们而言是一件精力消耗非常大的事情。WPS 依赖的三方库有 100 多个,但是精通的却只有十多个。”覃欢表示。

在鸿蒙生态这艘船上,华为无疑是掌舵者。在推动第三方库适配鸿蒙系统的过程中,华为扮演了关键角色,提供了系统层面的适配与支持,大幅节省了开发团队的研发时间,并确保了性能和研发速度的提升。

“在短短一两周内,便实现了第三方库在 HarmonyOS 上的顺利运行,加快了 WPS 向 HarmonyOS 的迁移进程。”覃欢总结道。

在整个 WPS 鸿蒙化的过程中,覃欢主导完成了 4000 万行代码应用开发,对 HarmonyOS NEXT 提出的需求超过 150 项,对集成开发环境(IDE)提出的需求超过 40 项,极大地补齐了系统能力——比如窗口、应用框架、文件、字体、打印、Dfx 等子系统能力和对大型应用的工程化支持能力等。为表彰覃欢突出的技术贡献,华为开发者大会(HDC 2024)为其颁发了鸿蒙先锋“卓越技术贡献奖”奖章。

//m.teamipecs.com/www/Enicn/2024/article_0914/\

“没有什么技术点在鸿蒙上无法实现”

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。

//m.teamipecs.com/www/Enicn/2024/article_0914/\

WPS 鸿蒙版亮相 HDC 2024

//m.teamipecs.com/www/Enicn/2024/article_0914/\

WPS 携手鸿蒙,或将颠覆移动办公生态版图

HarmonyOS NEXT,作为华为技术实力的体现,在新的发展道路上为用户带来更安全、更自主可控的操作系统体验,能够与微软的 Windows 系统以及国际科技巨头进行有力竞争,助力我国争取科技领域的主动权。

众所周知,微软 Office 在 Windows 上拥有系统特权,这是第三方软件所不具备的。在功能上,WPS 完全可以与微软 Office 相媲美,但在 Windows 上依然缺乏系统特权。

随着全栈自研的 HarmonyOS NEXT 的发布,意味着属于中国自己的主场已经准备好了。覃欢表示,希望 WPS 能够通过与 HarmonyOS NEXT 的深度结合,打破微软 Office 在 Windows 上的深度绑定策略。

覃欢认为,一旦这一想法付诸实现,WPS 将提供超出用户预期的功能和体验。他们最近在做的启动优化就是一个例子,由于能够深入了解系统加载的细节,从而针对性地调整,大幅提升了 WPS 启动速度。

截至 2024 年 5 月,鸿蒙生态设备已经超过了 9 亿台。HarmonyOS 在市场上的影响力正在不断增强,为政企办公等应用提供了广阔的市场空间和新的机遇。

//m.teamipecs.com/www/Enicn/2024/article_0914/\

覃欢表示:“我们期待华为在这一过程中扮演关键角色,为办公领域带来新的动力,在政企办公生态领域建立一套更成熟,能够与 Windows 系统相媲美甚至超越它的办公生态体系,帮助我们在科技领域占据优势地位。”

当前,鸿蒙生态已经超过 5000 个应用,这不仅仅是一个简单的数字,而是一个生态系统的逐渐构建和完善。

应用生态的繁荣,绝非一日之功,它需要时间的沉淀、技术的积累,以及各方力量的持续投入。在这个过程中,华为作为生态的发起者和推动者,不断优化鸿蒙的开发工具和平台,降低开发门槛,提升开发效率。同时,华为提供技术支持和资源投入,鼓励开发者创新,扶持优质应用快速成长。

相信随着 HarmonyOS NEXT 商用版的发布,将有更多企业投身于鸿蒙带来的蓝海市场,也为彻底颠覆移动办公生态的版图带来新的可能性。

免责声明:本文系网络转载,版权归原作者所有。本文所用图片、文字如涉及作品版权问题,请联系删除!本文内容为原作者观点,并不代表本网站观点。
编辑:刘婧
关键词: 代码  WPS  金山办公  覃欢  华为  HarmonyOS  NEXT 
活动 直播间  | CIO智行社

分享到微信 ×

打开微信,点击底部的“发现”,
使用“扫一扫”即可将网页分享至朋友圈。

Baidu
map