色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

京東鴻蒙上線前瞻——使用 Taro 打造高性能原生應(yīng)用

京東云 ? 來源:jf_75140285 ? 作者:jf_75140285 ? 2024-09-11 15:57 ? 次閱讀

背景

2024 年 1 月,京東正式啟動鴻蒙原生應(yīng)用開發(fā),基于 HarmonyOS NEXT 的全場景、原生智能、原生安全等優(yōu)勢特性,為消費(fèi)者打造更流暢、更智能、更安全的購物體驗(yàn)。同年 6 月,京東鴻蒙原生應(yīng)用嘗鮮版上架華為應(yīng)用市場,計劃 9 月完成正式版的上架。

早在 2020 年,京東與華為就簽署了戰(zhàn)略合作協(xié)議,不斷加大技術(shù)投入探索 HarmonyOS 的創(chuàng)新特性。作為華為鴻蒙生態(tài)的首批頭部合作伙伴,在適配鴻蒙操作系統(tǒng)的過程中,京東與華為一直保持著密切的技術(shù)溝通與共創(chuàng),雙方共同攻堅行業(yè)適配難點(diǎn),并推動多端統(tǒng)一開發(fā)解決方案 Taro 在業(yè)界率先實(shí)現(xiàn)對鴻蒙 ArkUI 的原生開發(fā)支持。

本文將闡述京東鴻蒙原生應(yīng)用在開發(fā)時所采用的技術(shù)方案、技術(shù)特點(diǎn)、性能表現(xiàn)以及未來的優(yōu)化計劃。通過介紹選擇 Taro 作為京東鴻蒙原生應(yīng)用的開發(fā)框架的原因,分析 Taro 在支持 Web 范式開發(fā)、快速遷移存量項目、渲染性能優(yōu)化、高階功能支持以及混合開發(fā)模式等方面的優(yōu)勢。

技術(shù)方案

京東在開發(fā)鴻蒙原生應(yīng)用的過程中,需要考慮如何在有限的時間內(nèi)高效完成項目,同時兼顧應(yīng)用的性能與用戶體驗(yàn)。為了達(dá)成這一目標(biāo),選擇合適的技術(shù)方案至關(guān)重要。

在技術(shù)選型方面,開發(fā)一個鴻蒙原生應(yīng)用,一般會有兩種選擇:

使用原生 ArkTS 進(jìn)行鴻蒙開發(fā)

使用跨端框架進(jìn)行鴻蒙開發(fā)

使用原生 ArkTS 進(jìn)行鴻蒙開發(fā),面臨著開發(fā)周期冗長、維護(hù)多端多套應(yīng)用代碼成本高昂的挑戰(zhàn)。在交付時間緊、任務(wù)重的情況下,京東果斷選擇跨端框架來開發(fā)鴻蒙原生應(yīng)用,以期在有限的時間內(nèi)高效完成項目。

作為在業(yè)界具備代表性的開源跨端框架之一,Taro 是由京東凹凸實(shí)驗(yàn)室團(tuán)隊開發(fā)的一款開放式跨端跨框架解決方案,它支持開發(fā)者使用一套代碼,實(shí)現(xiàn)在 H5、小程序以及鴻蒙等多個平臺上的運(yùn)行。

通過 Taro 提供的編譯能力,開發(fā)者可以將整個 Taro 項目輕松地轉(zhuǎn)換為一個獨(dú)立的鴻蒙應(yīng)用,無需額外的開發(fā)工作。

image.png

另外,Taro 也支持將項目里的部分頁面以模塊化的形式打包進(jìn)原生的鴻蒙應(yīng)用中,京東鴻蒙原生應(yīng)用便是使用這種模式進(jìn)行開發(fā)的。

京東鴻蒙原生應(yīng)用的基礎(chǔ)基建能力如路由、定位、權(quán)限等能力由京東零售 mpass 團(tuán)隊來提供,而原生頁面的渲染以及與基建能力的橋接則由 Taro 來負(fù)責(zé),業(yè)務(wù)方只需要將寫好的 Taro 項目通過執(zhí)行相應(yīng)的命令,就可以將項目以模塊的形式一鍵打包到鴻蒙應(yīng)用中,最終在應(yīng)用內(nèi)渲染出對應(yīng)的原生頁面,整個過程簡單高效。

技術(shù)特點(diǎn)

