当前位置:首页>鸿蒙APP>鸿蒙版Flutter工程结构剖析

鸿蒙版Flutter工程结构剖析

  • 2026-08-15 07:06:58
鸿蒙版Flutter工程结构剖析

Flutter OpenHarmony 工程结构剖析

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

两类场景

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

1. 新建仅支持 OHOS 的应用

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

flutter create --platforms ohos my_ohos_appcd 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 等)

flutter create my_appcd my_app

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


3. 为现有 Flutter 工程添加 OHOS

在工程根目录执行:

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 平台

在插件根目录执行:

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)

flutter create --org com.example --template=plugin --platforms=android,ios,ohos hello

4.3 新建仅支持 OHOS 的插件

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/

如果这篇文章对你有帮助,麻烦大家点赞 + 收藏 + 转发三连支持~ 你们的每一份认可,都是我持续输出技术干货的最大动力!后续还会带来更多实操教程,技术解读。记得关注不迷路哦~

也欢迎添加我的联系方式,咱们交个朋友!未来我也会持续分享各类前沿技术干货。

最新文章

随机文章