0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

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

鴻蒙開發(fā)ArkUI-X基礎(chǔ)知識:【ArkUI代碼工程及構(gòu)建介紹】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-05-25 16:45 ? 次閱讀

代碼工程及構(gòu)建介紹

背景

ArkUI作為OpenHarmony的默認(rèn)開發(fā)框架,在本項目(ArkUI-X)中需要做到一套代碼同時支持多平臺構(gòu)建,所以會采取共倉開發(fā)的方式,部分倉直接指向OpenHarmony相關(guān)開源倉。

代碼結(jié)構(gòu)及倉庫結(jié)構(gòu)

代碼工程的目錄結(jié)構(gòu)如下:

├── arkcompiler                 // 方舟編譯器
├── base                        // 基礎(chǔ)能力
├── build                       // 項目構(gòu)建和配置腳本
├── build_plugins               // 跨平臺構(gòu)建插件
├── commonlibrary               // 公共基礎(chǔ)庫
├── community                   // 社區(qū)相關(guān)
├── developtools                // 開發(fā)者工具
├── docs                        // 配套文檔
├── foundation
│   ├── appframework            // 應(yīng)用框架兼容適配層
│   ├── arkui                   // ArkUI引擎
│   ├── communication           // 通信能力
│   ├── distributeddatamgr      // 分布式數(shù)據(jù)管理
│   ├── filemanagement          // 文件管理
│   ├── graphic                 // 圖形引擎
│   └── multimedia              // 多媒體
├── interface                   // 接口聲明
├── plugins                     // 插件管理與實現(xiàn)
├── prebuilts                   // 預(yù)編譯目錄
├── productdefine               // 產(chǎn)品形態(tài)配置
├── samples                     // 示例代碼
├── test                        // 測試框架與用例
└── third_party                 // 三方庫

`HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿`

搜狗高速瀏覽器截圖20240326151547.png
具體的代碼結(jié)構(gòu)及指向,見下表:

目錄路徑描述代碼倉位置
build項目構(gòu)建和配置腳本[OpenHarmony/build]
build_plugins跨平臺構(gòu)建插件[ArkUI-X/build_plugins]
samples應(yīng)用程序樣例[ArkUI-X/samples]
community社區(qū)運(yùn)作管理[ArkUI-X/community]
docs說明文檔[ArkUI-X/docs]
interface/sdkArkUI-X SDK配置[ArkUI-X/interface_sdk]
pluginsAPI插件管理,OpenHarmony API插件實現(xiàn)[ArkUI-X/plugins]
test/xtsArkUI-X跨平臺應(yīng)用測試套件[ArkUI-X/xts]
test/testfwk/arkxtestArkUI-X測試框架[ArkUI-X/arkxtest]
developtools/ace_tools跨平臺命令行工具[ArkUI-X/cli]
foundation/appframework應(yīng)用框架兼容適配層[ArkUI-X/app_framework]
foundation/arkui/ace_engine/adapter/androidAndroid平臺適配代碼[ArkUI-X/arkui_for_android]
foundation/arkui/ace_engine/adapter/iosiOS平臺適配代碼[ArkUI-X/arkui_for_ios]
foundation/arkui/ace_engineArkUI 引擎核心代碼[OpenHarmony/arkui_ace_engine]
foundation/arkui/napiNative API擴(kuò)展機(jī)制[OpenHarmony/arkui_napi]
foundation/communication/netmanager_base網(wǎng)絡(luò)管理模塊[OpenHarmony/communication_netmanager_base]
foundation/communication/netstack網(wǎng)絡(luò)協(xié)議棧[OpenHarmony/communication_netstack]
foundation/graphic/graphic_2d2D圖形基礎(chǔ)庫[OpenHarmony/graphic_graphic_2d]
foundation/filemanagement/file_api提供目錄和文件的訪問操作接口[OpenHarmony/filemanagement_file_api]
foundation/multimedia/image_framework圖片編解碼功能實現(xiàn)[OpenHarmony/multimedia_image_framework]
developtools/ace_ets2bundle基于ArkTS的聲明式開發(fā)范式編譯轉(zhuǎn)換工具和跨平臺應(yīng)用構(gòu)建工具[OpenHarmony/ace_ets2bundle]
developtools/ace_js2bundle兼容JS的類Web開發(fā)范式編譯轉(zhuǎn)換工具和跨平臺應(yīng)用構(gòu)建工具[OpenHarmony/ace_js2bundle]
arkcompiler/ets_frontend方舟前端工具[OpenHarmony/arkcompiler_ets_frontend]
arkcompiler/ets_runtime方舟ArkTS運(yùn)行時[OpenHarmony/arkcompiler_ets_runtime]
arkcompiler/runtime_core方舟編譯器運(yùn)行時[OpenHarmony/arkcompiler_runtime_core]
arkcompiler/toolchain調(diào)試調(diào)優(yōu)工具[OpenHarmony/arkcompiler_toolchain]
prebuilts預(yù)編譯目錄,python,nodejs,clang和cmake等通過腳本預(yù)下載
third_party開源第三方組件(統(tǒng)一復(fù)用OpenHarmony代碼倉)引用開源三方庫集合
commonliary/c_utils通用的C++功能函數(shù)和類[OpenHarmony/commonliary_c_utils]
commonliary/ets_utils用于存放基礎(chǔ)類庫JSAPI,比如url、uri等[OpenHarmony/commonliary_ets_utils]
base/hiviewdfx/hilog系統(tǒng)日志功能[OpenHarmony/hiviewdfx_hilog]
base/web/webviewWebView組件的Native引擎[OpenHarmony/web_webview]
base/global/resource_management全球化資源管理[OpenHarmony/global_resource_management]

