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文章
1112浏览量
52031 -
开发者
+关注
关注
1文章
780浏览量
18067 -
鸿蒙
+关注
关注
60文章
3023浏览量
46178 -
OpenHarmony
+关注
关注
33文章
3974浏览量
21363
发布评论请先 登录
相关推荐
热点推荐
鸿蒙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目录结构介绍】
评论