ArkUI-X開發指南:【SDK配置和構建說明】

?

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

搜狗高速瀏覽器截圖20240326151450.png


下面將分別講述:如何配置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點擊或者復制轉到。

搜狗高速瀏覽器截圖20240326151547.png

./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北向、南向開發環境搭建

圖片

《鴻蒙開發基礎》

  1. ArkTS語言

  2. 安裝DevEco Studio

  3. 運用你的第一個ArkTS應用

  4. ArkUI聲明式UI開發

  5. .……

圖片

《鴻蒙開發進階》

  1. Stage模型入門

  2. 網絡管理

  3. 數據管理

  4. 電話服務

  5. 分布式應用開發

  6. 通知與窗口管理

  7. 多媒體技術

  8. 安全技能

  9. 任務管理

  10. WebGL

  11. 國際化開發

  12. 應用測試

  13. DFX面向未來設計

  14. 鴻蒙系統移植和裁剪定制

  15. ……

圖片

《鴻蒙開發實戰》

  1. ArkTS實踐

  2. UIAbility應用

  3. 網絡案例

  4. ……

圖片

?獲取這份鴻蒙星河版學習資料,請點擊→《鴻蒙NEXT星河版開發學習文檔》

總結

鴻蒙—作為國家主力推送的國產操作系統。部分的高校已經取消了安卓課程,從而開設鴻蒙課程;企業紛紛跟進啟動了鴻蒙研發

并且鴻蒙是完全具備無與倫比的機遇和潛力的;預計到年底將有 5,000 款的應用完成原生鴻蒙開發,未來將會支持 50 萬款的應用那么這么多的應用需要開發,也就意味著需要有更多的鴻蒙人才。鴻蒙開發工程師也將會迎來爆發式的增長,學習鴻蒙勢在必行!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/14556.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/14556.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/14556.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

安裝SSL證書能提高網站訪客嗎?

在當今互聯網時代,網站的安全性和用戶體驗至關重要。隨著網絡攻擊和數據泄露事件的不斷增加,用戶對網站的信任也變得越來越重要。SSL證書是一種數字證書,可以在Web服務器和網頁瀏覽器之間建立加密鏈接,確保網站傳輸的數據安全&…

【HarmonyOS嘗鮮課】- 前言

面向人群 本課程適用于HarmonyOS應用開發的初學者。 有無經驗的開發者都可以輕松掌握ArkTS語言聲明式開發范式,體驗更簡潔、更友好的HarmonyOS應用開發旅程。 什么是HarmonyOS HarmonyOS(鴻蒙操作系統)是由華為技術有限公司開發的全場景分…

B站自動回復插件_無需千粉,輕松適配引流拉新資源分享

項目介紹 B站關鍵詞自動回復插件,無需千粉, 很適合做流量做引流做私欲的朋友, 前期沒有千粉是無法開啟官方自動回復的, 適當的情況下可以用這個插件頂一下, 三聯好評領取資源的打法真的超級漲粉, 感謝插件…

【OceanBase診斷調優】—— KVCache 排查手冊

原文鏈接:OceanBase分布式數據庫-海量數據 筆筆算數 本文介紹 KVcache 相關問題的排查方法。 KVCache 相關概念 在進行排查前,需要了解幾個概念。 pin 一個 cache 塊 ( memblock ) 被 pin 住,表示它正在被引用。 cache 的由多個定長的塊組成…

HAL庫點LED燈

文章目錄 一、創建CubeMX項目操作步驟1.STM32CubeMX創建工程2.選擇芯片3.Pinout & Configuration配置4.Clock Configuration配置5.Project Manager配置 二、實驗(一)LED流水燈1.Keil修改代碼2.實驗現象3.keil波形仿真 (二)2只…

代碼隨想錄(棧和隊列)

用棧實現隊列(Leetcode232) package 棧和隊列;import java.util.ArrayList; import java.util.Stack; 思路:1、用一個棧stack2來存壓入的數,當要pop或peek操作時再壓入stack中,實現隊列順序2、不是每次pop都從stack2中…

沒有CAN硬件,在Linux下模擬使用Socket CAN

即使沒有實際的CAN硬件,我們仍然可以在Linux下使用socketcan進行模擬。這可以通過使用虛擬的CAN接口(vcan)來實現。vcan接口是Linux內核提供的虛擬CAN總線接口,適用于開發和測試socketcan應用。 以下是如何設置和使用vcan接口的步驟: 1. 加載vcan模塊 首先,你需要確保…

變量命名的藝術:讓你的代碼更具可讀性

