国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Taro on Harmony C-API 版本正式開源

京東云 ? 來源:jf_75140285 ? 作者:jf_75140285 ? 2025-06-03 17:44 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Taro 是由京東發起并維護的開放式跨端跨框架解決方案,支持以 Web 的開發范式來實現小程序、H5、原生 APP 的跨端統一開發,從 18 年開源至今,在 GitHub 已累計獲得 36,000+ Stars。

Taro x 純血鴻蒙

在過去的一年中,Taro 經歷了顯著的蛻變,Taro on Harmony 方案完成從 ArkTS 方案到 C-API 方案的升級,成功實現了對純血鴻蒙的完全適配,擴展了 Taro 的兼容平臺家族,實現了對 H5、小程序、RN、原生鴻蒙多端的統一開發。

wKgZPGg-w_iAEA4fAAMoUb8Ux_U228.png

去年 9 月,京東 APP 純血鴻蒙 在鴻蒙應用商城正式上線,APP 中核心購物鏈路,如首頁、搜索、商詳、購物車、訂單、結算和我京等頁面,都是通過 Taro on Harmony C-API 版本進行開發,并且一上線就獲得了華為的 S 級應用認證。

今天,我們正式開源 Taro on Harmony C-API 版本,這次版本的發布,將帶來更豐富的樣式適配、更高效的渲染性能、更全面的組件支持,讓開發者以 Web 范式的方式來開發出媲美原生鴻蒙性能的應用,為鴻蒙應用生態的豐富注入強大的動力。

對于開發者來說,Taro on Harmony 技術方案為開發者提供了顯著優勢:顯著降低鴻蒙應用開發門檻,讓開發者能夠運用熟悉的 Web 技術棧快速構建純血鴻蒙應用。同時,基于鴻蒙 CAPI 構建的高性能渲染管線,在保證開發高效率的同時實現了與原生應用媲美的性能表現。更重要的是,開發者可以充分復用現有研發生態,將存量 Taro 項目快速適配遷移至鴻蒙平臺,大幅加速業務在鴻蒙生態的布局與上架進程。

wKgZPGg-w_mANxNsACdUv0C8qFw123.jpg

整體技術架構

Taro on Harmony 技術方案支持開發者使用 React DSL 來開發純血鴻蒙應用,整體架構可以簡單分為三層:

wKgZO2g-w_qAfRa4AAG1vWhwYL8357.png

最上層是應用業務代碼所在的 ArkVM 層,這一層在 C-API 版本中主要運行業務代碼、React 的核心代碼以及少量的 Taro 運行時代碼。

中間層是 Taro 的 CSSOM 和 TaroElement 樹,負責處理上層 Taro 運行時代碼傳遞下來的指令,比如 TaroElement 節點樹創建,綁定關系以及設置屬性等操作。

最下層存放的是 TaroRenderNode 虛擬節點樹,這棵節點樹和真正的上屏節點樹是一一對應的關系,同時在 TaroRenderNode 節點樹內會創建對應的 Yoga 節點。

wKgZPGg-w_qAUR31AAHzyRx6Yic680.png

同時 Taro 還基于鴻蒙提供的 VSync 機制設置一套任務處理管線,來處理中間層和下層節點樹產生的樣式匹配、節點測量、節點布局、樣式設置以及節點上屏等任務,來保證任務的時序性和最后上屏渲染結果的正確性。

重點特性

豐富的能力支持

常用組件和 API 支持

在 C-API 版本的 Taro on Harmony 中,我們不僅完整支持了 React 18+,另外支持了 View、Text、Image、Video 等近 33 個 Taro 組件,對于常用的 API,如 getSystemInfo、getStorage 等也是在 C-API 版本中得到了完整的支持,而且針對邏輯較為復雜的 API 如:createSelectorQuery 以及 createIntersectionObserver,我們將這些 API 在 C++ 側進行了重新的實現,大幅提升了他們的執行性能。

常用樣式支持

在 C-API 版本中,我們對支持了大部分常見的 CSS 能力:

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

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

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

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

支持 CSS 變量以及安全區域等預定義變量

同時,我們參考瀏覽器 CSSOM 的實現方式,在 C++ 實現了一套 CSSOM 邏輯,里面包含了樣式解析、樣式匹配、樣式合成和應用整個鏈路的樣式處理邏輯。

wKgZO2g-w_qAI-0KAADBTmNQ0Ek567.png

另外,Taro 引入了 Yoga 布局引擎來計算渲染節點的位置和大小,最大程度保證 Taro 構建出來的鴻蒙應用中渲染樣式和 W3C 規范的一致性。

