



























在移动应用开发领域,跨平台框架Flutter凭借其高效和灵活的特性,赢得了众多开发者的青睐。当Flutter与新兴的操作系统OpenHarmony相遇,又会碰撞出怎样的火花?本文将深入剖析Flutter在OpenHarmony侧的工程结构,详细介绍纯OpenHarmony应用、多平台应用、为存量工程补充OpenHarmony模块以及插件的目录约定,为开发者们呈现一个清晰的开发架构蓝图。

本文说明 Flutter 在 OpenHarmony(OHOS) 侧的工程形态:纯 OHOS 应用、多平台应用、为存量工程补充 ohos/,以及 Plugin 的目录约定。
类型说明应用lib/ 与 pubspec.yaml 多端共享;宿主与构建在仓库的 ohos/ 下(DevEco / hvigor)。插件Dart 在包根 lib/;平台实现在各平台子目录,OHOS 一般为包根下的 ohos/,example/ 可再带一套应用级 ohos/。
减少无关平台目录、仓库更干净:
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 安装位置而异,不必与文档逐字一致
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 等)。
在工程根目录执行:
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 等 引入。
在插件根目录执行:
flutter create . –template=plugin –platforms=ohos
常见新增内容:
flutter create –org com.example –template=plugin –platforms=android,ios,ohos hello
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/
本文由人人都是产品经理作者【null】,微信公众号:【nutpi】,原创/授权 发布于人人都是产品经理,未经许可,禁止转载。
题图来自Unsplash,基于 CC0 协议。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。