0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙ArkUI-X跨平臺(tái)開(kāi)發(fā):【 應(yīng)用工程結(jié)構(gòu)說(shuō)明】

jf_46214456 ? 來(lái)源:jf_46214456 ? 作者:jf_46214456 ? 2024-05-19 21:05 ? 次閱讀

ArkUI-X應(yīng)用工程結(jié)構(gòu)說(shuō)明

簡(jiǎn)介

本文檔配套ArkUI-X,將OpenHarmony ArkUI開(kāi)發(fā)框架擴(kuò)展到不同的OS平臺(tái),比如AndroidiOS平臺(tái),讓開(kāi)發(fā)者基于ArkUI,可復(fù)用大部分的應(yīng)用代碼(UI以及主要應(yīng)用邏輯)并可以部署到相應(yīng)的OS平臺(tái),降低跨平臺(tái)應(yīng)用開(kāi)發(fā)成本。

應(yīng)用工程目錄結(jié)構(gòu)介紹

跨平臺(tái)應(yīng)用工程目錄結(jié)構(gòu),包含一套為ArkUI開(kāi)發(fā)者提供的應(yīng)用工程模板,提供構(gòu)建OpenHarmony應(yīng)用,HarmonyOS應(yīng)用,Android應(yīng)用,iOS應(yīng)用的能力。

ArkUI-X應(yīng)用工程目錄結(jié)構(gòu)
  ├── .arkui-x
  │   ├── android                 // Android平臺(tái)相關(guān)代碼
  │   └── ios                     // iOS平臺(tái)相關(guān)代碼
  ├── AppScope
  ├── entry
  ├── hvigor
  ├── build-profile.json5
  ├── hvigorfile.ts
  ├── hvigorw
  ├── hvigorw.bat
  ├── local.properties
  └── oh-package.json5
  
`HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿`

搜狗高速瀏覽器截圖20240326151344.png
此應(yīng)用目錄結(jié)構(gòu)設(shè)計(jì)思想是從OpenHarmony應(yīng)用工程原生支持跨平臺(tái)角度出發(fā),在OpenHarmony應(yīng)用工程之上疊加Android和iOS應(yīng)用工程,ArkTS代碼和resources資源在OpenHarmony側(cè)完成編譯,Native代碼仍在各自平臺(tái)應(yīng)用工程中完成編譯。

編譯構(gòu)建說(shuō)明

  • ArkTS源碼

ArkTS源碼通過(guò)OpenHarmony SDK工具鏈生成abc(Ark Byte Code),并分別拷貝到Android和iOS應(yīng)用工程,作為平臺(tái)應(yīng)用資源進(jìn)行管理。

  • ArkUI應(yīng)用資源

ArkUI Resources資源也通過(guò)OpenHarmony SDK工具鏈進(jìn)行編譯,編譯后的ArkUI資源分別拷貝到Android和iOS應(yīng)用工程,作為平臺(tái)應(yīng)用資源進(jìn)行管理。

  • ArkUI框架資源

ArkUI框架資源隨ArkUI-X SDK進(jìn)行發(fā)布,應(yīng)用構(gòu)建時(shí)會(huì)自動(dòng)打包到ArkUI-X應(yīng)用中,可保證ArkUI-X應(yīng)用在各平臺(tái)上UX渲染一致性。

開(kāi)發(fā)前請(qǐng)熟悉鴻蒙開(kāi)發(fā)指導(dǎo)文檔:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

綜上所述,Android平臺(tái)上通過(guò)assets管理ArkTS編譯產(chǎn)物、ArkUI應(yīng)用資源和ArkUI框架資源,iOS平臺(tái)上通過(guò)Bundle Resources管理ArkTS編譯產(chǎn)物、ArkUI應(yīng)用資源和ArkUI框架資源。

Android應(yīng)用工程結(jié)構(gòu)

