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/
相关推荐
小白学鸿蒙7 小时前
使用Flutter从0到1构建OpenHarmony/HarmonyOS应用
flutter·华为·harmonyos
HarmonyOS_SDK8 小时前
接口高效调用,实现应用内无感促评
harmonyos
江澎涌9 小时前
鸿蒙动态导入实战
android·typescript·harmonyos
大雷神9 小时前
HarmonyOS APP<玩转React>开源教程二十:收藏功能实现
前端·react.js·开源·harmonyos
坚果派·白晓明1 天前
三方库ada
harmonyos·鸿蒙·openharmony
坚果派·白晓明1 天前
三方库 nanomsg
华为·harmonyos
弓.长.1 天前
ReactNative for OpenHarmony项目鸿蒙化三方库:react-native-pdf — PDF文档查看器
react native·pdf·harmonyos
开开心心就好1 天前
绿色版PDF多功能工具,支持编辑转换
人工智能·windows·pdf·ocr·excel·语音识别·harmonyos
云和数据.ChenGuang1 天前
鸿蒙餐饮系统:全场景智慧餐饮新范式
人工智能·机器学习·华为·数据挖掘·harmonyos·鸿蒙·鸿蒙系统