wKgZPGg-w_uAP8CkAAUjSa4QtbI956.png

媲美原生 ArkTS 的高性能

運行時邏輯下沉至 C++

在 C-API 的版本中,我們將 ArkVM 層的 Taro 運行時內容削減到極致的薄,將 TaroElement 的大部分內容都下沉到了 C++ 側,并在 ArkVM 層取消了他們之間父子關系的綁定,極大地提升了 TaroElement 相關邏輯的性能。

wKgZO2g-w_yABbFtAAUYsbR7NzE071.png

另一方面,在 C++ 側 Taro 會指令式地調用 ArkUI 在 C++ 側提供的 API,來高效地創建節點、設置屬性、綁定事件以及繪制上屏。

提供長列表組件應對長列表場景

Taro 還針對長列表場景針對性地提供了長列表類型組件,并對長列表類型組件進行了優化,提供了懶加載、預加載和節點復用等功能,有效地解決大數據量下的性能問題,提高應用的流暢度和用戶體驗。

wKgZPGg-w_yAMrjlAADMBQoBLKg486.png

支持 C-API 混合原生的渲染模式

Taro 的組件和 API 是以小程序作為基準來進行設計的,因此在實際的鴻蒙應用開發過程中,會出現部分所需的組件和 API 在 Taro 中不存在的情況,因為針對這種情況,在 C-API 版本中,Taro 提供了原生混合開發的能力,支持將原生頁面或者原生組件混合編譯到 Taro 鴻蒙項目中,支持 Taro 組件和鴻蒙原生組件在頁面上的混合使用。

wKgZO2g-w_2AOdOmAAZSdMhlNhw834.png

使用教程

項目開源地址

Taro 本地開源地址:https://github.com/NervJS/taro

Taro 鴻蒙 C-API 開源地址:https://github.com/NervJS/taro-harmony-capi-library

安裝和使用

安裝 harmony 插件

# 使用 npm 安裝
$ npm i @tarojs/plugin-platform-harmony-cpp
# 使用 pnpm 安裝
$ pnpm i @tarojs/plugin-platform-harmony-cpp

添加插件配置

import os from 'os'
import path from 'path'

const config = {
  // ...
  plugins: ['@tarojs/plugin-platform-harmony-cpp'],
  harmony: {
    // 當前僅支持使用 Vite 編譯鴻蒙應用
    compiler: 'vite',
    // Note: 鴻蒙工程路徑,可以參考 [鴻蒙應用創建導讀](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V2/start-with-ets-stage-0000001477980905-V2) 創建
    projectPath: path.join(os.homedir(), 'projects/my-business-project'),
    // Taro 項目編譯到對應鴻蒙模塊名,默認為 entry
    hapName: 'entry',
  },
  // ...
}

編譯項目

# 編譯鴻蒙應用
$ taro build --type harmony_cpp
# 編譯鴻蒙原生組件
$ taro build native-components --type harmony_cpp

如果需要編譯鴻蒙應用,同時使用編譯鴻蒙原生組件,可以在頁面配置中添加 entryOption: false 表示該頁面是組件,同時可以用過 componentName 指定組件導出名。

export default {
  navigationBarTitleText: 'Hello World',
+  componentName: 'MyComponent',
+  entryOption: false,
}

總結與展望

Taro on Harmony C-API 版本經歷了京東鴻蒙 APP 的實踐,綜合性能、生態以及開發體驗來講,毫無疑問已經成為了開發鴻蒙應用的最佳框架選型之一。

當下,我們也仍然在不斷完善著鴻蒙的適配方案,基于當前的 Taro on Harmony C-API 方案,我們會進行多線程的架構升級以及 React 的 C++ 化,進一步提升 Taro 在鴻蒙端側的性能,并極大地降低應用的丟幀率,整體進展也已經處于驗證和測試階段。

也歡迎大家一起參與 Taro on Harmony 的共建,你們的每一個建議,每一次提交,都是推進 Taro 繼續往前走最大的動力。