ArkUI-X Android應(yīng)用工程
├── app
│   ├── libs
│   │   ├── arkui_android_adapter.jar                   // ArkUI-X跨平臺(tái)適配層,在SDK中發(fā)布
│   │   └── arm64-v8a
│   │       └── libarkui_android.so                     // ArkUI-X跨平臺(tái)引擎庫(kù),在SDK中發(fā)布
│   │       └── libhilog.so                             // ArkUI-X日志庫(kù),在SDK中發(fā)布
│   │       └── libresourcemanager.so                   // ArkUI-X資源管理庫(kù),在SDK中發(fā)布
│   ├── src
│   │   ├── androidTest
│   │   ├── main
│   │   │   ├── assets
│   │   │   │   └── arkui-x                             // ArkUI應(yīng)用編譯后的字節(jié)碼文件和Resources,作為資源文件存放在assets/arkui-x中
│   │   │   │       ├── entry                           // ArkUI單個(gè)模塊的編譯結(jié)果
│   │   │   │       │   ├── ets                         // ArkUI單個(gè)模塊代碼的編譯結(jié)果:包括字節(jié)碼文件以及sourceMap文件
│   │   │   │       │   │   ├── sourceMaps.map
│   │   │   │       │   │   └── modules.abc
│   │   │   │       │   ├── resources.index             // ArkUI單個(gè)模塊資源的編譯結(jié)果:resources資源的編譯結(jié)果
│   │   │   │       │   ├── resources                   // resources資源中的rawfile資源,不會(huì)進(jìn)行編譯。
│   │   │   │       │   └── module.json
│   │   │   │       ├── entry_test                      // ohosTest,僅僅Debug模式構(gòu)建包含。
│   │   │   │       └── systemres                       // ArkUI框架自帶的系統(tǒng)資源
│   │   │   ├── java/com/example/mayapp
│   │   │   │   ├── MyApplication.java                  // 基于StageApplication擴(kuò)展MyApplication
│   │   │   │   └── EntryEntryAbilityActivity.java      // 基于StageActivity擴(kuò)展EntryEntryAbilityActivity
│   │   │   ├── res
│   │   │   └── AndroidManifest.xml
│   │   └── test
│   ├── build.gradle
│   └── proguard-rules.pro
├── gradle/wrapper
├── build.gradle
├── gradle.properties
├── gradlew
├── gradlew.bat
└── settings.gradle

iOS應(yīng)用工程結(jié)構(gòu)