分支同步策略

OpenHarmony相關(guān)代碼倉,指向OpenHarmony master分支的固定tag點(diǎn),定期同步,默認(rèn)按照OpenHarmony的Weekly分支頻率進(jìn)行同步。

ArkUI引擎核心代碼倉目錄結(jié)構(gòu)

ArkUI引擎核心代碼倉 ace_engine 的目錄結(jié)構(gòu)以及每個目錄的內(nèi)容如下:

foundation/arkui/ace_engine
├── ace_config.gni      // 全局配置文件
├── adapter             // 平臺適配層
│   ├── android         // Android平臺適配,獨(dú)立倉
│   │   ├── build
│   │   ├── capability
│   │   ├── entrance
│   │   ├── stage
│   │   └── osal
│   ├── ios             // iOS平臺適配,獨(dú)立倉
│   │   ├── build
│   │   ├── capability
│   │   ├── entrance
│   │   ├── stage
│   │   └── osal
│   ├── ohos            // OpenHarmony平臺適配
│   └── preview         // 預(yù)覽器平臺適配
├── build               // 編譯配置
│   ├── ace_gen_obj.gni
│   ├── ace_lib.gni
│   ├── BUILD.gn
│   ├── search.py
│   └── tools
├── BUILD.gn            // 全局編譯配置
├── frameworks          // 引擎框架層
│   ├── base            // base庫
│   ├── bridge          // 前端橋接
│   └── core            // 引擎核心實現(xiàn)
├── interfaces          // 通用對外接口
│   └── napi
│       └── kits
├── LICENSE
├── OAT.xml
├── README.md
├── README_zh.md
└── test                // 測試相關(guān)

編譯構(gòu)建流程