新書上架~👇全國包郵奧~ python實用小工具開發教程http://pythontoolsteach.com/3 歡迎關注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目錄 一、引言:為何變量命名如此重要? 二、變量命名的基本規則 1. 避免數…

卷爆短劇出海:五大關鍵,由AIGC重構

短劇高溫下,談談AIGC的助攻路線。 短劇,一個席卷全球的高溫賽道。 以往只是踏著霸總題材,如今,內容循著精品化、IP化的自然發展風向,給內容、制作、平臺等產業全鏈都帶來新機,也讓短劇消費走向文化深處&am…

Docker僅需3步搭建免費私有化的AI搜索引擎-FreeAskInternet!

簡介 FreeAskInternet 是一個完全免費、私有且本地運行的搜索引擎,并使用 LLM 生成答案,無需 GPU。用戶可以提出問題,系統會進行多引擎搜索,并將搜索結果合并到ChatGPT3.5 LLM中,并根據搜索結果生成答案。 什么是 Fr…

重學java 39.多線程 — 線程安全

逐漸成為一個情緒穩定且安靜成長的人 ——24.5.24 線程安全 什么時候發生? 當多個線程訪問同一個資源時,導致了數據有問題,出現并發問題,數據不能及時更新,導致數據發生錯誤,出現線程安全問題 多線程安全問…

紋理映射技術在AI去衣中的藝術與科技融合

引言: 在數字圖像處理的世界里,AI去衣技術正逐步揭開其神秘的面紗。這門技術結合了深度學習的智能算法與圖形學的先進手段,以實現對圖像中衣物的智能識別與處理。在這一過程中,紋理映射技術發揮著至關重要的作用。本篇博客將深入探…

變量命名的藝術:從蛇形到駝峰

新書上架~👇全國包郵奧~ python實用小工具開發教程http://pythontoolsteach.com/3 歡迎關注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目錄 一、蛇形命名法的魅力 二、類名和模塊名的特殊規則 三、駝峰命名法的魅力與挑戰 四、保持…

【kubernetes】探索k8s集群中kubectl的陳述式資源管理

目錄 一、k8s集群資源管理方式分類 1.1陳述式資源管理方式:增刪查比較方便,但是改非常不方便 1.2聲明式資源管理方式:yaml文件管理 二、陳述式資源管理方法 2.1查看版本信息 2.2查看資源對象簡寫 2.3配置kubectl自動補全 2.4node節點…

初始Java篇(JavaSE基礎語法)—— 內部類

找往期文章包括但不限于本期文章中不懂的知識點: 個人主頁:我要學編程(?_?)-CSDN博客 所屬專欄:JavaSE 目錄 內部類的概念 內部類的種類 使用舉例: 1. 靜態內部類: 2. 實例內部類 3. 局部內部類 4. 匿名內部…

1分鐘帶你搞定Pandas DataFrame運算

1. DataFrame之間的運算 在運算中自動對齊不同索引的數據 如果索引不對應,則補NaN DataFrame沒有廣播機制 導包 # 導包import numpy as npimport pandas as pd 創建 DataFrame df1 不同人員的各科目成績,月考一 # 創建DataFrame二維數組df1 pd.Da…

想要修改Excel表格內容,怎么移除編輯權限?

在使用Excel進行數據處理和管理時,我們經常會遇到需要保護工作表以防止誤操作的情況。有時可能碰到“被保護單元格不支持此功能”的提示,本文將詳細介紹這個問題的解決方案,幫助你取消單元格保護,使用所需的功能。 一、取消單元格…

leetcode刷題記錄:前綴和

https://labuladong.online/algo/problem-set/perfix-sum/#%E8%A7%A3%E6%B3%95%E4%BB%A3%E7%A0%81-3 適用范圍:快速、頻繁地計算一個索引區間內的元素之和 303 區域和檢索:數組不可變 https://leetcode.cn/problems/range-sum-query-immutable/ class …

【Unitydemo制作】音游制作—排行榜邏輯Json存儲

👨?💻個人主頁:元宇宙-秩沅 👨?💻 hallo 歡迎 點贊👍 收藏? 留言📝 加關注?! 👨?💻 本文由 秩沅 原創 👨?💻 收錄于專欄:就業…

GQL 來了!ISO/IEC 正式發布 GQL 數據庫國際標準!

歷時四年籌備,超過20個國家的標準和技術專家參與制定,ISO/IEC GQL (圖查詢語言)標準于2024年4月12日正式發布! 作為國際標準化組織(ISO)繼 1987年 發布SQL后,唯一發布的數據庫查詢語…