ArkUI-X iOS應(yīng)用工程
├── app.xcodeproj
│   ├── project.xcworkspace
│   ├── xcuserdata
│   └── project.pbxproj
├── app
│   ├── Assets.xcassets
│   ├── Base.Iproj
│   ├── AppDelegate.h
│   ├── AppDelegate.m                               // 應(yīng)用入口, 驅(qū)動(dòng)StageApplication的生命周期
│   ├── EntryEntryAbilityViewController.h           
│   ├── EntryEntryAbilityViewController.m           // 基于StageViewController擴(kuò)展EntryEntryViewController
│   ├── Info.plist
│   └── main.m
├── arkui-x                                         // ArkUI應(yīng)用編譯后的字節(jié)碼文件和Resources,作為資源文件存放在assets/arkui-x中
│   ├── entry                                       // ArkUI單個(gè)模塊的編譯結(jié)果
│   │   ├── ets                                     // ArkUI單個(gè)模塊代碼的編譯結(jié)果:包括字節(jié)碼文件以及sourceMap文件
│   │   │   ├── sourceMaps.map
│   │   │   └── modules.abc
│   │   ├── resources.index                         // ArkUI單個(gè)模塊資源的編譯結(jié)果:resources資源的編譯結(jié)果
│   │   ├── resources                               // resources資源中的rawfile資源,不會(huì)進(jìn)行編譯。
│   │   └── module.json
│   ├── entry_test                                  // ohosTest,僅僅Debug模式構(gòu)建包含。
│   └── systemres                                   // ArkUI框架自帶的系統(tǒng)資源
└── frameworks                                      // ArkUI跨平臺(tái)Framework動(dòng)態(tài)庫(kù):包含ArkUI-X的框架以及插件

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 開(kāi)發(fā)
    +關(guān)注

    關(guān)注

    0

    文章

    370

    瀏覽量

    40844
  • 框架
    +關(guān)注

    關(guān)注

    0

    文章

    403

    瀏覽量

    17489
  • 鴻蒙
    +關(guān)注

    關(guān)注

    57

    文章

    2352

    瀏覽量

    42859
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    鴻蒙開(kāi)發(fā)學(xué)習(xí):初探【ArkUI-X

    **簡(jiǎn)單來(lái)說(shuō),ArkTS + ArkUI-X 對(duì)標(biāo)的框架為 flutter,一次代碼,編譯為 native 全平臺(tái)運(yùn)行**
    的頭像 發(fā)表于 05-13 15:58 ?1039次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開(kāi)發(fā)</b>學(xué)習(xí):初探【<b class='flag-5'>ArkUI-X</b>】

    鴻蒙ArkUI-X平臺(tái)開(kāi)發(fā):【命令行工具(ACE Tools)】

    ACE Tools是一套為ArkUI-X項(xiàng)目平臺(tái)應(yīng)用開(kāi)發(fā)者提供的命令行工具,支持在Windows/Ubuntu/macOS平臺(tái)運(yùn)行,用于構(gòu)
    的頭像 發(fā)表于 05-21 17:39 ?1788次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b><b class='flag-5'>開(kāi)發(fā)</b>:【命令行工具(ACE Tools)】

    鴻蒙ArkUI-X平臺(tái)開(kāi)發(fā):【SDK目錄結(jié)構(gòu)介紹】

    本文檔配套ArkUI-X,將OpenHarmony ArkUI開(kāi)發(fā)框架擴(kuò)展到不同的OS平臺(tái),比如Android和iOS平臺(tái),讓
    的頭像 發(fā)表于 05-20 16:28 ?819次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b><b class='flag-5'>開(kāi)發(fā)</b>:【SDK目錄<b class='flag-5'>結(jié)構(gòu)</b>介紹】

    鴻蒙ArkUI-X平臺(tái)開(kāi)發(fā):【bility開(kāi)發(fā)說(shuō)明(Android平臺(tái))】

    本文介紹將ArkUI框架擴(kuò)展到Android平臺(tái)所需要的必要的類(lèi)及其使用說(shuō)明,開(kāi)發(fā)者基于OpenHarmony,可復(fù)用大部分的應(yīng)用代碼(生命周期等)并可以部署到Android
    的頭像 發(fā)表于 05-21 10:54 ?957次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b><b class='flag-5'>開(kāi)發(fā)</b>:【bility<b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>說(shuō)明</b>(Android<b class='flag-5'>平臺(tái)</b>)】

    鴻蒙ArkUI-X平臺(tái)開(kāi)發(fā):【bility開(kāi)發(fā)說(shuō)明(iOS端)】

    本文介紹將ArkUI框架擴(kuò)展到iOS平臺(tái)所需要的必要類(lèi)及其使用說(shuō)明,開(kāi)發(fā)者基于OpenHarmony,可復(fù)用大部分的應(yīng)用代碼(生命周期等)并可以部署到iOS
    的頭像 發(fā)表于 05-21 14:35 ?892次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b><b class='flag-5'>開(kāi)發(fā)</b>:【bility<b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>說(shuō)明</b>(iOS端)】

    鴻蒙開(kāi)發(fā)ArkUI-X基礎(chǔ)知識(shí):【ArkUI平臺(tái)設(shè)計(jì)總體說(shuō)明

    本文檔描述ArkUI開(kāi)發(fā)框架平臺(tái)運(yùn)行能力相關(guān)的總體技術(shù)方案。
    的頭像 發(fā)表于 05-24 15:41 ?1551次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>ArkUI-X</b>基礎(chǔ)知識(shí):【<b class='flag-5'>ArkUI</b><b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b>設(shè)計(jì)總體<b class='flag-5'>說(shuō)明</b>】

    鴻蒙開(kāi)發(fā)ArkUI-X基礎(chǔ)知識(shí):【ArkUI代碼工程及構(gòu)建介紹】

    ArkUI作為OpenHarmony的默認(rèn)開(kāi)發(fā)框架,在本項(xiàng)目(ArkUI-X)中需要做到一套代碼同時(shí)支持多平臺(tái)構(gòu)建,所以會(huì)采取共倉(cāng)開(kāi)發(fā)的方式
    的頭像 發(fā)表于 05-25 16:45 ?2089次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>ArkUI-X</b>基礎(chǔ)知識(shí):【<b class='flag-5'>ArkUI</b>代碼<b class='flag-5'>工程</b>及構(gòu)建介紹】

    ArkUI-X開(kāi)發(fā)指南:【SDK配置和構(gòu)建說(shuō)明

    ArkUI-X SDK是ArkUI-X開(kāi)源項(xiàng)目的編譯產(chǎn)物,可將ArkUI-X SDK集成到現(xiàn)有Android和iOS應(yīng)用工程中,使開(kāi)發(fā)者基于
    的頭像 發(fā)表于 05-25 16:48 ?2612次閱讀
    <b class='flag-5'>ArkUI-X</b><b class='flag-5'>開(kāi)發(fā)</b>指南:【SDK配置和構(gòu)建<b class='flag-5'>說(shuō)明</b>】

    資訊速遞 | ArkUI-X 預(yù)覽版已正式開(kāi)源!

    者快速擴(kuò)展對(duì)應(yīng)平臺(tái)上已有的能力。 ● ArkUI-X還提供了和OpenHarmony一致的測(cè)試框架:測(cè)試工程的目錄結(jié)構(gòu),同樣也和OpenHarmony的
    發(fā)表于 08-11 16:10

    資訊速遞 | ArkUI-X 預(yù)覽版已正式開(kāi)源!

    OpenHarmony項(xiàng)目群技術(shù)指導(dǎo)委員會(huì)(以下簡(jiǎn)稱(chēng)“TSC”)-平臺(tái)應(yīng)用開(kāi)發(fā)框架TSG所孵化項(xiàng)目 —— ArkUI-X,近期已正式開(kāi)源 ,開(kāi)發(fā)
    的頭像 發(fā)表于 08-22 22:19 ?835次閱讀
    資訊速遞 | <b class='flag-5'>ArkUI-X</b> 預(yù)覽版已正式開(kāi)源!

    鴻蒙平臺(tái)框架:【ArkUi-X】創(chuàng)建工程

    鴻蒙推出了鴻ArkUi-X 框架所以就寫(xiě)個(gè)文章分享一下
    的頭像 發(fā)表于 05-13 17:48 ?950次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b>框架:【<b class='flag-5'>ArkUi-X</b>】創(chuàng)建<b class='flag-5'>工程</b>

    鴻蒙ArkUI-X平臺(tái)技術(shù):【開(kāi)發(fā)準(zhǔn)備】

    本文檔適用于ArkUI平臺(tái)應(yīng)用開(kāi)發(fā)的初學(xué)者。通過(guò)開(kāi)發(fā)環(huán)境搭建、應(yīng)用工程創(chuàng)建、編譯和運(yùn)行,熟悉
    的頭像 發(fā)表于 05-24 10:40 ?474次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b>技術(shù):【<b class='flag-5'>開(kāi)發(fā)</b>準(zhǔn)備】

    鴻蒙ArkUI-X平臺(tái)技術(shù):【開(kāi)發(fā)初體驗(yàn)】

    在DevEco Studio中導(dǎo)入ArkUI-X Sample,快速創(chuàng)建平臺(tái)工程。
    的頭像 發(fā)表于 05-17 15:54 ?645次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b>技術(shù):【<b class='flag-5'>開(kāi)發(fā)</b>初體驗(yàn)】

    鴻蒙ArkUI-X語(yǔ)言調(diào)用說(shuō)明平臺(tái)差異化【Android、ios動(dòng)態(tài)化】

    ArkUI-X支持動(dòng)態(tài)化,使用者可以根據(jù)自己需要?jiǎng)討B(tài)發(fā)布平臺(tái)內(nèi)容,從而使平臺(tái)部分和宿主應(yīng)用進(jìn)行解耦。
    的頭像 發(fā)表于 05-23 14:38 ?890次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b>語(yǔ)言調(diào)用<b class='flag-5'>說(shuō)明</b>:<b class='flag-5'>平臺(tái)</b>差異化【Android、ios動(dòng)態(tài)化】

    鴻蒙ArkUI-X框架開(kāi)發(fā):【開(kāi)發(fā)準(zhǔn)備】

    本文檔適用于ArkUI-X框架開(kāi)發(fā)的初學(xué)者。通過(guò)環(huán)境搭建、代碼下載、代碼編譯、API擴(kuò)展和使用,快速了解平臺(tái)項(xiàng)目開(kāi)發(fā)流程。
    的頭像 發(fā)表于 05-23 21:02 ?476次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b>框架<b class='flag-5'>開(kāi)發(fā)</b>:【<b class='flag-5'>開(kāi)發(fā)</b>準(zhǔn)備】