為了支持一套代碼在OpenHarmony和其它平臺同時構(gòu)建,需要根據(jù)代碼結(jié)構(gòu)動態(tài)對編譯配置進(jìn)行調(diào)整,因為對外依賴可能不同,并且不同環(huán)境下可能依賴的外部源碼都有差異,所以必須對編譯目標(biāo)(targets)都進(jìn)行動態(tài)的定義,否則無法保持一致。

  • 編譯入口: OpenHarmony的編譯入口為bundle.json,這里定義了子系統(tǒng)的部件以及對外的接口,放在對應(yīng)子系統(tǒng)根目錄下,ArkUI的其它平臺構(gòu)建暫不需要,使用固定模塊名“ace_packages”作為入口。

  • 全局配置: 根目錄下的BUILD.gn以及ace_config.gni為全局的配置,其中BUILD.gn下定義了全局使用的“ace_config”、“ace_test_config”,其中ace_config.gni分別定義了以下配置:

    • 全局的變量配置,如“enable_ace_debug”,通過開關(guān)進(jìn)行編譯控制。
    • 全局的路徑定義,如“ace_napi“,配置路徑的變量。
    • 工具鏈相關(guān)的配置,如“windows_buildtool”。
    • 在“ace_config”中使用的全局宏的定義,如“ace_common_defines”。
    • 生成平臺相關(guān)的配置項“ace_platforms”,這一步是動態(tài)定義目標(biāo)的關(guān)鍵,見如下代碼:
    ace_platforms = []
    
    # 通過搜索adapter下的目錄,生成所有的adapter目錄名
    _ace_adapter_dir = rebase_path("$ace_root/adapter", root_build_dir)
    _adapters = exec_script("build/search.py", [ _ace_adapter_dir ], "list lines")
    
    # 導(dǎo)入每個adapter下的platform.gni,生成platform的定義配置,加入到ace_platforms中
    foreach(item, _adapters) {
    import_var = {}
    import_var = {
      import("$ace_root/adapter/$item/build/platform.gni")
    }
    
    if (defined(import_var.platforms)) {
      foreach(platform, import_var.platforms) {
      if (defined(platform.name)) {
        ace_platforms += [ platform ]
      }
      }
    }
    }
    
  • 平臺配置: 每個adapter下的build目錄存放平臺相關(guān)的配置

    ├── BUILD.gn      // 入口目標(biāo)定義,如"ace_packages"
    ├── config.gni    // 平臺配置
    ├── bundle.json   // 部件配置,非OpenHarmony平臺暫不需要
    └── platform.gni  // 平臺定義
    

    其中,單個config.gni的配置類似如下:

    defines = [
    "OHOS_PLATFORM",
    "OHOS_STANDARD_SYSTEM",
    ]
    
    js_engines = []
    ark_engine = {
    engine_name = "ark"
    engine_path = "jsi"
    engine_defines = [ "USE_ARK_ENGINE" ]
    }
    js_engines += [ ark_engine ]
    
    disable_gpu = true
    use_external_icu = "shared"
    use_curl_download = true
    ohos_standard_fontmgr = true
    sk_use_hilog = true
    accessibility_support = false
    rich_components_support = true
    advance_components_support = false
    form_components_support = false
    
    if (disable_gpu) {
    defines += [ "GPU_DISABLED" ]
    }
    
    cflags_cc = [
    "-Wno-thread-safety-attributes",
    "-Wno-thread-safety-analysis",
    ]
    
    platform_deps = [
    "http://foundation/arkui/ace_engine/adapter/ohos/entrance:ace_ohos_standard_entrance",
    "http://foundation/arkui/ace_engine/adapter/ohos/osal:ace_osal_ohos",
    ]
    

    這個文件定義了該平臺的所有差異化配置,如宏、cflags、平臺特有的依賴,以及一些功能性的開關(guān)。在具體的模塊定義中,宏、cflags這一類編譯配置直接從config引入,其它差異需要定義為功能性的開關(guān),如上述的“use_curl_download”,使模塊gn及特性的定義更清晰。

  • 動態(tài)目標(biāo)定義: 基于上述平臺的配置,就可以實現(xiàn)動態(tài)的定義目標(biāo),以base模塊為例:

    import("http://build/ohos.gni")
    import("http://foundation/arkui/ace_engine/ace_config.gni")
    
    template("ace_base_source_set") {
      forward_variables_from(invoker, "*")
    
      ohos_source_set(target_name) {
        # 引入平臺config中的define和cflags
        defines += invoker.defines
        cflags_cc = []
        cflags_cc += invoker.cflags_cc
    
        deps = [
          "$ace_root/build/third_party/cJSON:third_party_cjson",
          "i18n:ace_base_i18n_$platform",
          "resource:ace_resource",
        ]
    
        configs = [ "$ace_root:ace_config" ]
    
        # add base source file here
        sources = [
          "geometry/animatable_dimension.cpp",
          "geometry/animatable_matrix4.cpp",
          "geometry/matrix4.cpp",
          "geometry/quaternion.cpp",
          "geometry/transform_util.cpp",
          "json/json_util.cpp",
          "log/ace_trace.cpp",
          "log/dump_log.cpp",
          "memory/memory_monitor.cpp",
          "thread/background_task_executor.cpp",
          "utils/base_id.cpp",
          "utils/date_util.cpp",
          "utils/resource_configuration.cpp",
          "utils/string_utils.cpp",
          "utils/time_util.cpp",
        ]
    
      # 通過platform變量來進(jìn)行區(qū)別配置
        if (platform != "windows") {
          # add secure c API
          include_dirs = [ "http://utils/native/base/include" ]
    
          sources += [
            "http://utils/native/base/src/securec/memset_s.c",
            "http://utils/native/base/src/securec/securecutil.c",
            "http://utils/native/base/src/securec/secureprintoutput_a.c",
            "http://utils/native/base/src/securec/snprintf_s.c",
            "http://utils/native/base/src/securec/sprintf_s.c",
            "http://utils/native/base/src/securec/strcat_s.c",
            "http://utils/native/base/src/securec/strcpy_s.c",
            "http://utils/native/base/src/securec/vsnprintf_s.c",
            "http://utils/native/base/src/securec/vsprintf_s.c",
          ]
        }
    
        # 通過平臺的config決定是否依賴和編譯curl
        if (defined(config.use_curl_download) && config.use_curl_download) {
          configs += [ "http://third_party/curl:curl_config" ]
          sources += [ "$ace_root/frameworks/base/network/download_manager.cpp" ]
          deps += [ "http://third_party/curl:curl" ]
        }
      }
    }
    
    # 根據(jù)ace_platforms動態(tài)定義目標(biāo):假設(shè)里面包含三個平臺"ohos"、"windows"、"mac",則會定義三個target,
    # 分別為:ace_base_ohos,ace_base_windows,ace_base_mac
    foreach(item, ace_platforms) {
      ace_base_source_set("ace_base_" + item.name) {
        # 從platform中導(dǎo)入變量
        platform = item.name
        defines = []
        cflags_cc = []
        config = {
        }
    
        if (defined(item.config)) {
          config = item.config
        }
    
        if (defined(config.defines)) {
          defines = config.defines
        }
    
        if (defined(config.cflags_cc)) {
          cflags_cc = config.cflags_cc
        }
      }
    }
    
  • 模塊定義: 根據(jù)目錄結(jié)構(gòu),盡量分成一個個小模塊來定義,每個模塊定義明確,如果涉及平臺差異,使用上述方法定義,內(nèi)部配置差異盡量使用特性來區(qū)分

  • 依賴關(guān)系: 依賴關(guān)系盡量清楚,按層次依賴,不可反向依賴

  • 開發(fā)前請熟悉鴻蒙開發(fā)指導(dǎo)文檔gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md點(diǎn)擊或者復(fù)制轉(zhuǎn)到。

