超4000萬行代碼,WPS完成「鴻蒙化」:全面適配HarmonyOS NEXT!

在今年 HDC 大會(huì)上,華為正式發(fā)布 HarmonyOS NEXT,并且宣布鴻蒙原生應(yīng)用進(jìn)入全面沖刺階段,5000 多個(gè)常用應(yīng)用已全部啟動(dòng)開發(fā),其中超過 1500 個(gè)應(yīng)用已完成上架。

在這串令人振奮的數(shù)字背后,承載著千千萬萬個(gè)開發(fā)者的熱忱和期待。作為國內(nèi)最大的辦公軟件之一,WPS 用了八個(gè)月時(shí)間完成了鴻蒙化,成為鴻蒙生態(tài)中的一員。

我們采訪了金山辦公架構(gòu)師覃歡,聽他講述 WPS 完成 HarmonyOS NEXT 開發(fā)適配背后的故事。

1.jpg

覃歡在 HDC 2024 現(xiàn)場

“HarmonyOS 版本沒有一行代碼和安卓版本是重復(fù)的”

第一次正式接觸 HarmonyOS,是 2022 年底,覃歡被突然拉到一個(gè)會(huì)議中,討論 WPS 要不要鴻蒙原生化?他感覺有些莫名其妙。

不過也情有可原。覃歡經(jīng)歷過 WPS 體系下的各種架構(gòu)變更,其個(gè)人成長路線與 WPS 的快速發(fā)展期高度重合。2012 年,覃歡才剛進(jìn)入金山辦公這家公司,便參與基于 Qt 遷移 WPS 到多平臺(tái),包括 Windows、Linux,隨后又?jǐn)U展到 macOS 和信創(chuàng)平臺(tái)?!拔覀兡且慌?,趕上了 WPS 重構(gòu)的末班車,經(jīng)歷了體系架構(gòu)變革、多平臺(tái)適配以及處理各種指令集,幾乎全程參與了這些變革?!瘪麣g表示。

答案是肯定的,就跟當(dāng)年擁抱信創(chuàng)一樣。

過了個(gè)年回來,WPS 就開始與華為圍繞鴻蒙原生化這件事進(jìn)行了長期的技術(shù)溝通?!皬亩路蓍_始,一直到去年的七月份左右,我們經(jīng)歷了七八輪深入的交流,一直在探討 WPS 在純血鴻蒙系統(tǒng)中的技術(shù)難點(diǎn)。”覃歡回憶。

到了年中,WPS 團(tuán)隊(duì)突然得知 HarmonyOS 不再兼容安卓,也就是同年 9 月發(fā)布的 HarmonyOS NEXT 計(jì)劃,即鴻蒙原生應(yīng)用全面啟動(dòng)。

一旦 HarmonyOS NEXT 推出,將開啟一扇通往無限機(jī)遇的大門。這樣的發(fā)展路徑,或許預(yù)示著操作系統(tǒng)的三分天下。華為與金山辦公雙方的目標(biāo),放在國家層面、行業(yè)發(fā)展層面、企業(yè)對(duì)市場的預(yù)期層面來講,都高度一致。

“我們其實(shí)也希望能夠搭載 HarmonyOS NEXT 這趟快車,迅速加入這一進(jìn)程并共同開拓市場,掌握一定的市場話語權(quán)?!瘪麣g表示。

為了快速將 WPS 鴻蒙化,覃歡等人迅速組建起一支鴻蒙化團(tuán)隊(duì)。“我們抽調(diào)了大約 40 多名「高精尖」技術(shù)人員。只要是在 Office 領(lǐng)域的高 P 基本上都被薅完了。”

2.jpg

WPS 鴻蒙版界面

團(tuán)隊(duì)成員不僅要對(duì) WPS 底層結(jié)構(gòu)尤其內(nèi)核有深入理解,還要具備跨平臺(tái)開發(fā)的意識(shí)。此外,要擁有多系統(tǒng)同時(shí)開發(fā)的能力,因?yàn)橐紤]將內(nèi)核多端統(tǒng)一。

