OpenHarmony 工程结构剖析

OpenHarmony 工程结构剖析

欢迎大家 加入跨平台开发者社区

本文说明 Flutter 在 OpenHarmony(OHOS) 侧的工程形态:纯 OHOS 应用多平台应用为存量工程补充 ohos/ ,以及 Plugin 的目录约定。

两类场景

类型 说明
应用 lib/pubspec.yaml 多端共享;宿主与构建在仓库的 ohos/ 下(DevEco / hvigor)。
插件 Dart 在包根 lib/;平台实现在各平台子目录,OHOS 一般为包根下的 ohos/example/ 可再带一套应用级 ohos/

1. 新建仅支持 OHOS 的应用

减少无关平台目录、仓库更干净:

bash 复制代码
flutter create --platforms ohos my_ohos_app
cd my_ohos_app

目录要点

复制代码
my_ohos_app/
├── lib/                      # Dart 入口(如 main.dart)
├── pubspec.yaml
├── test/
└── ohos/                     # OpenHarmony 工程根
    ├── AppScope/             # app.json5、应用级资源
    ├── entry/                # 主模块:Ability、页面、module.json5
    ├── oh-package.json5      # OHOS 侧依赖
    ├── build-profile.json5
    ├── hvigorfile.ts
    ├── hvigorconfig.ts
    ├── package.json          # 常配合 flutter-hvigor-plugin
    └── node_modules/         # 本地路径因 SDK 安装位置而异,不必与文档逐字一致

2. 新建多平台应用(含 Android、iOS、OHOS 等)

bash 复制代码
flutter create my_app
cd my_app

lib/pubspec.yamltest/ 外,顶层常见 android/ios/web/windows/linux/macos/ohos/ 。其中 ohos/ 内部布局与上一节「仅 OHOS」工程中的 ohos/ 一致(AppScope、entry、hvigor、oh-package 等)。


3. 为现有 Flutter 工程添加 OHOS

在工程根目录执行:

bash 复制代码
flutter create --platforms ohos .

成功后新增 ohos/,典型结构如下(与新建模板一致,便于对照 DevEco):

复制代码
your_flutter_project/
├── lib/                      # 原有 Dart,多端复用
├── android/                  # 若曾创建
├── ios/
├── ohos/                     # 本次新增
│   ├── AppScope/
│   │   ├── app.json5
│   │   └── resources/
│   ├── build-profile.json5
│   ├── entry/
│   │   ├── build-profile.json5
│   │   ├── hvigorfile.ts
│   │   ├── oh-package.json5
│   │   └── src/main/
│   │       ├── ets/          # EntryAbility、pages/Index 等
│   │       ├── module.json5
│   │       └── resources/
│   ├── hvigorfile.ts
│   ├── local.properties
│   ├── oh-package.json5
│   └── package.json
├── pubspec.yaml
└── ...

引擎与嵌入相关 HAR、原生库等多通过 oh-package.json5 / overrides 引入。


4. 插件(Plugin)与 OHOS

4.1 为已有插件增加 OHOS 平台

插件根目录执行:

bash 复制代码
flutter create . --template=plugin --platforms=ohos

常见新增内容:

  • 插件根目录 ohos/oh-package.json5build-profile.json5hvigorfile.tsindex.etssrc/main/...(ArkTS 实现以模板为准)。
  • example/ :若生成示例应用,其下的 example/ohos/ 与独立应用的 ohos/ 结构同类,用于调试插件。

4.2 新建多平台插件(含 Android、iOS、OHOS)

bash 复制代码
flutter create --org com.example --template=plugin --platforms=android,ios,ohos hello

4.3 新建仅支持 OHOS 的插件

bash 复制代码
flutter create --org com.example --template=plugin --platforms=ohos hello

插件仓库层次(示意)

复制代码
hello/
├── lib/                      # Dart:对外 API、MethodChannel 等
├── ohos/                     # OpenHarmony 平台实现
├── example/
│   ├── lib/
│   └── ohos/                 # 示例 App 的 OHOS 工程
├── pubspec.yaml
└── test/
相关推荐
世人万千丶1 小时前
鸿蒙日志体系高级应用:HiLog分级输出/隐私脱敏/远程日志采集/线上问题精准溯源方案
学习·harmonyos·鸿蒙
程序员黑豆7 小时前
鸿蒙应用开发:AttributeModifier 使用教程
前端·harmonyos
HarmonyOS_SDK7 小时前
基于人体骨骼点识别与跟踪,实现低时延体感游戏
harmonyos
世人万千丶8 小时前
鸿蒙Crash高级捕获与异常监控:全局异常兜底/崩溃栈解析/符号表还原/智能聚类/闭环修复
学习·机器学习·华为·数据挖掘·harmonyos·鸿蒙·聚类
云端漫步198710 小时前
HarmonyOS NEXT AI 智能生活助手:创建企业级 AI 工程与目录结构
人工智能·生活·harmonyos
程序员黑豆13 小时前
鸿蒙应用开发 @Extend 装饰器使用教程
前端·harmonyos
超爱西西鸭13 小时前
鸿蒙大型项目高级模块化拆分:高内聚低耦合架构设计/HSP动态交付/接口契约/依赖倒置落地规范
学习·华为·harmonyos·鸿蒙
云端漫步198714 小时前
HarmonyOS NEXT AI 智能生活助手:PromptManager 设计与实现
人工智能·生活·harmonyos
yuanlaile15 小时前
Flutter 开发鸿蒙 App 踩坑总结,一套完整实战学习方案分享
flutter·harmonyos·flutter开发鸿蒙·flutter开发鸿蒙实战·flutter ai实战·鸿蒙 ai实战