開發(fā)原則

  • 所有功能實現(xiàn)遵循分層設(shè)計
  • frameworks目錄下的所有模塊都是平臺無關(guān)的,不能依賴adapter目錄下的模塊,不能依賴除JS引擎相關(guān)的其它子系統(tǒng)
  • 平臺相關(guān)的代碼都必須放到adapter目錄對應(yīng)的平臺下,如果需要在frameworks中引用相關(guān),需要進(jìn)行適當(dāng)?shù)慕涌诔橄?/li>
  • 非OpenHarmony的adapter中不能依賴OpenHarmony其它子系統(tǒng)的模塊(例外:該子系統(tǒng)有跨平臺計劃并且通用)
  • frameworks/core不允許依賴frameworks/bridge下的模塊
  • 新增代碼不可直接依賴skia接口,使用graphic_2d提供的drawing接口
  • 修改OpenHarmony倉中的內(nèi)容要保證各平臺都能編譯通過,功能正常
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • HarmonyOS
    +關(guān)注

    關(guān)注

    79

    文章

    1954

    瀏覽量

    29897
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3607

    瀏覽量

    15956
  • 鴻蒙OS
    +關(guān)注

    關(guān)注

    0

    文章

    188

    瀏覽量

    4346
收藏 人收藏

    評論

    相關(guān)推薦

    鴻蒙開發(fā)學(xué)習(xí):初探【ArkUI-X

    **簡單來說,ArkTS + ArkUI-X 對標(biāo)的框架為 flutter,一次代碼,編譯為 native 全平臺運(yùn)行**
    的頭像 發(fā)表于 05-13 15:58 ?910次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>學(xué)習(xí):初探【<b class='flag-5'>ArkUI-X</b>】

    鴻蒙ArkUI-X跨平臺開發(fā):【命令行工具(ACE Tools)】

    ACE Tools是一套為ArkUI-X項目跨平臺應(yīng)用開發(fā)者提供的命令行工具,支持在Windows/Ubuntu/macOS平臺運(yùn)行,用于構(gòu)建OpenHarmony/HarmonyOS、Android和iOS平臺的應(yīng)用程序,其功
    的頭像 發(fā)表于 05-21 17:39 ?1419次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b>跨平臺<b class='flag-5'>開發(fā)</b>:【命令行工具(ACE Tools)】

    鴻蒙ArkUI-X跨平臺開發(fā):【SDK目錄結(jié)構(gòu)介紹

    本文檔配套ArkUI-X,將OpenHarmony ArkUI開發(fā)框架擴(kuò)展到不同的OS平臺,比如Android和iOS平臺,讓開發(fā)者基于ArkUI
    的頭像 發(fā)表于 05-20 16:28 ?726次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b>跨平臺<b class='flag-5'>開發(fā)</b>:【SDK目錄結(jié)構(gòu)<b class='flag-5'>介紹</b>】

    鴻蒙開發(fā)ArkUI-X基礎(chǔ)知識:【ArkUI跨平臺設(shè)計總體說明】

    本文檔描述ArkUI開發(fā)框架跨平臺運(yùn)行能力相關(guān)的總體技術(shù)方案。
    的頭像 發(fā)表于 05-24 15:41 ?1372次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>基礎(chǔ)知識</b>:【<b class='flag-5'>ArkUI</b>跨平臺設(shè)計總體說明】

    ArkUI-X開發(fā)指南:【SDK配置和構(gòu)建說明】

    ArkUI-X SDK是ArkUI-X開源項目的編譯產(chǎn)物,可將ArkUI-X SDK集成到現(xiàn)有Android和iOS應(yīng)用工程中,使開發(fā)者基于
    的頭像 發(fā)表于 05-25 16:48 ?2361次閱讀
    <b class='flag-5'>ArkUI-X</b><b class='flag-5'>開發(fā)</b>指南:【SDK配置和<b class='flag-5'>構(gòu)建</b>說明】

    資訊速遞 | ArkUI-X 預(yù)覽版已正式開源!

    專家??缙脚_應(yīng)用開發(fā)框架TSG對業(yè)界相關(guān)的跨平臺應(yīng)用開發(fā)框架所涉及的關(guān)鍵技術(shù)進(jìn)行洞察分析,制定關(guān)鍵的演進(jìn)策略,并開始構(gòu)建跨平臺應(yīng)用開發(fā)框架項目——A
    發(fā)表于 08-11 16:10

    資訊速遞 | ArkUI-X 預(yù)覽版已正式開源!

    OpenHarmony項目群技術(shù)指導(dǎo)委員會(以下簡稱“TSC”)-跨平臺應(yīng)用開發(fā)框架TSG所孵化項目 —— ArkUI-X,近期已正式開源 ,開發(fā)者基于一套主代碼,就可以將在OpenH
    的頭像 發(fā)表于 08-22 22:19 ?762次閱讀
    資訊速遞 | <b class='flag-5'>ArkUI-X</b> 預(yù)覽版已正式開源!

    鴻蒙ArkUI開發(fā)-Tabs組件的使用

    鴻蒙ArkUI開發(fā)-Tabs組件的使用
    的頭像 發(fā)表于 01-19 16:01 ?1576次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI</b><b class='flag-5'>開發(fā)</b>-Tabs組件的使用

    鴻蒙跨平臺框架:【ArkUi-X】創(chuàng)建工程

    鴻蒙推出了鴻ArkUi-X 框架所以就寫個文章分享一下
    的頭像 發(fā)表于 05-13 17:48 ?765次閱讀
    <b class='flag-5'>鴻蒙</b>跨平臺框架:【<b class='flag-5'>ArkUi-X</b>】創(chuàng)建<b class='flag-5'>工程</b>

    鴻蒙ArkUI-X跨平臺技術(shù):【開發(fā)準(zhǔn)備】

    本文檔適用于ArkUI跨平臺應(yīng)用開發(fā)的初學(xué)者。通過開發(fā)環(huán)境搭建、應(yīng)用工程創(chuàng)建、編譯和運(yùn)行,熟悉ArkUI跨平臺應(yīng)用
    的頭像 發(fā)表于 05-24 10:40 ?364次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b>跨平臺技術(shù):【<b class='flag-5'>開發(fā)</b>準(zhǔn)備】

    鴻蒙ArkUI-X跨平臺技術(shù):【開發(fā)初體驗】

    在DevEco Studio中導(dǎo)入ArkUI-X Sample,快速創(chuàng)建跨平臺工程。
    的頭像 發(fā)表于 05-17 15:54 ?483次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b>跨平臺技術(shù):【<b class='flag-5'>開發(fā)</b>初體驗】

    鴻蒙ArkUI-X跨平臺開發(fā):【 編寫第一個ArkUI-X應(yīng)用】

    通過構(gòu)建一個簡單的ArkUI頁面跳轉(zhuǎn)示例,快速了解資源創(chuàng)建引用,路由代碼編寫和UI布局編寫等應(yīng)用開發(fā)流程。
    的頭像 發(fā)表于 05-21 17:36 ?542次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b>跨平臺<b class='flag-5'>開發(fā)</b>:【 編寫第一個<b class='flag-5'>ArkUI-X</b>應(yīng)用】

    鴻蒙ArkUI-X跨平臺開發(fā):【 應(yīng)用工程結(jié)構(gòu)說明】

    本文檔配套ArkUI-X,將OpenHarmony ArkUI開發(fā)框架擴(kuò)展到不同的OS平臺,比如Android和iOS平臺,讓開發(fā)者基于ArkUI
    的頭像 發(fā)表于 05-19 21:05 ?460次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b>跨平臺<b class='flag-5'>開發(fā)</b>:【 應(yīng)用<b class='flag-5'>工程</b>結(jié)構(gòu)說明】

    鴻蒙ArkUI-X跨語言調(diào)用說明:平臺差異化【Android、ios動態(tài)化】

    ArkUI-X支持動態(tài)化,使用者可以根據(jù)自己需要動態(tài)發(fā)布跨平臺內(nèi)容,從而使跨平臺部分和宿主應(yīng)用進(jìn)行解耦。
    的頭像 發(fā)表于 05-23 14:38 ?628次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b>跨語言調(diào)用說明:平臺差異化【Android、ios動態(tài)化】

    鴻蒙ArkUI-X框架開發(fā):【開發(fā)準(zhǔn)備】

    本文檔適用于ArkUI-X框架開發(fā)的初學(xué)者。通過環(huán)境搭建、代碼下載、代碼編譯、API擴(kuò)展和使用,快速了解跨平臺項目開發(fā)流程。
    的頭像 發(fā)表于 05-23 21:02 ?365次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b>框架<b class='flag-5'>開發(fā)</b>:【<b class='flag-5'>開發(fā)</b>準(zhǔn)備】