純血鴻蒙 HarmonyOS NEXT 完全摒棄了 Linux 內(nèi)核,原先運(yùn)行安卓應(yīng)用的機(jī)制不存在了,WPS 如果不跟著改變,也就無法在 HarmonyOS NEXT 運(yùn)行。

只能重寫。

為此,覃歡等人將現(xiàn)有的 WPS PC 內(nèi)核引擎移植到鴻蒙上來,在此基礎(chǔ)上重新編寫了上層應(yīng)用程序。為了實(shí)現(xiàn)這一點(diǎn),還構(gòu)建了一個(gè)從內(nèi)核到上層應(yīng)用的框架。與之前的安卓版本相比較,鴻蒙版的 WPS 完全不一樣。“沒有一行代碼是重復(fù)的,是完全重寫的一套。”覃歡強(qiáng)調(diào)。

2023 年 11 月,WPS 成功在鴻蒙創(chuàng)新產(chǎn)品上運(yùn)行。緊接著,通過在內(nèi)核上添加一個(gè)簡單的 Ark 層,也在一個(gè)月后實(shí)現(xiàn)了 WPS 在移動(dòng)設(shè)備上的基本操作,如打開文檔。這就是上層 ArkUI,底層 C++ 的鴻蒙版 WPS。

40 多條需求,倒逼 HarmonyOS IDE 成長

將鴻蒙創(chuàng)新產(chǎn)品的內(nèi)核跑在移動(dòng)設(shè)備上之后,又面臨了新的問題——如何搭建能夠滿足跨棧調(diào)用的功能、性能與穩(wěn)定性的要求?

此前在安卓平臺(tái)上,WPS 曾考慮過 C++ 與 Java 的互調(diào)方案(JNI),但由于性能和穩(wěn)定性不達(dá)標(biāo),最終該方案被否決。而在 iOS 平臺(tái)上,由于 OC 和 C++ 共占同一調(diào)用棧,這個(gè)問題得到了較好的解決。

如今在鴻蒙移動(dòng)端,上層是 Ark 運(yùn)行時(shí),底層是 C++,這就必然涉及到類似于 JNI 的調(diào)用問題,比如在大量數(shù)據(jù)的序列化和反序列化以及跨進(jìn)程調(diào)度通信方面。

“我們是一群被 Visual Studio 養(yǎng)得非常挑剔的一群人。”覃歡說,WPS 的開發(fā)人員絕大多數(shù)都是使用市場上成熟的工具鏈體系,當(dāng)轉(zhuǎn)向 HarmonyOS 開發(fā)時(shí),遇到了前所未有的挑戰(zhàn)?!癏armonyOS 的調(diào)試工具和開發(fā)環(huán)境——DevEco Studio 對(duì)于我們來說是一個(gè)巨大的考驗(yàn)。面對(duì)跨語言調(diào)試、自定義變量觀察、多線程問題分析、內(nèi)存泄漏等復(fù)雜難題時(shí),DevEco 是否能夠滿足我們的能力要求?”

特別是當(dāng)需要從 JS 穿透到 C++ 時(shí),由于缺乏有效的跨語言調(diào)試能力,類似 CMD 這樣的工具,限制了他們?cè)趩栴}分析和處理上的手段,就只能依賴于日志和時(shí)間戳來進(jìn)行問題分析,調(diào)試工作變得異常復(fù)雜。

尤其是在遠(yuǎn)程調(diào)試和交叉編譯方面,WPS 對(duì)熟練度和性能要求都很高,但現(xiàn)有的工具無法滿足這些需求。WPS 的代碼量龐大,如何高效地將編譯緩存推送到設(shè)備上成為了一個(gè)難題。

