查看: 111|回复: 0

Flutter适配OpenHarmony方案预研——创建(下)

[复制链接]

1

主题

4

回帖

14

积分

新手上路

积分
14
发表于 2025-3-30 15:10:35 | 显示全部楼层 |阅读模式
Flutter适配OpenHarmony方案预研——创建(下)



(文章已获得诚迈科技资深研发工程师-廖锦锐授权)




前文链接:Flutter适配OpenHarmony方案预研——创建(上) - 文章 OpenHarmony开发者论坛


下载支持OpenHarmony的Flutter版本,仓库链接 https://gitee.com/openharmony-sig/flutter_flutter


下载支持OpenHarmony的flutter sdk,master分支相对稳定,dev不断在更新相比master拥有更多功能,下面是dev分支的clone命令


git clone -b dev git@gitee.com:openharmony-sig/flutter_flutter.git


完成后在环境变量用户变量path中添加对应下载路径D:\ohosflutter\flutter_flutter\bin  


下载jdk17并配置环境变量


JAVA_HOME =


PATH=%JAVA_HOME%\bin


下载git在环境变量用户变量path中添加D:\application\Git\bin\cmd


配置flutter 国内镜像


在用户变量 新建flutter的国内镜像的变量名和变量值




配置HarmonyOS SDK和环境变量,我的电脑-属性-高级系统设置-环境变量-用户变量


点击新建 -输入对应的变量名和变量值-注意路径不要用空格



在对应的Deveco_Stdio安装路径下,环境变量中的用户变量path变量中追加 Node,ophm ,hvigor,hdc指令(可选)的路径



验证是否正确配置


1、打开cmd命令行窗口,输入flutter doctor –v


2、运行后,正确配置效果如图。确保flutter和HarmonyOS配置成功



创建工程 方式一 该方式只创建了ohos平台


flutter create --platforms ohos


创建工程 方式二 该方式创建了移动端和桌面端的平台


flutter create  



下载FlutterEngine构建产物(非必选项,不指定--local engine,默认是用云端的引擎)


Flutter工程构建依赖ohos_debug_unopt_arm64与ohos_release_arm64


FlutterTools指令运行参数中添加--local-engine字段来指定下载的engine:--local-engine=src/out/ ,


若不使用--local-engine来指定engine,默认使用云端最新版engine。 使用示例:


flutter build hap [--local-engine=/Users/admin/Documents/flutter_engine/src/out/ohos_debug_unopt_arm64]


下载编译产物(https://docs.qq.com/sheet/DUnljRVBYUWZKZEtF?tab=BB08J2)


engine本地路径必须带上src/out目录; 解压后,存放到一个目录(engine本地路径必须需带上src/out目录):


如:/Users/admin/Documents/flutter_engine/src/out


编译hap包


进入工程根目录编译hap包(可选release,debug,profile三个版本)


flutter build hap –release


编译产物路径


${projectName}/ohos/entry/build/default/outputs/default/entry-default-signed.hap


OpenHarmony真机运行Flutter项目


方式一


安装应用 hdc install [-r|-s] src ( src为应用安装包的文件名,具体到全路径)


hdc install D:\ohtest\flutter_ohos_demo\ohos\entry\build\default\outputs\default\entry-default-signed.hap


方式二


使用DevEcoStudio 选择设备为真机,在此之前需要在手机打开开发者选项,连接到手机后,点击启动。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表