?
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 萬款的應用。那么這么多的應用需要開發,也就意味著需要有更多的鴻蒙人才。鴻蒙開發工程師也將會迎來爆發式的增長,學習鴻蒙勢在必行!