攜手共建開源鴻蒙React Native,助力鴻蒙應用開發(fā)高質(zhì)量發(fā)展
10月24日,在QCon全球軟件開發(fā)大會上海站的 HarmonyOS 開發(fā)者技術(shù)分論壇上,華為終端BG軟件主任工程師帶來了《開源鴻蒙 React Native 性能體驗提升實踐與思考》的主題分享,深入解析了開源鴻蒙React Native(RN)版本的最新進展,以及在性能和負載優(yōu)化方面的實踐探索。
開源鴻蒙RN版本快速演進,助力應用RN業(yè)務高效商用
隨著鴻蒙生態(tài)的持續(xù)壯大,開發(fā)者迎來了除 Android 與 iOS 之外的“第三種選擇”。React Native(RN)作為業(yè)界廣泛應用的跨平臺開發(fā)框架,兼具開發(fā)效率與性能優(yōu)勢。推進 RN 框架的鴻蒙化適配與版本演進,將有助于開發(fā)者復用原有技術(shù)棧,快速構(gòu)建高性能的鴻蒙應用,有效緩解“加入一個新生態(tài)就會增加一倍投入”的行業(yè)困境,實現(xiàn)“一套代碼、多平臺復用”的開發(fā)體驗。
據(jù)華為專家介紹,依托開源鴻蒙社區(qū)平臺,華為攜手產(chǎn)業(yè)界及學術(shù)界力量共同交付RN跨平臺框架的開源鴻蒙版本。通過開源共建的模式,開源鴻蒙RN版本快速迭代,能力不斷完善,已支撐200多個應用RN業(yè)務商用。其中,在頭部200多個鴻蒙應用中,有40多款涉及RN框架,均已全部實現(xiàn)商用。更多應用仍在快速、健康適配中,為鴻蒙生態(tài)的持續(xù)擴展奠定堅實基礎。
多維優(yōu)化路徑,提升性能與能效體驗
在社區(qū)伙伴的共同合力下,開源鴻蒙RN版本在性能、負載優(yōu)化等方面取得了顯著成效?,F(xiàn)場,華為專家從架構(gòu)設計、編譯優(yōu)化、系統(tǒng)資源調(diào)度、能效控制等多個維度進行了全方位分享。
架構(gòu)層面,RN Mount 段通過 C++ 對接 ArkUI 的 C-API 接口,無跨語言流程,大幅度提升端到端性能。目前,開源鴻蒙RN各版本都已對接ArkUI C-API接口,顯著提升了頁面交互性能。
虛擬機側(cè),龍雀 JS 引擎通過三級JIT流水線優(yōu)化、LLVM編譯優(yōu)化、Builtins PGO重排、靈活GC(暴露GC調(diào)參接口)、codecache等技術(shù),在 V8 虛擬機的基礎上實現(xiàn)約20%的性能提升,相比原始版 Hermes 提升更為明顯,開發(fā)者只需修改兩行代碼即可調(diào)用。
編譯器優(yōu)化方面,開源鴻蒙RN通過畢昇編譯器支持 LTO/PGO 等高級編譯優(yōu)化技術(shù),實現(xiàn) 5~8% 的性能提升與 2~5% 的負載下降,RN 庫產(chǎn)物尺寸縮小約15%。
能耗與動畫方面,LTPO在開源鴻蒙 RN上已實現(xiàn)衰變動畫、幀動畫、彈跳動畫等三類原生動畫適配,能夠降低部分動畫場景手機負載,讓設備不發(fā)熱,更節(jié)能。未來,將在RN JS動畫上使能LTPO幀率動態(tài)調(diào)整邏輯,使其根據(jù)動畫速度設置幀率。
頁面時延優(yōu)化上,Text 組件及 Stack 等控件通過結(jié)構(gòu)優(yōu)化,避免無效和重復的測量動作,讓頁面完成時延平均降低超過100ms(benchmark測試)。目前,該措施已落地開源鴻蒙RN全部版本。
攜手推進類RN框架技術(shù)演進,共同繁榮鴻蒙生態(tài)
RN 框架在開源鴻蒙的持續(xù)演進,不僅依賴華為自身的研發(fā)投入,更離不開開源社區(qū)的協(xié)同共建。未來,華為還將攜手更多伙伴,在開源社區(qū)上對RN框架以及包括 Lynx、Taro、Hippy、Mach、AJX、Cube、KDS、DX、Talos、Picasso等在內(nèi)的類RN框架進行技術(shù)演進的探討,共同推進性能、負載優(yōu)化方案的落地,構(gòu)建開發(fā)者友好的跨平臺框架生態(tài),推動鴻蒙應用開發(fā)邁入高質(zhì)量發(fā)展新階段。





