ArkUI-X SDK配置和构建说明
ArkUI-X SDK是ArkUI-X开源项目的编译产物,可将ArkUI-X SDK集成到现有Android和iOS应用工程中,使开发者基于一套ArkTS主代码,就可以构建支持多平台的精美、高性能应用。SDK内容包含ArkUI跨平台运行时,组件和接口插件库,以及ACE Tools命令行工具。
ArkUI-X SDK
├── 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组件插件库,apiConfig.json
│ └── api // @ohos接口插件库,apiConfig.json
├── toolchains // ArkUI-X应用开发工具,比如:ACE Tools。
├── sdkConfig.json // 增量d.ts路径和接口前缀配置
├── arkui-x.json // SDK管理配置,流水线自动生成
└── NOTICE.txt
下面将分别讲述:如何配置ArkUI-X SDK内容白名单,如何编译生成ArkUI-X SDK包,以及如何验证调试生成的ArkUI-X SDK包。
ArkUI-SDK配置说明
这里,ArkUI-SDK白名单内容配置以@ohos接口跨平台实现为例,并通过[@ohos.i18n (国际化-I18n)]进行讲述。
@ohos.i18n接口跨平台实现
- ArkUI-X社区代码仓为:gitee.com/arkui-x/plugins
- @ohos.i18n接口定义跨平台实现开发仓目录为:gitee.com/arkui-x/plugins/tree/master/i18n
这里,对于@ohos.i18n接口定义如何具体实现不做详细描述,可请参考:[Android平台扩展@ohos接口]和[iOS平台扩展@ohos接口]。
- @ohos.i18n接口定义跨平台实现后,提供i18n_static_android和i18n_static_ios两个[静态链接Targets]。根据模块名规则,@ohos.i18n的模块名为i18n,需配置在插件列表中[common_plugin_libs],作为插件模板(plugin_lib)的输入。
-
plugin_lib模板会在[arkui_for_android仓]和[arkui_for_ios仓]进行调用。分别生成动态链接Targets:
- //foundation/arkui/ace_engine/adapter/android/build:i18n
- //foundation/arkui/ace_engine/adapter/ios/build:libi18n
- 由于i18n涉及Android平台接口调用,还会提供Java Library GN Targets://plugins/i18n/android/java:i18n_plugin_java
@ohos.i18n SDK构建白名单配置
@ohos.i18n接口定义跨平台实现后,需在[插件仓]完成白名单配置,编译时打包到ArkUI-X SDK中。
[Android平台白名单配置]
{"install_dir": "arkui-x/plugins/api/lib/i18n/arch_type", // 用于指定输出到ArkUI-X SDK哪个目录下。"module_label": "//foundation/arkui/ace_engine/adapter/android/build:i18n", // 需要打包到ArkUI-X SDK的内容(动态库)"target_os": ["linux","windows","darwin"]},{"install_dir": "arkui-x/plugins/api/lib/i18n", // 用于指定输出到ArkUI-X SDK哪个目录下,如果不依赖平台接口,则不需要。"module_label": "//plugins/i18n/android/java:i18n_plugin_java", // 需要打包到ArkUI-X SDK的内容(Jar包),如果不依赖平台接口,则不需要。"target_os": ["linux","windows","darwin"]},
[iOS平台白名单配置]
{"install_dir": "arkui-x/plugins/api/framework/arch_type/libi18n.framework", // 用于指定输出到ArkUI-X SDK哪个目录下。"module_label": "//foundation/arkui/ace_engine/adapter/ios/build:libi18n", // 需要打包到ArkUI-X SDK的内容(Framework动态库)"target_os": ["darwin"]},
@ohos.i18n接口调用解析
ArkUI-X SDK中engine和plugins目录都会包含apiConfig.json配置文件,用于DevEco Studio和ACE Tools解析,可使开发者只关注ArkTS代码开发,无需关注引用的ArkUI控件和@ohos接口插件。这里,对于如何解析apiConfig.json不做描述,只讲述如何在[SDK仓]=配置apiConfig.json文件。
{"module": "ohos.i18n", // 表示OpenHarmony中的i18n接口模块:@ohos.i18n"library": {"android": [ // 表示i18n在Android平台进行应用开发时,哪些库需打包到Android应用安装包中。"lib/i18n/ace_i18n_plugin_android.jar","lib/i18n/arch_type/libi18n.so"],"ios":[ "xcframework/build_modes/libi18n.xcframework" ] // 表示i18n在iOS平台进行应用开发时,哪些库需打包到iOS应用安装包中。},"deps": {"android": [], // 表示i18n在Android平台进行应用开发时,哪些依赖库需打包到Android安装包中,空代表没有依赖。"ios":[] // 表示i18n在iOS平台进行应用开发时,哪些依赖库需打包到iOS安装包中,空代表没有依赖。}},
ArkUI-SDK构建说明
ArkU-SDK构建在ArkUI-X框架[基础构建]=上新增了ArkUI-X SDK包构建指令,详细如下:
Linux平台编译
- 构建ArkUI-X Debug,Release和Profile全量版本,仅用于Android平台。
./build.sh --product-name arkui-x --target-os android --gn-args gen_full_sdk=true
- 构建ArkUI-X Release版本,仅用于Android平台。
./build.sh --product-name arkui-x --target-os android
macOS平台编译
Android和iOS联合打包
- 构建ArkUI-X Debug,Release和Profile全量版本,可用于Android和iOS平台。
./build.sh --product-name arkui-x --target-os ios --gn-args gen_full_sdk=true build_android=true
- 构建ArkUI-X Release版本,可用于Android和iOS平台。
./build.sh --product-name arkui-x --target-os ios build_android=true
iOS
- 构建ArkUI-X Debug,Profile和Release全量版本,仅用于iOS平台。
./build.sh --product-name arkui-x --target-os ios --gn-args gen_full_sdk=true
- 构建ArkUI-X Release版本,仅用于iOS平台。
./build.sh --product-name arkui-x --target-os ios
Android
- 构建ArkUI-X Debug,Profile和Release全量版本,仅用于Android平台。
./build.sh --product-name arkui-x --target-os android --gn-args gen_full_sdk=true
- 构建ArkUI-X Release版本,仅用于Android平台。
- 开发前请熟悉鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。
./build.sh --product-name arkui-x --target-os android
ArkUI-SDK调试说明
- ArkUI-X SDK编译输出目录为:out/arkui-x/packages/arkui-x
- 替换当前Windows\macOS\Linux平台上已安装的ArkUI-X SDK。
最后呢,很多开发朋友不知道需要学习那些鸿蒙技术?鸿蒙开发岗位需要掌握那些核心技术点?为此鸿蒙的开发学习必须要系统性的进行。
而网上有关鸿蒙的开发资料非常的少,假如你想学好鸿蒙的应用开发与系统底层开发。你可以参考这份资料,少走很多弯路,节省没必要的麻烦。由两位前阿里高级研发工程师联合打造的《鸿蒙NEXT星河版OpenHarmony开发文档》里面内容包含了(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(Harmony NEXT)技术知识点
如果你是一名Android、Java、前端等等开发人员,想要转入鸿蒙方向发展。可以直接领取这份资料辅助你的学习。下面是鸿蒙开发的学习路线图。
高清完整版请点击→《鸿蒙NEXT星河版开发学习文档》
针对鸿蒙成长路线打造的鸿蒙学习文档。话不多说,我们直接看详细资料鸿蒙(OpenHarmony )学习手册(共计1236页)与鸿蒙(OpenHarmony )开发入门教学视频,帮助大家在技术的道路上更进一步。
《鸿蒙 (OpenHarmony)开发学习视频》
《鸿蒙生态应用开发V2.0白皮书》
《鸿蒙 (OpenHarmony)开发基础到实战手册》
获取这份鸿蒙星河版学习资料,请点击→《鸿蒙NEXT星河版开发学习文档》
OpenHarmony北向、南向开发环境搭建
《鸿蒙开发基础》
-
ArkTS语言
-
安装DevEco Studio
-
运用你的第一个ArkTS应用
-
ArkUI声明式UI开发
-
.……
《鸿蒙开发进阶》
-
Stage模型入门
-
网络管理
-
数据管理
-
电话服务
-
分布式应用开发
-
通知与窗口管理
-
多媒体技术
-
安全技能
-
任务管理
-
WebGL
-
国际化开发
-
应用测试
-
DFX面向未来设计
-
鸿蒙系统移植和裁剪定制
-
……
《鸿蒙开发实战》
-
ArkTS实践
-
UIAbility应用
-
网络案例
-
……
获取这份鸿蒙星河版学习资料,请点击→《鸿蒙NEXT星河版开发学习文档》
总结
鸿蒙—作为国家主力推送的国产操作系统。部分的高校已经取消了安卓课程,从而开设鸿蒙课程;企业纷纷跟进启动了鸿蒙研发。
并且鸿蒙是完全具备无与伦比的机遇和潜力的;预计到年底将有 5,000 款的应用完成原生鸿蒙开发,未来将会支持 50 万款的应用。那么这么多的应用需要开发,也就意味着需要有更多的鸿蒙人才。鸿蒙开发工程师也将会迎来爆发式的增长,学习鸿蒙势在必行!