ArkUI-X SDK目錄結構介紹
簡介
本文檔配套ArkUI-X,將OpenHarmony ArkUI開發框架擴展到不同的OS平臺,比如Android和iOS平臺,讓開發者基于ArkUI,可復用大部分的應用代碼(UI以及主要應用邏輯)并可以部署到相應的OS平臺,降低跨平臺應用開發成本。
SDK獲取
- SDK獲取可參見[版本說明]。
開發工具集成
- ACE Tools命令行集成 ACE Tools作為ArkUI跨平臺應用構建的命令行工具,通過集成ArkUI-X SDK具有創建、編譯構建OpenHarmony/HarmonyOS、Android和iOS應用的能力。
- DevEco Studio集成 DecEco Studio作為ArkUI跨平臺應用構建的IDE工具,通過集成ArkUI-X SDK支持一鍵構建出OpenHarmony/HarmonyOS應用、Android應用、iOS應用的能力。
ArkUI-X SDK構建規則
SDK壓縮包命名規則
ArkUI-X編譯構建流水線出包時,需按照SDK命名規則進行打包,命名規則如下:
path_操作系統類型_CPU架構類型_版本號_releaseType.zip
表1 SDK規則字段說明
| 字段 | 描述 開發前請熟悉鴻蒙開發指導文檔:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]點擊或者復制轉到。 |
|---|---|
| path | 取值為SDK根目錄元數據arkui-x.json文件中的path標簽內容。 |
| 操作系統類型 | 可選值:windows,darwin,linux。 |
| CPU架構類型 | 可選值:"x64"-x86架構,"arm64"-arm架構。 |
| 版本號 | 構建版本號與OpenHarmony SDK版本號規則保持一致。 |
| releaseType | 可選值:Canary,Beta,Release三種可選取值。releaseType后面加數字,標識迭代次數,比如:Beta1。 |
示例: arkui-x_windows_x64_1.0.0.0_Release.zip
SDK壓縮包內部結構
這里,以macOS平臺上的ArkUI-X SDK包為例,對SDK目錄結構和內容規格進行說明。更詳細的ArkUI-X SDK內容規格會在第五節進行介紹。
arkui-x_darwin_x64_1.0.0.0_Release.zip
└── arkui-x
├── engine // ArkUI-X的引擎庫
│ ├── lib // ArkUI-X的引擎庫:包括Android平臺及架構的動態庫
│ ├── framework // ArkUI-X的引擎庫:包括iOS平臺及架構的Framework庫
│ ├── xcframework // ArkUI-X的引擎庫:包括iOS平臺及架構的XCFramework庫
│ ├── ets // ArkUI-X增量接口,比如:@arkui-x.bridge
│ ├── apiConfig.json // engine庫配置文件,用于IDE和ACE Tools解析,以支持應用構建按需打包。
│ └── systemres // ArkUI-X框架自帶的資源
├── plugins // ArkUI-X官方提供的插件庫
│ ├── component // ArkUI組件插件庫
│ └── api // @ohos接口插件庫,apiConfig.json
├── toolchains // ArkUI-X應用開發工具,比如:ACE Tools。
├── sdkConfig.json // 增量d.ts路徑和接口前綴配置
├── arkui-x.json // SDK管理配置,流水線自動生成
└── NOTICE.txt
ArkUI-X SDK引擎目錄結構
ArkUI-X應用構建最小依賴集合,位于arkui-x_darwin_x64_1.0.0.0_Release.zip/arkui-x/engine目錄:
engine
├── lib
│ ├── include
│ ├── arkui
│ │ ├── arkui_android_adapter.jar
│ │ ├── android-arm
│ │ ├── android-arm-profile
│ │ ├── android-arm-release
│ │ ├── android-arm64
│ │ ├── android-arm64-profile
│ │ ├── android-arm64-release
│ │ └── android-x86_64
│ ├── third_party // 內部目錄同arkui
│ └── utils // 內部目錄同arkui
├── framework
│ ├── arkui
│ │ ├── ios-arm64
│ │ ├── ios-arm64-profile
│ │ ├── ios-arm64-release
│ │ ├── ios-arm64-simulator
│ │ └── ios-x86_64-simulator
│ ├── third_party
│ └── utils
├── xcframework
│ ├── arkui
│ │ ├── ios
│ │ │ └── libarkui_ios.xcframework
│ │ │ ├── Info.plist
│ │ │ ├── ios-arm64
│ │ │ └── ios-arm64_x86_64-simulator
│ │ ├── ios-profile
│ │ │ └── libarkui_ios.xcframework
│ │ │ ├── Info.plist
│ │ │ ├── ios-arm64
│ │ │ └── ios-arm64_x86_64-simulator
│ │ └── ios-release
│ │ └── libarkui_ios.xcframework
│ │ ├── Info.plist
│ │ ├── ios-arm64
│ │ └── ios-arm64_x86_64-simulator
│ ├── third_party // 內部目錄同arkui
│ └── utils // 內部目錄同arkui
├── ets
│ └── @arkui-x.bridge.d.ts
├── apiConfig.json
└── systemres
ArkUI-X SDK插件目錄結構
ArkUI-X應用按需打包插件庫集合,位于arkui-x_darwin_x64_1.0.0.0_Release.zip/arkui-x/plugins目錄:
plugins
├── component
│ ├── lib
│ │ ├── include
│ │ └── ${ui-name} // 一個UI組件一個目錄
│ │ ├── ${ui-name}.jar
│ │ ├── android-arm
│ │ ├── android-arm-profile
│ │ ├── android-arm-release
│ │ ├── android-arm64
│ │ ├── android-arm64-profile
│ │ ├── android-arm64-release
│ │ │ └── lib${ui-name}.so
│ │ └── android-x86_64
│ ├── framework
│ │ ├── ios-arm64
│ │ ├── ios-arm64-profile
│ │ │ └── lib${ui-name}.framework
│ │ ├── ios-arm64-release
│ │ ├── ios-arm64-simulator
│ │ └── ios-x86_64-simulator
│ ├── xcframework
│ │ ├── ios
│ │ │ └── lib${ui-name}.xcframework
│ │ │ ├── Info.plist
│ │ │ ├── ios-arm64
│ │ │ └── ios-arm64_x86_64-simulator
│ │ ├── ios-profile
│ │ │ └── lib${ui-name}.xcframework
│ │ │ ├── Info.plist
│ │ │ ├── ios-arm64
│ │ │ └── ios-arm64_x86_64-simulator
│ │ └── ios-release
│ │ └── lib${ui-name}.xcframework
│ │ ├── Info.plist
│ │ ├── ios-arm64
│ │ └── ios-arm64_x86_64-simulator
│ └── apiConfig.json
└── api
├── lib
│ ├── include
│ └── ${module-name}_${submodule-name} // 一個API模塊一個目錄
│ ├── ${module-name}_${submodule-name}.jar
│ ├── android-arm
│ ├── android-arm-profile
│ ├── android-arm-release
│ ├── android-arm64
│ ├── android-arm64-profile
│ ├── android-arm64-release
│ │ └── lib${module-name}_${submodule-name}.so
│ └── android-x86_64
├── framework
│ ├── ios-arm64
│ ├── ios-arm64-profile
│ │ └── lib${module-name}_${submodule-name}.framework
│ ├── ios-arm64-release
│ ├── ios-arm64-simulator
│ └── ios-x86_64-simulator
├── xcframework
│ ├── ios
│ │ └── lib${module-name}_${submodule-name}.xcframework
│ │ ├── Info.plist
│ │ ├── ios-arm64
│ │ └── ios-arm64_x86_64-simulator
│ ├── ios-profile
│ │ └── lib${module-name}_${submodule-name}.xcframework
│ │ ├── Info.plist
│ │ ├── ios-arm64
│ │ └── ios-arm64_x86_64-simulator
│ └── ios-release
│ └── lib${module-name}_${submodule-name}.xcframework
│ ├── Info.plist
│ ├── ios-arm64
│ └── ios-arm64_x86_64-simulator
└── apiConfig.json
arkui-x.json配置說明
{
"apiVersion": "10",
"displayName": "ArkUI-X",
"meta": {
"metaVersion": "1.0.0"
},
"path": "arkui-x",
"releaseType": "Release",
"version": "1.0.0.0"
}
字段解釋如下:
- apiVersion: ArkUI-X SDK依賴OpenHarmony SDK的版本。
- displayName: ArkUI-X SDK在DevEco Studio的顯示名稱。
- path: ArkUI-X SDK下載的后的路徑名稱。
- version: ArkUI-X SDK編譯構建版本號,用于轉測試。
ArkUI-X SDK內容詳細規格
Windows平臺
ArkUI-X SDK引擎目錄結構
- lib目錄:ArkUI-X基礎框架跨平臺實現。
- ets目錄:ArkUI-X獨有接口定義和ArkUI跨平臺Stage模型相關基礎接口配置說明。
- systemres目錄:ArkUI渲染一致性資源主題包。
arkui-x_windows_x64_1.0.0.0_Release.zip/arkui-x/engine
├── lib // ArkUI跨平臺引擎及平臺適配層
│ ├── include // NAPI和相關輔助C接口
│ ├── arkui
│ │ ├── arkui_android_adapter.jar
│ │ ├── android-arm
│ │ ├── android-arm-profile
│ │ ├── android-arm-release
│ │ ├── android-arm64
│ │ ├── android-arm64-profile
│ │ ├── android-arm64-release
│ │ │ └── libarkui_android.so // ArkUI跨平臺引擎,包含:ArkUINAPIARk三部分。
│ │ └── android-x86_64
│ ├── third_party
│ └── utils
├── ets // ArkUI-X獨有接口定義和ArkUI跨平臺Stage模型相關基礎接口配置說明。
│ └── @arkui-x.bridge.d.ts
├── apiConfig.json
└── systemres // ArkUI組件渲染一致性系統資源包
ArkUI-X SDK插件目錄結構
- component目錄:ArkUI組件插件化動態庫。
- api目錄:ArkTS接口插件化動態庫。
arkui-x_windows_x64_1.0.0.0_Release.zip/arkui-x/plugins
├── component // ArkUI組件插件化動態庫。
│ ├── lib
│ │ ├── include
│ │ └── ${ui-name}
│ │ ├── ${ui-name}_android_adapter.jar // 部分組件實現依賴的Android接口。
│ │ ├── android-arm
│ │ ├── android-arm-profile
│ │ ├── android-arm-release
│ │ ├── android-arm64
│ │ ├── android-arm64-profile
│ │ ├── android-arm64-release
│ │ │ └── lib${ui-name}.so // ArkUI組件實現。
│ │ └── android-x86_64
│ └── apiconfig.json // ArkUI組件跨平臺實現配置說明。
└── api // ArkTS接口插件化動態庫。
├── lib
│ ├── include
│ └── ${module-name}_${submodule-name}
│ ├── ${module-name}_${submodule-name}.jar // ArkTS接口實現依賴的Android接口。
│ ├── android-arm
│ ├── android-arm-profile
│ ├── android-arm-release
│ ├── android-arm64
│ ├── android-arm64-profile
│ ├── android-arm64-release
│ │ └── lib${module-name}_${submodule-name}.so // ArkTS接口實現。
│ └── android-x86_64
└── apiConfig.json // ArkTS @ohos接口跨平臺實現配置說明。
Linux平臺
ArkUI-X SDK引擎目錄結構
- lib目錄:ArkUI-X基礎框架跨平臺實現。
- ets目錄:ArkUI-X獨有接口定義和ArkUI跨平臺Stage模型相關基礎接口配置說明。
- systemres目錄:ArkUI渲染一致性資源主題包。
arkui-x_linux_x64_1.0.0.0_Release.zip/arkui-x/engine
├── lib // ArkUI跨平臺引擎及平臺適配層
│ ├── include // NAPI和相關輔助C接口
│ ├── arkui
│ │ ├── arkui_android_adapter.jar // ArkUI Android平臺適配層
│ │ ├── android-arm
│ │ ├── android-arm-profile
│ │ ├── android-arm-release
│ │ ├── android-arm64
│ │ ├── android-arm64-profile
│ │ ├── android-arm64-release
│ │ │ └── libarkui_android.so // ArkUI跨平臺引擎,包含:ArkUINAPIARk三部分。
│ │ └── android-x86_64
│ ├── third_party
│ └── utils
├── ets // ArkUI-X獨有接口定義和ArkUI跨平臺Stage模型相關基礎接口配置說明。
│ └── @arkui-x.bridge.d.ts
├── apiConfig.json
└── systemres // ArkUI組件渲染一致性系統資源包
ArkUI-X SDK插件目錄結構
- component目錄:ArkUI組件插件化動態庫。
- api目錄:ArkTS接口插件化動態庫。
arkui-x_linux_x64_1.0.0.0_Release.zip/arkui-x/plugins
├── component // ArkUI組件插件化動態庫。
│ ├── lib
│ │ ├── include
│ │ └── ${ui-name}
│ │ ├── ${ui-name}_android_adapter.jar // 部分組件實現依賴的Android接口。
│ │ ├── android-arm
│ │ ├── android-arm-profile
│ │ ├── android-arm-release
│ │ ├── android-arm64
│ │ ├── android-arm64-profile
│ │ ├── android-arm64-release
│ │ │ └── lib${ui-name}.so // ArkUI組件實現。
│ │ └── android-x86_64
│ └── apiconfig.json // ArkUI組件跨平臺實現配置說明。
└── api // ArkTS接口插件化動態庫。
├── lib
│ ├── include
│ └── ${module-name}_${submodule-name}
│ ├── ${module-name}_${submodule-name}.jar // ArkTS接口實現依賴的Android接口。
│ ├── android-arm
│ ├── android-arm-profile
│ ├── android-arm-release
│ ├── android-arm64
│ ├── android-arm64-profile
│ ├── android-arm64-release
│ │ └── lib${module-name}_${submodule-name}.so // ArkTS接口實現。
│ └── android-x86_64
└── apiConfig.json // ArkTS @ohos接口跨平臺實現配置說明。
macOS平臺
ArkUI-X SDK引擎目錄結構
- lib、framework、xcframework目錄:ArkUI-X基礎框架跨平臺實現。
- ets目錄:ArkUI-X獨有接口定義和ArkUI跨平臺Stage模型相關基礎接口配置說明。
- systemres目錄:ArkUI渲染一致性資源主題包。
arkui-x_darwin_x64_1.0.0.0_Release.zip/arkui-x/engine
├── lib // ArkUI跨平臺引擎及平臺適配層
│ ├── include // NAPI和相關輔助C接口
│ ├── arkui
│ │ ├── arkui_android_adapter.jar // ArkUI Android平臺適配層
│ │ ├── android-arm
│ │ ├── android-arm-profile
│ │ ├── android-arm-release
│ │ ├── android-arm64
│ │ ├── android-arm64-profile
│ │ ├── android-arm64-release
│ │ │ └── libarkui_android.so // ArkUI跨平臺引擎,包含:ArkUINAPIARkAbility等部分。
│ │ └── android-x86_64
│ ├── third_party
│ └── utils
├── framework
│ ├── arkui
│ │ ├── ios-arm64
│ │ ├── ios-arm64-profile
│ │ ├── ios-arm64-release
│ │ │ └── libarkui_ios.framework // ArkUI跨平臺引擎及平臺適配層
│ │ │ ├── Headers
│ │ │ ├── Info.plist
│ │ │ ├── libarkui_ios
│ │ │ ├── libarkui_ios.podspec
│ │ │ └── Modules
│ │ │ └── module.modulemap
│ │ ├── ios-arm64-simulator
│ │ └── ios-x86_64-simulator
│ ├── third_party
│ └── utils
├── xcframework
│ ├── arkui
│ │ ├── ios
│ │ │ └── libarkui_ios.xcframework // ArkUI跨平臺引擎及平臺適配層
│ │ │ ├── Info.plist
│ │ │ ├── ios-arm64
│ │ │ └── ios-arm64_x86_64-simulator
│ │ ├── ios-profile
│ │ │ └── libarkui_ios.xcframework // ArkUI跨平臺引擎及平臺適配層
│ │ │ ├── Info.plist
│ │ │ ├── ios-arm64
│ │ │ └── ios-arm64_x86_64-simulator
│ │ └── ios-release
│ │ └── libarkui_ios.xcframework // ArkUI跨平臺引擎及平臺適配層
│ │ ├── Info.plist
│ │ ├── ios-arm64
│ │ │ └── libarkui_ios.framework
│ │ │ ├── Headers
│ │ │ ├── Info.plist
│ │ │ ├── libarkui_ios
│ │ │ ├── libarkui_ios.podspec
│ │ │ └── Modules
│ │ │ └── module.modulemap
│ │ └── ios-arm64_x86_64-simulator
│ ├── third_party
│ └── utils
├── ets // ArkUI-X獨有接口定義和ArkUI跨平臺Stage模型相關基礎接口配置說明。
│ └── @arkui-x.bridge.d.ts
├── apiConfig.json
└── systemres // ArkUI組件渲染一致性系統資源包
ArkUI-X SDK插件目錄結構
- component目錄:ArkUI組件插件化動態庫。
- api目錄:ArkTS接口插件化動態庫。
HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿

arkui-x_darwin_x64_1.0.0.0_Release.zip/arkui-x/plugins
├── component // ArkUI組件插件化動態庫。
│ ├── lib
│ │ ├── include
│ │ └── ${ui-name}
│ │ ├── ${ui-name}_android_adapter.jar // 部分組件實現依賴的Android接口。
│ │ ├── android-arm
│ │ ├── android-arm-profile
│ │ ├── android-arm-release
│ │ ├── android-arm64
│ │ ├── android-arm64-profile
│ │ ├── android-arm64-release
│ │ │ └── lib${ui-name}.so // ArkUI組件實現。
│ │ └── android-x86_64
│ ├── framework
│ │ ├── ios-arm64
│ │ ├── ios-arm64-profile
│ │ ├── ios-arm64-release
│ │ │ └── lib${ui-name}.framework // ArkUI組件實現。
│ │ │ ├── Headers
│ │ │ ├── Info.plist
│ │ │ ├── lib${ui-name}
│ │ │ ├── lib${ui-name}.podspec
│ │ │ └── Modules
│ │ │ └── module.modulemap
│ │ ├── ios-arm64-simulator
│ │ └── ios-x86_64-simulator
│ ├── xcframework
│ │ ├── ios
│ │ │ └── lib${ui-name}.xcframework // ArkUI組件實現。
│ │ │ ├── Info.plist
│ │ │ ├── ios-arm64
│ │ │ └── ios-arm64_x86_64-simulator
│ │ ├── ios-profile
│ │ │ └── lib${ui-name}.xcframework // ArkUI組件實現。
│ │ │ ├── Info.plist
│ │ │ ├── ios-arm64
│ │ │ └── ios-arm64_x86_64-simulator
│ │ └── ios-release
│ │ └── lib${ui-name}.xcframework // ArkUI組件實現。
│ │ ├── Info.plist
│ │ ├── ios-arm64
│ │ │ └── lib${ui-name}.framework
│ │ │ ├── Headers
│ │ │ ├── Info.plist
│ │ │ ├── lib${ui-name}
│ │ │ ├── lib${ui-name}.podspec
│ │ │ └── Modules
│ │ │ └── module.modulemap
│ │ └── ios-arm64_x86_64-simulator
│ └── apiConfig.json // ArkTS UI組件跨平臺實現配置說明。
└── api // ArkTS接口插件化動態庫。
├── lib
│ ├── include
│ └── ${module-name}_${submodule-name}
│ ├── ${module-name}_${submodule-name}_android_adapter.jar // ArkTS接口實現依賴的Android接口。
│ ├── android-arm
│ ├── android-arm-profile
│ ├── android-arm-release
│ ├── android-arm64
│ ├── android-arm64-profile
│ ├── android-arm64-release
│ │ └── lib${module-name}_${submodule-name}.so // ArkTS接口實現。
│ └── android-x86_64
├── framework
│ ├── ios-arm64
│ ├── ios-arm64-profile
│ ├── ios-arm64-release
│ │ └── lib${module-name}_${submodule-name}.framework // ArkTS接口實現。
│ │ ├── Headers
│ │ ├── Info.plist
│ │ ├── lib${module-name}_${submodule-name}
│ │ ├── lib${module-name}_${submodule-name}.podspec
│ │ └── Modules
│ │ └── module.modulemap
│ ├── ios-arm64-simulator
│ └── ios-x86_64-simulator
├── xcframework
│ ├── ios
│ │ └── lib${module-name}_${submodule-name}.xcframework // ArkTS接口實現。
│ │ ├── Info.plist
│ │ ├── ios-arm64
│ │ └── ios-arm64_x86_64-simulator
│ ├── ios-profile
│ │ └── lib${module-name}_${submodule-name}.xcframework // ArkTS接口實現。
│ │ ├── Info.plist
│ │ ├── ios-arm64
│ │ └── ios-arm64_x86_64-simulator
│ └── ios-release
│ └── lib${module-name}_${submodule-name}.xcframework // ArkTS接口實現。
│ ├── Info.plist
│ ├── ios-arm64
│ │ └── lib${module-name}_${submodule-name}.framework
│ │ ├── Headers
│ │ ├── Info.plist
│ │ ├── lib${module-name}_${submodule-name}
│ │ ├── lib${module-name}_${submodule-name}.podspec
│ │ └── Modules
│ │ └── module.modulemap
│ └── ios-arm64_x86_64-simulator
└── apiConfig.json // ArkTS @ohos接口跨平臺實現配置說明。
審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
SDK
+關注
關注
3文章
1101瀏覽量
51714 -
開發者
+關注
關注
1文章
771瀏覽量
18008 -
鴻蒙
+關注
關注
60文章
2963瀏覽量
45883 -
OpenHarmony
+關注
關注
33文章
3952瀏覽量
21096
發布評論請先 登錄
相關推薦
熱點推薦
鴻蒙ArkUI-X跨平臺開發:【命令行工具(ACE Tools)】
ACE Tools是一套為ArkUI-X項目跨平臺應用開發者提供的命令行工具,支持在Windows/Ubuntu/macOS平臺運行,用于構
ArkUI-X在Android平臺動態化開發指南
本文介紹如何在Android平臺進行ArkUI-X動態化開發,包括動態化目錄規則及約束。
適用場景
動態化主要包括兩個典型場景:
場景1:框
發表于 06-15 23:33
ArkUI-X跨平臺應用改造指南
ArkUI-X跨平臺應用改造指南
現狀與訴求
隨著 HarmonyOS Next 5.0 版本正式發布,眾多開發者基于 ArkTS 語言為 HarmonyOS Next 系統
發表于 06-16 23:05
ArkUI-X跨平臺技術落地-華為運動健康(一)
開發工作量以及保證體驗一致性,對于運動健康App而言,顯得尤為重要。作為鴻蒙NEXT系統生態中的重要一員,ArkUI-X框架是我們跨平臺技術
發表于 06-18 22:53
ArkUI-X跨平臺技術落地-華為運動健康(二)
進行通信:
1.數據平臺的bridge -- 負責跨平臺業務層 和 數據平臺之間交互的接口定義;
2.設備類的bridge -- 負責上層業務層 和 設備能力之間的交互(目前由于
發表于 06-18 23:04
ArkUI-X案例解析
實現的,應首先符合ArkUI-X框架的規格要求.
在應用UI方面存在的差異,是無法借助Bridge能力來彌補的。在此建議使用ArkUI-X框架中已經適配完畢的組件,這些組件功能相對穩定且較為全面。
應用改造過程中可能涉及通過Bridge框架使用
發表于 06-23 22:40
鴻蒙ArkUI-X跨平臺開發:【SDK目錄結構介紹】
評論