鸿蒙Flutter混合开发主要有两种形式。
1.基于har
将flutter module打包成har包,在原生鸿蒙项目中,以har包的方式引入。
其优点是主项目开发者可以不关注Flutter实现,不需要安装配置Flutter开发环境,缺点是无法及时修改Flutter代码,也不存在热重载。
2.基于源码
通过源码依赖的当时,在原生鸿蒙项目处,引入Flutter模块。
其优点是方便维护和更新Flutter代码,也可以使用热重载。缺点是需要搭建Flutter开发环境,开发人员需要掌握Flutter。
其项目结构类似如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| . ├── AppScope │ ├── app.json5 │ └── resources │ ├── base │ └── rawfile ├── build-profile.json5 ├── dependencies │ ├── hvigor-4.1.1.tgz │ ├── hvigor-ohos-arkui-x-plugin-3.1.0.tgz │ └── hvigor-ohos-plugin-4.1.1.tgz ├── entry │ ├── build-profile.json5 │ ├── hvigorfile.ts │ ├── oh-package.json5 │ └── src │ └── main ├── flutter_module │ ├── BuildProfile.ets │ ├── Index.ets │ ├── build-profile.json5 │ ├── consumer-rules.txt │ ├── hvigorfile.ts │ ├── libs │ │ └── arm64-v8a │ ├── obfuscation-rules.txt │ ├── oh-package.json5 │ └── src │ ├── main │ ├── ohosTest │ └── test ├── har │ ├── GT-HM-1.0.4.har │ ├── flutter.har │ ├── flutter_boost.har │ ├── flutter_module.har │ └── lib_base.har ├── hvigor │ └── hvigor-config.json5 ├── hvigorfile.ts ├── local.properties ├── oh-package.json5 ├── package-lock.json └── package.json
|
参考资料