ArkUI-X應用工程結構說明
簡介
本文檔配套ArkUI-X,將OpenHarmony ArkUI開發框架擴展到不同的OS平臺,比如Android和iOS平臺,讓開發者基于ArkUI,可復用大部分的應用代碼(UI以及主要應用邏輯)并可以部署到相應的OS平臺,降低跨平臺應用開發成本。
應用工程目錄結構介紹
跨平臺應用工程目錄結構,包含一套為ArkUI開發者提供的應用工程模板,提供構建OpenHarmony應用,HarmonyOS應用,Android應用,iOS應用的能力。
ArkUI-X應用工程目錄結構
├── .arkui-x
│ ├── android // Android平臺相關代碼
│ └── ios // iOS平臺相關代碼
├── AppScope
├── entry
├── hvigor
├── build-profile.json5
├── hvigorfile.ts
├── hvigorw
├── hvigorw.bat
├── local.properties
└── oh-package.json5
`HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿`
此應用目錄結構設計思想是從OpenHarmony應用工程原生支持跨平臺角度出發,在OpenHarmony應用工程之上疊加Android和iOS應用工程,ArkTS代碼和resources資源在OpenHarmony側完成編譯,Native代碼仍在各自平臺應用工程中完成編譯。
編譯構建說明
- ArkTS源碼
ArkTS源碼通過OpenHarmony SDK工具鏈生成abc(Ark Byte Code),并分別拷貝到Android和iOS應用工程,作為平臺應用資源進行管理。
- ArkUI應用資源
ArkUI Resources資源也通過OpenHarmony SDK工具鏈進行編譯,編譯后的ArkUI資源分別拷貝到Android和iOS應用工程,作為平臺應用資源進行管理。
- ArkUI框架資源
ArkUI框架資源隨ArkUI-X SDK進行發布,應用構建時會自動打包到ArkUI-X應用中,可保證ArkUI-X應用在各平臺上UX渲染一致性。
開發前請熟悉鴻蒙開發指導文檔:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
綜上所述,Android平臺上通過assets管理ArkTS編譯產物、ArkUI應用資源和ArkUI框架資源,iOS平臺上通過Bundle Resources管理ArkTS編譯產物、ArkUI應用資源和ArkUI框架資源。
Android應用工程結構
ArkUI-X Android應用工程
├── app
│ ├── libs
│ │ ├── arkui_android_adapter.jar // ArkUI-X跨平臺適配層,在SDK中發布
│ │ └── arm64-v8a
│ │ └── libarkui_android.so // ArkUI-X跨平臺引擎庫,在SDK中發布
│ │ └── libhilog.so // ArkUI-X日志庫,在SDK中發布
│ │ └── libresourcemanager.so // ArkUI-X資源管理庫,在SDK中發布
│ ├── src
│ │ ├── androidTest
│ │ ├── main
│ │ │ ├── assets
│ │ │ │ └── arkui-x // ArkUI應用編譯后的字節碼文件和Resources,作為資源文件存放在assets/arkui-x中
│ │ │ │ ├── entry // ArkUI單個模塊的編譯結果
│ │ │ │ │ ├── ets // ArkUI單個模塊代碼的編譯結果:包括字節碼文件以及sourceMap文件
│ │ │ │ │ │ ├── sourceMaps.map
│ │ │ │ │ │ └── modules.abc
│ │ │ │ │ ├── resources.index // ArkUI單個模塊資源的編譯結果:resources資源的編譯結果
│ │ │ │ │ ├── resources // resources資源中的rawfile資源,不會進行編譯。
│ │ │ │ │ └── module.json
│ │ │ │ ├── entry_test // ohosTest,僅僅Debug模式構建包含。
│ │ │ │ └── systemres // ArkUI框架自帶的系統資源
│ │ │ ├── java/com/example/mayapp
│ │ │ │ ├── MyApplication.java // 基于StageApplication擴展MyApplication
│ │ │ │ └── EntryEntryAbilityActivity.java // 基于StageActivity擴展EntryEntryAbilityActivity
│ │ │ ├── res
│ │ │ └── AndroidManifest.xml
│ │ └── test
│ ├── build.gradle
│ └── proguard-rules.pro
├── gradle/wrapper
├── build.gradle
├── gradle.properties
├── gradlew
├── gradlew.bat
└── settings.gradle
iOS應用工程結構
ArkUI-X iOS應用工程
├── app.xcodeproj
│ ├── project.xcworkspace
│ ├── xcuserdata
│ └── project.pbxproj
├── app
│ ├── Assets.xcassets
│ ├── Base.Iproj
│ ├── AppDelegate.h
│ ├── AppDelegate.m // 應用入口, 驅動StageApplication的生命周期
│ ├── EntryEntryAbilityViewController.h
│ ├── EntryEntryAbilityViewController.m // 基于StageViewController擴展EntryEntryViewController
│ ├── Info.plist
│ └── main.m
├── arkui-x // ArkUI應用編譯后的字節碼文件和Resources,作為資源文件存放在assets/arkui-x中
│ ├── entry // ArkUI單個模塊的編譯結果
│ │ ├── ets // ArkUI單個模塊代碼的編譯結果:包括字節碼文件以及sourceMap文件
│ │ │ ├── sourceMaps.map
│ │ │ └── modules.abc
│ │ ├── resources.index // ArkUI單個模塊資源的編譯結果:resources資源的編譯結果
│ │ ├── resources // resources資源中的rawfile資源,不會進行編譯。
│ │ └── module.json
│ ├── entry_test // ohosTest,僅僅Debug模式構建包含。
│ └── systemres // ArkUI框架自帶的系統資源
└── frameworks // ArkUI跨平臺Framework動態庫:包含ArkUI-X的框架以及插件
審核編輯 黃宇
-
開發
+關注
關注
0文章
370瀏覽量
40918 -
框架
+關注
關注
0文章
403瀏覽量
17542 -
鴻蒙
+關注
關注
57文章
2392瀏覽量
43050
發布評論請先 登錄
相關推薦
評論