“每次修改代碼后,都需要等待幾分鐘才能進(jìn)行調(diào)試,這對(duì)我們的工作效率造成了嚴(yán)重影響。我們嘗試了各種方法來提高編譯、調(diào)試速度以及問題驗(yàn)證效率?!?/p>

在此過程中,華為提供了一系列技術(shù)支持,比如對(duì)可能出現(xiàn)的邏輯錯(cuò)誤和異常情況的分析,以及如何在這些情況下保持框架的穩(wěn)定性,使得框架在安全性方面得到良好的保障,從而避免了異常崩潰(crash)的風(fēng)險(xiǎn),增強(qiáng)了整個(gè)系統(tǒng)的健壯性和可靠性。

最終通過內(nèi)部與華為技術(shù)團(tuán)隊(duì)的溝通,WPS 搭建了一套支持同步&異步跨語言的調(diào)度框架,基本滿足了 WPS 的業(yè)務(wù)訴求。

事實(shí)上,鴻蒙化編譯還沒正式開始前,WPS 在與華為的正式交流中,第一個(gè)討論的議題就是開發(fā)調(diào)試工具是否準(zhǔn)備好,是否能夠支撐如此大量代碼的編譯與調(diào)試工作?在開發(fā)初期,WPS 針對(duì) HarmonyOS 的專用開發(fā)調(diào)測(cè)工具 DevEco 提的需求就多達(dá) 25 條。

在與華為技術(shù)團(tuán)隊(duì)早期交流中,覃歡曾表示,如果 WPS 的開發(fā)環(huán)境能夠與 DevEco 很好地兼容或適配,那么之后,幾乎所有應(yīng)用在鴻蒙化過程的開發(fā)需求,DevEco 都能滿足。

隨著需求一一得到落實(shí),不僅極大地提升了開發(fā)效率,也極大地增強(qiáng)了開發(fā)者對(duì)鴻蒙生態(tài)的信心。覃歡及其團(tuán)隊(duì)見證了 DevEco 從一個(gè)潛力無限的 IDE 成長為一個(gè)能夠穩(wěn)定支撐大型項(xiàng)目開發(fā)的強(qiáng)大工具。

3.jpg

DevEco 多場景深度調(diào)優(yōu)

除了在技術(shù)層面提供支持,華為還在戰(zhàn)略層面,快速推進(jìn)第三方庫的鴻蒙化進(jìn)程。

WPS Office 是一個(gè)辦公軟件套裝,它在開發(fā)過程中依賴了多個(gè)三方庫來提供額外的功能和增強(qiáng)的性能。但是,WPS 也只是第三方庫的使用者,對(duì)于三方庫的駕馭能力并不足?!巴苿?dòng)第三方庫鴻蒙化,于我們而言是一件精力消耗非常大的事情。WPS 依賴的三方庫有 100 多個(gè),但是精通的卻只有十多個(gè)?!瘪麣g表示。

在鴻蒙生態(tài)這艘船上,華為無疑是掌舵者。在推動(dòng)第三方庫適配鴻蒙系統(tǒng)的過程中,華為扮演了關(guān)鍵角色,提供了系統(tǒng)層面的適配與支持,大幅節(jié)省了開發(fā)團(tuán)隊(duì)的研發(fā)時(shí)間,并確保了性能和研發(fā)速度的提升。

“在短短一兩周內(nèi),便實(shí)現(xiàn)了第三方庫在 HarmonyOS 上的順利運(yùn)行,加快了 WPS 向 HarmonyOS 的遷移進(jìn)程?!瘪麣g總結(jié)道。

在整個(gè) WPS 鴻蒙化的過程中,覃歡主導(dǎo)完成了 4000 萬行代碼應(yīng)用開發(fā),對(duì) HarmonyOS NEXT 提出的需求超過 150 項(xiàng),對(duì)集成開發(fā)環(huán)境(IDE)提出的需求超過 40 項(xiàng),極大地補(bǔ)齊了系統(tǒng)能力——比如窗口、應(yīng)用框架、文件、字體、打印、Dfx 等子系統(tǒng)能力和對(duì)大型應(yīng)用的工程化支持能力等。為表彰覃歡突出的技術(shù)貢獻(xiàn),華為開發(fā)者大會(huì)(HDC 2024)為其頒發(fā)了鴻蒙先鋒“卓越技術(shù)貢獻(xiàn)獎(jiǎng)”獎(jiǎng)?wù)隆?/p>

