鸿蒙ArkUI-X跨平台开发:【 应用工程结构说明】

鸿蒙ArkUI-X跨平台开发:【 应用工程结构说明】

码农世界 2024-05-23 前端 65 次浏览 0个评论

 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

此应用目录结构设计思想是从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的框架以及插件

        鸿蒙开发岗位需要掌握那些核心要领?

        目前还有很多小伙伴不知道要学习哪些鸿蒙技术?不知道重点掌握哪些?为了避免学习时频繁踩坑,最终浪费大量时间的。

        自己学习时必须要有一份实用的鸿蒙(Harmony NEXT)资料非常有必要。 这里我推荐,根据鸿蒙开发官网梳理与华为内部人员的分享总结出的开发文档。内容包含了:【ArkTS、ArkUI、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战】等技术知识点。

        废话就不多说了,接下来好好看下这份资料。

        如果你是一名Android、Java、前端等等开发人员,想要转入鸿蒙方向发展。可以直接领取这份资料辅助你的学习。鸿蒙OpenHarmony知识←前往。下面是鸿蒙开发的学习路线图。

        针对鸿蒙成长路线打造的鸿蒙学习文档。鸿蒙(OpenHarmony )学习手册(共计1236页)与鸿蒙(OpenHarmony )开发入门教学视频,帮助大家在技术的道路上更进一步。

        其中内容包含:

        《鸿蒙开发基础》鸿蒙OpenHarmony知识←前往

        1. ArkTS语言
        2. 安装DevEco Studio
        3. 运用你的第一个ArkTS应用
        4. ArkUI声明式UI开发
        5. .……

        《鸿蒙开发进阶》鸿蒙OpenHarmony知识←前往

        1. Stage模型入门
        2. 网络管理
        3. 数据管理
        4. 电话服务
        5. 分布式应用开发
        6. 通知与窗口管理
        7. 多媒体技术
        8. 安全技能
        9. 任务管理
        10. WebGL
        11. 国际化开发
        12. 应用测试
        13. DFX面向未来设计
        14. 鸿蒙系统移植和裁剪定制
        15. ……

        《鸿蒙开发实战》鸿蒙OpenHarmony知识←前往

        1. ArkTS实践
        2. UIAbility应用
        3. 网络案例
        4. ……

        最后

        鸿蒙是完全具备无与伦比的机遇和潜力的;预计到年底将有 5,000 款的应用完成原生鸿蒙开发,这么多的应用需要开发,也就意味着需要有更多的鸿蒙人才。鸿蒙开发工程师也将会迎来爆发式的增长,学习鸿蒙势在必行!

转载请注明来自码农世界,本文标题:《鸿蒙ArkUI-X跨平台开发:【 应用工程结构说明】》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,65人围观)参与讨论

还没有评论,来说两句吧...

Top