Taro 作為一款開放式跨端跨框架解決方案,在支持開發(fā)者一套代碼多端運(yùn)行的同時,也為開發(fā)鴻蒙原生應(yīng)用提供了諸多便利。在權(quán)衡多方因素后,我們最終選擇了 Taro 作為開發(fā)鴻蒙原生應(yīng)用的技術(shù)方案,總的來說,使用 Taro 來開發(fā)鴻蒙原生應(yīng)用會有下面幾點(diǎn)優(yōu)勢:

支持開發(fā)者使用 Web 范式來開發(fā)鴻蒙原生應(yīng)用

與鴻蒙原生開發(fā)相比,使用 Taro 進(jìn)行開發(fā)的最大優(yōu)點(diǎn)在于 Taro 支持開發(fā)者使用前端 Web 范式來開發(fā)鴻蒙原生應(yīng)用,基于這一特點(diǎn),我們對大部分 CSS 能力進(jìn)行了適配

支持常見的 CSS 樣式和布局,支持 flex、偽類和偽元素

支持常見的 CSS 定位,絕對定位、fixed 定位

支持常見的 CSS 選擇器和媒體查詢

支持常見的 CSS 單位,比如 vh、vw 以及計算屬性 calc

支持 CSS 變量以及安全區(qū)域等預(yù)定義變量

在編譯流程上,我們采用了 Rust 編寫的 LightningCSS,極大地提升了 CSS 文件的編譯和解析速度。

image.png

(圖片來自 LightningCSS 官網(wǎng))

在運(yùn)行時上,我們參考了 WebKit 瀏覽器內(nèi)核的處理流程,對于 CSS 規(guī)則的匹配和標(biāo)臟進(jìn)行了架構(gòu)上的升級,大幅提升了 CSS 應(yīng)用和更新的性能。

image.png

支持存量 Taro 項目的快速遷移

將現(xiàn)有業(yè)務(wù)適配到一個全新的端側(cè)平臺,無疑需要投入大量的人力物力。而 Taro 框架的主要優(yōu)勢,正是能夠有效解決這種跨端場景下的項目遷移難題。通過 Taro,我們可以以極低的成本,在保證高度還原和高性能的前提下,快速地將現(xiàn)有的 Taro 項目遷移到鴻蒙系統(tǒng)上。

image.png

渲染性能比肩原生開發(fā)

在 Taro 轉(zhuǎn)換鴻蒙原生頁面的技術(shù)實(shí)現(xiàn)上,我們摒棄了之前使用 ArkTS 原生組件遞歸渲染節(jié)點(diǎn)樹的方案,將更多的運(yùn)行時邏輯如組件、動效、測算和布局等邏輯下沉到了 C++,極大地提升了頁面的渲染性能。

另外,我們對于 Taro 項目中 CSS 樣式的處理架構(gòu)進(jìn)行了一次整體的重構(gòu)和升級,并引入布局引擎Yoga,將頁面的測量和布局放在 Taro 側(cè)進(jìn)行實(shí)現(xiàn),基于這些優(yōu)化,實(shí)現(xiàn)一套高效的渲染任務(wù)管線,使得 Taro 開發(fā)的鴻蒙頁面在性能上足以和鴻蒙 ArkTS 原生頁面比肩。

image.png

支持虛擬列表和節(jié)點(diǎn)復(fù)用等高階功能

長列表渲染是應(yīng)用開發(fā)普遍會遇到的場景,在商品列表、訂單列表、消息列表等需要無限滾動的組件和頁面中廣泛存在,這些場景如果不進(jìn)行特殊的處理,只是單純對數(shù)據(jù)進(jìn)行渲染和更新,在數(shù)據(jù)量非常大的情況下,可能會引發(fā)嚴(yán)重的性能問題,導(dǎo)致視圖在一段時間內(nèi)無法響應(yīng)用戶操作。

在這個背景下,Taro 在鴻蒙端提供了長列表類型組件(WaterFlow & List),并對長列表類型組件進(jìn)行了優(yōu)化,提供了懶加載、預(yù)加載和節(jié)點(diǎn)復(fù)用等功能,有效地解決大數(shù)據(jù)量下的性能問題,提高應(yīng)用的流暢度和用戶體驗(yàn)。

image.png

(圖片來自 HarmonyOS 官網(wǎng))

支持原生混合開發(fā)等多種開發(fā)模式

Taro 的組件和 API 是以小程序作為基準(zhǔn)來進(jìn)行設(shè)計的,因此在實(shí)際的鴻蒙應(yīng)用開發(fā)過程中,會出現(xiàn)所需的組件和 API 在 Taro 中不存在的情況,因?yàn)獒槍@種情況,Taro 提供了原生混合開發(fā)的能力,支持將原生頁面或者原生組件混合編譯到 Taro 鴻蒙項目中,支持 Taro 組件和鴻蒙原生組件在頁面上的混合使用。