“沒有什么技術(shù)點(diǎn)在鴻蒙上無法實(shí)現(xiàn)”

WPS 的系統(tǒng)復(fù)雜性和龐大代碼量,使得 WPS 在系統(tǒng)資源需求上存在特殊性。即使不算三方庫,WPS 也有 4000 萬行代碼,其安裝包體積遠(yuǎn)遠(yuǎn)超過大多數(shù)鴻蒙 APP。

連 WPS 都能在鴻蒙操作系統(tǒng)上流暢運(yùn)行,也就意味著,應(yīng)用鴻蒙化的技術(shù)障礙已經(jīng)基本消除。接下來,開發(fā)者只需要更多關(guān)注如何優(yōu)化功能的細(xì)節(jié)和確保穩(wěn)定性,以及如何進(jìn)行適配工作。

“HarmonyOS 的學(xué)習(xí)曲線相對(duì)平緩,對(duì)于有其他編程語言經(jīng)驗(yàn)的人來說,上手并不困難?!瘪麣g表示。

WPS 在融入鴻蒙生態(tài)的過程中,并未特意招募鴻蒙專業(yè)開發(fā)者,其團(tuán)隊(duì)都是由傳統(tǒng) C++、Java、OC 開發(fā)人員,以及熟悉前端 H5 開發(fā)的技術(shù)人員組成。

覃歡表示,對(duì)于在 C++ 領(lǐng)域深耕多年的開發(fā)者來說,HarmonyOS 的設(shè)計(jì)理念顯得清晰且易于理解,其復(fù)雜度并不高。加之鴻蒙已解決了跨語言調(diào)試的難題,大多數(shù)問題都可以通過制作 demo 或小型化實(shí)例來單獨(dú)細(xì)致地調(diào)試。

“將指令集遷移到華為平臺(tái)的過程實(shí)際上比預(yù)期要簡單,沒有原本想象的那樣困難。畢竟經(jīng)歷過信創(chuàng),遇到過的問題也多如牛毛;在鴻蒙這里,事情并沒有比之前更難,相較而言,在各自過往技術(shù)積累下,WPS 鴻蒙化相比較還算順利。”

這 8 個(gè)月來,WPS 已經(jīng)全面測(cè)試并驗(yàn)證了 HarmonyOS 所提供的各項(xiàng)技術(shù)能力?!癢PS 基本上已經(jīng)把大家所需要的所有技術(shù)能力,在鴻蒙系統(tǒng)上趟了一個(gè)遍,幾乎沒有什么技術(shù)點(diǎn)在鴻蒙上無法實(shí)現(xiàn)?!瘪麣g表示。

當(dāng)前,WPS 現(xiàn)已完成鴻蒙原生版應(yīng)用開發(fā),在諸如手機(jī)端、折疊屏、平板等不同大小尺寸的屏幕上分別做了產(chǎn)品適配,并基于多平臺(tái)賬號(hào)統(tǒng)一,實(shí)現(xiàn)了跨端、跨設(shè)備的文檔和數(shù)據(jù)共享,支持多用戶協(xié)同、瀏覽編輯、修訂能力。目前,WPS 鴻蒙原生應(yīng)用已在全端流暢運(yùn)行,WPS AI 也在多端同步上線,數(shù)十項(xiàng) AI 功能都遷移到了 HarmonyOS NEXT。

4.jpg

WPS 鴻蒙版亮相 HDC 2024

WPS 攜手鴻蒙,或?qū)㈩嵏惨苿?dòng)辦公生態(tài)版圖

