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文章
1045瀏覽量
46272 -
開發者
+關注
關注
1文章
590瀏覽量
17095 -
鴻蒙
+關注
關注
57文章
2392瀏覽量
43050 -
OpenHarmony
+關注
關注
25文章
3744瀏覽量
16579
發布評論請先 登錄
相關推薦
評論