image.png

性能表現(xiàn)

京東鴻蒙原生應(yīng)用性能數(shù)據(jù)

經(jīng)過對 Taro 的屢次優(yōu)化和打磨,使得京東鴻蒙原生應(yīng)用取得了優(yōu)秀的性能表現(xiàn),最終首頁的渲染耗時 1062ms,相比于之前的 ArkTS 版本,性能提升了 23.9%;商詳?shù)匿秩竞臅r 560 ms,相比于之前的 ArkTS 版本,性能提升 74.2%

值得注意的是商詳頁性能提升顯著,經(jīng)過分析發(fā)現(xiàn)商詳樓層眾多,CSS 樣式也復(fù)雜多樣,因此在 ArkTS 版本中,在 CSS 的解析和屬性應(yīng)用階段占用了過多的時間,在 CAPI 版本進(jìn)行了CSSOM 模塊的架構(gòu)升級后,帶來了明顯的性能提升。

iShot_2024-09-03_22.57.29.png

基于 Taro 開發(fā)的頁面,在華為性能工廠的專業(yè)測試下,大部分都以優(yōu)異的成績通過了性能驗(yàn)收,充分證明了 Taro 在鴻蒙端的高性能表現(xiàn)。

總結(jié)和未來展望

Taro 目前已經(jīng)成為一個全業(yè)務(wù)域的跨端開發(fā)解決方案,實(shí)現(xiàn) Web 類(如小程序、Hybrid)和原生類(iOS、Android、鴻蒙)的一體化開發(fā),在高性能的鴻蒙適配方案的加持下,業(yè)務(wù)能快速拓展到新興的鴻蒙系統(tǒng)中去,可以極大滿足業(yè)務(wù)集約化開發(fā)的需求。

未來計劃

后續(xù),Taro 還會持續(xù)在性能上進(jìn)行優(yōu)化,以更好地適配鴻蒙系統(tǒng):

將開發(fā)者的 JS 業(yè)務(wù)代碼和應(yīng)用框架層的 JS 代碼與主線程的 UI 渲染邏輯分離,另起一條 JavaScript 線程,執(zhí)行這些 JS 代碼,避免上層業(yè)務(wù)邏輯堵塞主線程運(yùn)行,防止頁面出現(xiàn)卡頓、丟幀的現(xiàn)象。

image.png

實(shí)現(xiàn)視圖節(jié)點(diǎn)拍平,將不影響布局的視圖節(jié)點(diǎn)進(jìn)行整合,減少實(shí)際繪制上屏的頁面組件節(jié)點(diǎn)數(shù)量,提升頁面的渲染性能。

image.png

(圖片來自 React Native 官網(wǎng))

實(shí)現(xiàn)原生性能級別的動態(tài)更新能力,支持開發(fā)者在不重新編譯和發(fā)布應(yīng)用的情況下,動態(tài)更新應(yīng)用中的頁面和功能。

總結(jié)

京東鴻蒙原生應(yīng)用是 Taro 打響在鴻蒙端側(cè)適配的第一槍,證明了 Taro 方案適配鴻蒙原生應(yīng)用的可行性。這標(biāo)志著 Taro 在多端統(tǒng)一開發(fā)上的新突破,意味著 Taro 將為更多的企業(yè)和開發(fā)者提供優(yōu)秀的跨端解決方案,使開發(fā)者能夠以更高的效率開發(fā)出適配鴻蒙系統(tǒng)的高性能應(yīng)用。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 京東
    +關(guān)注

    關(guān)注

    2

    文章

    1018

    瀏覽量

    49150
  • 鴻蒙
    +關(guān)注

    關(guān)注

    59

    文章

    2526

    瀏覽量

    43778
  • HarmonyOS
    +關(guān)注

    關(guān)注

    79

    文章

    2053

    瀏覽量

    32147