審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • API
    API
    +關注

    關注

    2

    文章

    2368

    瀏覽量

    66752
  • Harmony
    +關注

    關注

    0

    文章

    108

    瀏覽量

    3555
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    鴻蒙Taro實戰:01-搭建開發環境

    **4.0.0** 5. Module name: entry 注意,上面當前 Taro 支持的 SDK 版本為 4.0.0 點擊 `Finish` 完成項目創建。 ## 安裝 Taro 4.x
    發表于 11-06 16:42

    320 C-API/PPR編程參考

    The Opt. 320 C-API/PPR Programming Reference describes all C functions, types and definitions
    發表于 08-13 14:19

    PCI-X系列選項320 C-API/PPR編程指南

    The E2920 C-API/PPR Programming Guide contains detailed information on how to program the Exerciser
    發表于 08-20 14:39

    C-API/PPR編程參考

    A C-API/PPR Programming Reference Guide for the Keysight E2922 and E2923 explaining different functions, error handling, and type definitions.
    發表于 08-22 13:47

    Taro下拉加載更多,上拉刷新是什么

    Taro下拉加載更多,上拉刷新
    發表于 06-15 17:10

    Harmony os java api對應的實現代碼沒有開放嗎?

    Harmony os java api對應的實現代碼沒有開放嗎?
    發表于 11-30 18:06

    Open Harmony如何接入開源圖形驅動呢

    Open Harmony如何接入開源圖形驅動呢?在OpenHarmony上使能開源GPU
    發表于 03-02 06:03

    Harmony和Android的內核版本有什么含義呢?

    |Android的內核版本指的是linux版本嗎?Harmony的內核版本指的也是linux嗎?他們兩個的內核版本有大佬講解一下嗎?
    發表于 05-19 14:44

    The MySQL C API 編程實例

    在網上找了一些MYSQL C API編程的文章,如《The MySQL C API 編程實例》,看了后覺得還是寫的不夠充分,根據自己經驗又擴充了一些知識,希望對需要調用到MYSQL的
    發表于 04-13 15:01 ?5次下載

    harmony官方開源社區

    harmony官方開源社區 harmony官方開源社區,2019業界開發者調查報告中顯示,61%的開發者認為文檔和代碼樣例是企業需要提供開發者最重要的內容。但在
    的頭像 發表于 06-21 19:22 ?3021次閱讀

    OpenHarmony生態論壇:關于開源Harmony OS教育行業發行版介紹

    OpenHarmony生態論壇:關于開源Harmony OS教育行業發行版,深度賦能智能硬件行業
    的頭像 發表于 04-25 15:19 ?1519次閱讀
    OpenHarmony生態論壇:關于<b class='flag-5'>開源</b><b class='flag-5'>Harmony</b> OS教育行業發行版介紹

    使用 Taro 開發鴻蒙原生應用 —— 快速上手,鴻蒙應用開發指南

    隨著鴻蒙系統的不斷完善,許多應用廠商都希望將自己的應用移植到鴻蒙平臺上。最近,Taro 發布了 v4.0.0-beta.x 版本,支持使用 Taro 快速開發鴻蒙原生應用,也可將現有的小程序轉換
    的頭像 發表于 02-02 16:09 ?2087次閱讀
    使用 <b class='flag-5'>Taro</b> 開發鴻蒙原生應用 —— 快速上手,鴻蒙應用開發指南

    Taro 鴻蒙技術內幕系列(三) - 多語言場景下的通用事件系統設計

    生態系統中,雖然原生應用通常基于 ArkTS 實現,但在實際研發過程中發現,使用 C++ 可以顯著提升應用框架和業務的性能表現。隨著鴻蒙系統的不斷迭代升級,不同語言環境間的協作已成為不可或缺的開發范式,共同構建了更豐富的研發生態。 Taro 通過接入鴻蒙端的
    的頭像 發表于 11-27 11:42 ?1101次閱讀
    <b class='flag-5'>Taro</b> 鴻蒙技術內幕系列(三) - 多語言場景下的通用事件系統設計

    京東開源Taro on HarmonyOS C-API版本

    近日,京東正式開源Taro on HarmonyOS C-API 版本,為鴻蒙應用跨端開發提供高性能框架。這次版本的發布,帶來了更豐富的樣
    的頭像 發表于 06-09 09:19 ?1129次閱讀
    京東<b class='flag-5'>開源</b><b class='flag-5'>Taro</b> on HarmonyOS <b class='flag-5'>C-API</b><b class='flag-5'>版本</b>

    Taro on HarmonyOS 技術架構深度解析

    2025 年 6 月,在華為開發者大會 2025 開發者場景技術共建分論壇,本文作者進行了《京東 Taro 框架鴻蒙版本正式開源 助力鴻蒙版三方應用開發》專題演講。期間闡述了 Taro
    的頭像 發表于 08-04 16:10 ?784次閱讀
    <b class='flag-5'>Taro</b> on HarmonyOS 技術架構深度解析