鸿蒙打包Flutter为HAP流程简介,官方文档可访问OpenHarmony-SIG / flutter_flutter
环境依赖
1.下载ohpm命令行工具,并配置环境变量ohpm与sdkmanager,下载完成后执行ohpm目录下bin/init初始化ohpm。参照指导文档:ohpm使用指导。
export OHPM_HOME=/home/<user>/ohos/oh-command-line-tools/ohpm/
export PATH= $PATH:$OHPM_HOME/bin:$OHPM_HOME/sdkmanager/bin
2.下载OpenHarmony SDK并配置环境变量,可直接参考官方文档
3.通过代码工具下载当前仓库代码git clone并配置环境
#这里的flutter sdk路径为你下载的鸿蒙的flutter sdk的路径,并且需要切换到最新分支代码
export PATH=<flutter_flutter path>/bin:$PATH
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
4.配置签名,可直接参考官方文档
5.应用构建依赖鸿蒙Flutter Engine构建产物,这里建议直接用官方已经构建好的产物,自己去构建费时费力还可能构建不成功,官方构建产物在Engine构建产物,下载好的产物为三个压缩包,分别为 debug profile release,对需要打包的类型进行解压,解压后的文件夹如下:
6.构建步骤
- 运行 flutter doctor -v 检查环境变量配置是否正确,Futter与OpenHarmony应都为ok标识,若两处提示缺少环境,按提示补上相应环境即可。
- 创建工程与编译命令,编译产物在/ohos/entry/build/default/outputs/default/entry-default-signed.hap下。
创建工程,这里创建出来的project的compile sdk为API 11,目前并没有支持个人使用,需要企业申请,对应的开发工具和SDK可参考OpenHarmony文档版本分支说明
flutter create --platforms ohos <projectName>
进入工程根目录编译
cd /Users/kk/Desktop/develop/project/hmosdemo
这里对应的是你上一步解压出来的engine产物路径
flutter build hap --local-engine=/Users/kk/Desktop/develop/project/hm_demo/engine-mac-arm64/src/out/ohos_debug_unopt_arm64
- 通过flutter devices指令发现ohos设备之后,使用 hdc -t install 进行安装。
- 也可直接使用下列指令运行:
flutter run --local-engine=<flutter_engine out path>
7.自己构建engine
虽然非常不建议大家自己去构建Flutter Engine, 但是还是补充一下构建的步骤
- 准备个,非常必要,而且网速要快和稳定,不然很痛苦
- 构建基础环境:可参照官网 2.1 安装git 2.2 安装python3 2.3 安装depot_tools,并配置到环境中,这一步可能会多次中断失败,如果失败了继续clone 2.4 安装pkg-config
2.5 安装 ninja-build
2.6 配置node:下载 node 并解压,且配置到环境变量中
如果是brew进行包管理的,执行brew install 即可,官网的sudo apt install并不适配于brew
brew install python3
brew install pkg-config
brew install ninja-build
export NODE_HOME=/home/<user>/env/node-v14.19.1-linux-x64
export PATH=$NODE_HOME/bin:$PATH
- 配置文件:创建空文件夹engine,engine内新建.gclient文件,编辑文件:
solutions = [
{
"managed": False,
"name": "src/flutter",
"url": "git@gitee.com:openharmony-sig/flutter_engine.git",
"custom_deps": {},
"deps_file": "DEPS",
"safesync_url": "",
},
]
- 同步代码:在engine目录,执行gclient sync;这里会同步engine源码、官方packages仓,还有执行ohos_setup任务;这一步可能会多次中断失败,如果失败了继续执行gclient sync,直到完成为止
- 下载sdk: 从鸿蒙套件列表下载配套开发工具,暂不支持非该渠道下载的套件
- 开始构建:在engine目录,执行./ohos,即可开始构建支持ohos设备的flutter engine。
- 更新代码:在engine目录,执行./ohos -b master