收藏 0人收藏

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    鴻蒙千帆起】《開心消消樂》完成鴻蒙原生應(yīng)用開發(fā),創(chuàng)新多端聯(lián)動用戶體驗(yàn)

    《開心消消樂》已經(jīng)完成鴻蒙原生應(yīng)用開發(fā),樂元素成為率先完成鴻蒙原生應(yīng)用開發(fā)的 20+游戲廠商之一。作為一款經(jīng)典游戲,《開心消消樂》已經(jīng)擁有 8 億玩家,加入
    發(fā)表于 01-03 10:22

    HarmonyOS SDK,助力開發(fā)者打造煥然一新的鴻蒙原生應(yīng)用

    場景推出場景化控件,幫助開發(fā)者快速地打造更純凈、更智能、更精致、更易用的鴻蒙原生應(yīng)用。 提供六大領(lǐng)域,能力豐富完備 HarmonyOS SDK 擁有近 30000 個 API,覆蓋了鴻蒙
    發(fā)表于 01-19 10:31

    騰訊突然宣布,微信鴻蒙版要來了!

    提供了一種高效的方式來處理大量的鍵值對數(shù)據(jù),特別是在需要頻繁讀寫的場景下。 直白來說,想要讓 「微信」 成功運(yùn)行在原生鴻蒙上邊,就得先把這個底層組件適配搞定才行,這可能是微信適配鴻蒙較慢的原因,現(xiàn)在,難
    發(fā)表于 04-30 19:34

    實(shí)錘!騰訊終于擁抱鴻蒙生態(tài),微信鴻蒙原生版本即將上線

    大家都知道, 目前已知純血鴻蒙星河版next將于今年6月份開啟Bate版本的測試 ,也就是說原生鴻蒙系統(tǒng)快上線了。 而目前對于鴻蒙生態(tài)的發(fā)展
    發(fā)表于 04-30 21:14

    鴻蒙Taro實(shí)戰(zhàn):01-搭建開發(fā)環(huán)境

    ## 配置鴻蒙環(huán)境 ### 下載安裝 DevEco ### 配置IDE 打開 `Prefreences`, `OpenHarmony SDK`, 勾選 `API Version 12
    發(fā)表于 11-06 16:42

    鴻蒙原生頁面高性能解決方案上線OpenHarmony社區(qū) 助力打造高性能原生應(yīng)用

    NEXT的原生頁面高性能解決方案,從頁面滑動、跳轉(zhuǎn)及應(yīng)用冷啟動等關(guān)鍵環(huán)節(jié),為開發(fā)者提供全面的支持。目前,這些解決方案均已上線OpenHarmony開源社區(qū),可在OpenHarmony三方庫中心倉進(jìn)行搜索,歡迎開發(fā)者多多使用和共
    發(fā)表于 01-02 18:00

    快手上線鴻蒙應(yīng)用高性能解決方案:數(shù)據(jù)反序列化性能提升90%

    問題。 目前,“QuickTransformer”已在Gitee平臺上線并開源,開發(fā)者可到Gitee平臺查看源碼參與共建,共同打造更多高性能、高質(zhì)量的鴻蒙應(yīng)用。未來,華為還將聯(lián)合伙伴持
    發(fā)表于 05-15 10:01

    京東與華為鴻蒙合作 京東啟動鴻蒙原生應(yīng)用開發(fā)

     1月10日,華為和京東宣布正式合作,共同推動鴻蒙原生應(yīng)用的開發(fā),進(jìn)一步完善鴻蒙生態(tài)系統(tǒng)。
    的頭像 發(fā)表于 01-11 16:22 ?1198次閱讀

    京東正式啟動鴻蒙原生應(yīng)用開發(fā)

    華為與京東于近日宣布達(dá)成一項重要合作,正式啟動鴻蒙原生應(yīng)用開發(fā)。這一合作旨在利用HarmonyOS NEXT的獨(dú)特優(yōu)勢,為消費(fèi)者提供更出色的購物體驗(yàn)。
    的頭像 發(fā)表于 01-18 15:02 ?994次閱讀

    使用 Taro 開發(fā)鴻蒙原生應(yīng)用 —— 快速上手,鴻蒙應(yīng)用開發(fā)指南

    隨著鴻蒙系統(tǒng)的不斷完善,許多應(yīng)用廠商都希望將自己的應(yīng)用移植到鴻蒙平臺上。最近,Taro 發(fā)布了 v4.0.0-beta.x 版本,支持使用 Taro 快速開發(fā)
    的頭像 發(fā)表于 02-02 16:09 ?1303次閱讀
    使用 <b class='flag-5'>Taro</b> 開發(fā)<b class='flag-5'>鴻蒙</b><b class='flag-5'>原生</b>應(yīng)用 —— 快速上手,<b class='flag-5'>鴻蒙</b>應(yīng)用開發(fā)指南

    Taro鴻蒙技術(shù)內(nèi)幕系列(一):如何將React代碼跑在ArkUI上

    基于 Taro 打造京東鴻蒙 APP 已跟隨鴻蒙 Next 系統(tǒng)公測,本系列文章將深入解析 Taro
    的頭像 發(fā)表于 10-25 17:24 ?656次閱讀
    <b class='flag-5'>Taro</b><b class='flag-5'>鴻蒙</b>技術(shù)內(nèi)幕系列(一):如何將React代碼跑在ArkUI上

    Taro 鴻蒙技術(shù)內(nèi)幕系列(二):如何讓 W3C 標(biāo)準(zhǔn)的 CSS跑在鴻蒙上

    作者:京東零售 馬銀濤 ? 基于 Taro 打造京東鴻蒙 APP 已跟隨鴻蒙 Next 系統(tǒng)公
    的頭像 發(fā)表于 10-31 10:54 ?447次閱讀
    <b class='flag-5'>Taro</b> <b class='flag-5'>鴻蒙</b>技術(shù)內(nèi)幕系列(二):如何讓 W3C 標(biāo)準(zhǔn)的 CSS跑在<b class='flag-5'>鴻蒙上</b>

    Taro 鴻蒙技術(shù)內(nèi)幕系列(三) - 多語言場景下的通用事件系統(tǒng)設(shè)計

    作者:京東零售 朱天健 基于 Taro 打造京東鴻蒙 APP 已跟隨鴻蒙 Next 系統(tǒng)公測,
    的頭像 發(fā)表于 11-27 11:42 ?551次閱讀
    <b class='flag-5'>Taro</b> <b class='flag-5'>鴻蒙</b>技術(shù)內(nèi)幕系列(三) - 多語言場景下的通用事件系統(tǒng)設(shè)計

    鴻蒙原生開源庫ViewPool在OpenHarmony社區(qū)正式上線

    近日,由伙伴參與共建的鴻蒙原生開源庫“ViewPool”在OpenHarmony社區(qū)正式上線。這個開發(fā)庫是基于OpenHarmony技術(shù)孵化的成果,充分發(fā)揮了平臺的技術(shù)特性,同時融入了伙伴在應(yīng)用開發(fā)
    的頭像 發(fā)表于 12-20 14:44 ?564次閱讀

    快手上線鴻蒙應(yīng)用高性能解決方案

    近日,快手在Gitee平臺上線鴻蒙應(yīng)用性能優(yōu)化解決方案“QuickTransformer”,該方案針對鴻蒙應(yīng)用開發(fā)中廣泛使用的三方庫“class-transformer”進(jìn)行了深度優(yōu)
    的頭像 發(fā)表于 05-14 09:11 ?331次閱讀
    快手<b class='flag-5'>上線</b><b class='flag-5'>鴻蒙</b>應(yīng)用<b class='flag-5'>高性能</b>解決方案
    主站蜘蛛池模板: 青青草原伊人 | 伊人久久大香线蕉综合电影网 | 美女脱精光让男生桶下面 | 国产综合在线观看 | 欧美雌雄双性人交xxxx | 第一次破女初国产美女 | 亚洲国产成人久久精品影视 | 在线视频久久只有精品第一日韩 | 国产a级黄色毛片 | 国内精品久久久久久久999下 | 国产亚洲视频精彩在线播放 | 中文在线无码高潮潮喷在线 | 亚洲伦理精品久久 | 激情床戏揉胸吃胸视频 | 扒开屁股眼往里面夹东西 | 国产亚洲精品AAAAAAA片 | 一个人看的WWW高清电影 | 国产三级在线免费 | 亚洲精品无码午夜福利在线观看 | 一本道在线综合久久88 | 在线播放性xxx欧美 在线播放午夜理论片 | 亚洲精品一区国产欧美 | 欧美亚洲国产免费高清视频 | 国产GV天堂亚洲国产GV刚刚碰 | 妖精视频免费高清观看 | 久久re热线视频精品99 | 精品亚洲AV无码蜜芽麻豆 | 国产精品白浆精子流水合集 | 亚洲人成无码久久久AAA片 | 色欲AV精品人妻一区二区麻豆 | 亚洲AV精品一区二区三区不卡 | 99re久久超碰视频精品 | 国产一区二区波多野结衣 | 天天久久影视色香综合网 | 国产亚洲精品久久77777 | 高hbl双性浪荡古代 高h 大尺度纯肉 np快穿 | 99国内精品 | 欧美一区二区激情视频 | 恋孩癖网站大全在线观看 | 19不插片免费视频 | 日本高清免费在线 |

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品