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.yaml、test/ 外,顶层常见 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.json5、build-profile.json5、hvigorfile.ts、index.ets、src/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/
相关推荐
fellow993 小时前
Electron + pnpm 在鸿蒙应用里跑起来
electron·harmonyos·openharmony·deepseek·deepseekharness
熊猫钓鱼>_>4 小时前
从闲置平板到家里的“控制大脑“:鸿蒙智慧中控面板完整实战
运维·人工智能·华为·自动化·电脑·ai编程·harmonyos
500844 小时前
React Native for OpenHarmony 实战:三方库 react-native-url-polyfill 的鸿蒙化适配指南
javascript·react native·react.js·性能优化·electron·harmonyos
熊猫钓鱼>_>7 小时前
从2D平铺到3D沉浸:我用HarmonyOS 7端侧AI做了一个全程数据不出设备的空间化私密相册
前端·人工智能·3d·华为·华为云·harmonyos·鸿蒙
m0_738185828 小时前
Flutter 鸿蒙化实战:foundation_fluttify 适配 OpenHarmony,Fluttify 桥接层
flutter·华为·harmonyos·鸿蒙
m0_738185828 小时前
Flutter 鸿蒙化实战:http_proxy 适配 OpenHarmony,HTTP 代理
flutter·http·华为·harmonyos·鸿蒙
m0_738185828 小时前
Flutter 鸿蒙化实战:headset_connection_event 适配 OpenHarmony,耳机插拔监听
flutter·华为·harmonyos·鸿蒙
500849 小时前
React Native for OpenHarmony 实战:三方库 react-native-volume-control 的鸿蒙化适配指南
javascript·react native·react.js·electron·harmonyos
李游Leo1 天前
HarmonyOS 7 DualCart 平行视界适配实录 04:EasyGo × 虚拟容器:商品比价双详情与分栏比例策略【鸿蒙心迹】
华为·harmonyos
李游Leo1 天前
HarmonyOS 7 PixelBridge 原生库适配实录 06:Release 性能基线、资源释放、包体积与工程化验收【鸿蒙心迹】
华为·harmonyos