HarmonyOS NEXT,作為華為技術(shù)實(shí)力的體現(xiàn),在新的發(fā)展道路上為用戶帶來更安全、更自主可控的操作系統(tǒng)體驗(yàn),能夠與微軟的 Windows 系統(tǒng)以及國際科技巨頭進(jìn)行有力競爭,助力我國爭取科技領(lǐng)域的主動(dòng)權(quán)。

眾所周知,微軟 Office 在 Windows 上擁有系統(tǒng)特權(quán),這是第三方軟件所不具備的。在功能上,WPS 完全可以與微軟 Office 相媲美,但在 Windows 上依然缺乏系統(tǒng)特權(quán)。

隨著全棧自研的 HarmonyOS NEXT 的發(fā)布,意味著屬于中國自己的主場已經(jīng)準(zhǔn)備好了。覃歡表示,希望 WPS 能夠通過與 HarmonyOS NEXT 的深度結(jié)合,打破微軟 Office 在 Windows 上的深度綁定策略。

覃歡認(rèn)為,一旦這一想法付諸實(shí)現(xiàn),WPS 將提供超出用戶預(yù)期的功能和體驗(yàn)。他們最近在做的啟動(dòng)優(yōu)化就是一個(gè)例子,由于能夠深入了解系統(tǒng)加載的細(xì)節(jié),從而針對(duì)性地調(diào)整,大幅提升了 WPS 啟動(dòng)速度。

截至 2024 年 5 月,鴻蒙生態(tài)設(shè)備已經(jīng)超過了 9 億臺(tái)。HarmonyOS 在市場上的影響力正在不斷增強(qiáng),為政企辦公等應(yīng)用提供了廣闊的市場空間和新的機(jī)遇。

5.jpg

覃歡表示:“我們期待華為在這一過程中扮演關(guān)鍵角色,為辦公領(lǐng)域帶來新的動(dòng)力,在政企辦公生態(tài)領(lǐng)域建立一套更成熟,能夠與 Windows 系統(tǒng)相媲美甚至超越它的辦公生態(tài)體系,幫助我們?cè)诳萍碱I(lǐng)域占據(jù)優(yōu)勢(shì)地位?!?/p>

當(dāng)前,鴻蒙生態(tài)已經(jīng)超過 5000 個(gè)應(yīng)用,這不僅僅是一個(gè)簡單的數(shù)字,而是一個(gè)生態(tài)系統(tǒng)的逐漸構(gòu)建和完善。

應(yīng)用生態(tài)的繁榮,絕非一日之功,它需要時(shí)間的沉淀、技術(shù)的積累,以及各方力量的持續(xù)投入。在這個(gè)過程中,華為作為生態(tài)的發(fā)起者和推動(dòng)者,不斷優(yōu)化鴻蒙的開發(fā)工具和平臺(tái),降低開發(fā)門檻,提升開發(fā)效率。同時(shí),華為提供技術(shù)支持和資源投入,鼓勵(lì)開發(fā)者創(chuàng)新,扶持優(yōu)質(zhì)應(yīng)用快速成長。

相信隨著 HarmonyOS NEXT 商用版的發(fā)布,將有更多企業(yè)投身于鴻蒙帶來的藍(lán)海市場,也為徹底顛覆移動(dòng)辦公生態(tài)的版圖帶來新的可能性。

極客網(wǎng)企業(yè)會(huì)員

免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。

2024-09-14
超4000萬行代碼,WPS完成「鴻蒙化」:全面適配HarmonyOS NEXT!
在今年 HDC 大會(huì)上,華為正式發(fā)布 HarmonyOS NEXT,并且宣布鴻蒙原生應(yīng)用進(jìn)入全面沖刺階段,5000 多個(gè)常用應(yīng)用已全部啟動(dòng)開發(fā),其中超過 1500 個(gè)應(yīng)用已完成上架。

長按掃碼 閱讀全文