OpenHarmony—Gradle工程适配为Hvigor工程

该适配场景适用于开发者希望将原OpenHarmony API 7的工程升级到OpenHarmony API 9的工程。

原OpenHarmony API 7的工程采用的是Gradle自动化构建工具,而OpenHarmony API 9的工程则采用Hvigor自动化构建工具,由于Gradle构建工具和Hvigor构建工具的配置文件不同,因此,对于采用Gradle编译构建的历史工程,需要手动进行适配,以适用于使用Hvigor工具进行编译构建。

说明

由于OpenHarmony API 7的工程属于FA模型,因此将工程升级到OpenHarmony API9时,也只能升级为FA模型,不支持升级为Stage模型。

关于OpenHarmony API 7工程的升级适配,提供如下两种方法:

适配方法一

  • 使用DevEco Studio创建一个OpenHarmony新工程,在配置工程信息时,请注意:

  • Bundle name:请与需要适配的历史工程的Bundle name保持一致。待适配工程的Bundle

    name字段可在模块目录下的config.json文件中进行查阅。

  • Compile SDK:请选择将要适配的目标API版本,支持选择9。

  • Model:请选择FA。

  • Language:选择与待适配工程使用的代码语言保持一致。

    2.等待工程ohpm install执行完成后,删除entry下的src目录,请注意,其它配置文件不要删除。

    3.将待适配工程entry模块下的src目录,拷贝到上述工程的entry文件夹下。

说明

如果待适配工程存在多个模块,可拷贝上述整个entry模块文件夹并修改模块名,然后将待适配模块中的源码和资源文件夹,替换到该模块下即可。

4.检查模块下src\main\resources\base目录是否存在layout和graphic文件夹,如果有请删除;没有请跳过该操作。

5.打开模块下的build-profile.json5文件,删除"ohosTest" Target。

6.如果是ArkTS工程,请修改ArkTS源码文件中的引用包的后缀名,由import xx from'xx.ets'修改为import xx from'xx',去掉.ets后缀名。

7.单击File > Sync and Refresh Project进行同步,等待工程同步完成。

至此,OpenHarmony历史工程便适配完成,您可以通过单击Build > Build Hap(s)/App(s) > Build Hap(s)验证是否可以正常编译构建HAP。

适配方法二

1.在本地电脑中,进入OpenHarmony工程所在文件夹。

2.在工程根目录下,修改相关配置文件。

a.删除Gradle相关的文件及缓存文件,如下图蓝色框所示的文件及文件夹。

b.打开工程根目录下local.properties文件,并根据实际路径进行修改。

复制代码
#OpenHarmony SDK路径
sdk.dir=D:/OpenHarmony/Sdk
#Node.js路径
nodejs.dir=D:/nodejs

c.新建一个文本文件,命名修改为"hvigorfile.ts"。

d.打开hvigorfile.ts文件,写入如下脚本信息。写入后,保存并关闭文件即可

复制代码
export { legacyAppTasks } from '@ohos/hvigor-ohos-plugin';

e.新建oh-package.json5文件,写入如下脚本信息,其中:name和version字段,请根据实际进行填写,其余字段保持不变。写入后,保存并关闭文件即可。

复制代码
{
"name": "myapplication",
  "version": "1.0.0",
  "description": "Please describe the basic information.",
  "main": "",
  "author": "",
  "license": "",
  "dependencies": {},
  "devDependencies": {
    "@ohos/hypium": "1.0.6"
  }
}

f.新建一个文本文件,命名修改为"build-profile.json5"。

g.打开build-profile.json5文件,写入如下脚本信息,其中compileSdkVersion和compatibleSdkVersion请修改为9。

复制代码
{
  "app": {
    "signingConfigs": [],
    "compileSdkVersion": 9,
    "compatibleSdkVersion": 9,
    "products": [
      {
        "name": "default",
        "signingConfig": "default",
      }
    ]
  },
  "modules": [
    {
      "name": "entry",
      "srcPath": "./entry",
      "targets": [
        {
          "name": "default",
          "applyToProducts": [
            "default"
          ]
        }
      ]
    }
  ]
}

h.工程需要添加ohpm编译构建四件套hvigorw、hvigorw.bat、hvigor-config.json5、hvigor-wrapper.js。可新建一个API 9的新工程,拷贝新工程中hvigorw、hvigorw.bat、hvigor-config.json5、hvigor-wrapper.js四项配置文件,粘贴到历史工程文件夹对应位置。

3.进入模块目录下,修改相关配置文件。如有多个模块,请逐一修改。

a.删除build文件夹、build.gradle和progurad-rules.pro文件。

b.检查模块下src\main\resources\base目录是否存在layout和graphic文件夹,如果有请删除;没有请跳过该操作。

c.新建一个文本文件,命名修改为"oh-package.json5"。

d.打开oh-package.json5文件,写入如下脚本信息。

复制代码
{
  "name": "entry",
  "version": "1.0.0",
  "description": "Please describe the basic information.",
  "main": "",
  "author": "",
  "license": "",
  "dependencies": {}
}

e.新建一个文本文件,命名修改为"hvigorfile.ts"。

f.打开hvigorfile.ts文件,写入如下脚本信息。写入后,保存并关闭文件即可。

复制代码
export { legacyHapTasks } from '@ohos/hvigor-ohos-plugin'; 

g.新建一个文本文件,命名修改为"build-profile.json5"。

h.打开build-profile.json5文件,写入如下脚本信息。写入后,保存并关闭文件即可。

复制代码
{
  "apiType": 'faMode',
  "buildOption": {
  },
  "targets": [
    {
      "name": "default"
    }
  ]
}

4.如果是ArkTS工程,请修改ArkTS源码文件中的引用包的后缀名,由import xx from'xx.ets'修改为import xx from'xx',去掉.ets后缀名。

至此,HarmonyOS历史工程便适配完成,您可以通过单击Build > Build Hap(s)/App(s) > Build Hap(s)验证是否可以正常编译构建HAP。

那么要想成为一名鸿蒙高级开发,以上知识点是必须要掌握的,除此之外,还需要掌握一些鸿蒙应用开发相关的一些技术,需要我们共同去探索。

为了节省大家一些查找的时间,这边联合几位行业大佬,为大家准备了一份《OpenHarmony4.0&Next》的学习导图,从入门到进阶再到南北向开发实战的一整套完整体系,想要学习了解更多鸿蒙开发的相关知识可以借鉴:《鸿蒙4.0源码开发架构分析pdf》

除了上面整理的思维导图以外,这里还特别整理的一份《鸿蒙 (Harmony OS)开发学习手册》给大家进行参考学习:

一、入门必看

1.应用开发导读(ArkTS)

2.......

二、HarmonyOS 概念

1.系统定义

2.技术架构

3.技术特性

4.系统安全

5...

三、如何快速入门?《鸿蒙HarmonyOS分布式项目实战》

1.基本概念

2.构建第一个ArkTS应用

3.构建第一个JS应用

4.......

四、开发基础知识

1.应用基础知识

2.配置文件

3.应用数据管理

4.应用安全管理

5.应用隐私保护

6.三方应用调用管控机制

7.资源分类与访问

8.学习ArkTS语言

9.......

五、基于ArkTS 开发

1.Ability开发

2.UI开发

3.公共事件与通知

4.窗口管理

5.媒体

6.安全

7.网络与链接

8.电话服务

9.数据管理

10.后台任务(Background Task)管理

11.设备管理

12.设备使用信息统计

13.DFX

14.国际化开发

15.折叠屏系列

16.......

更多了解更多鸿蒙开发的相关知识可以参考:《一小时快速认识HarmonyOS》

相关推荐
千里马学框架5 天前
一起学 Android 14:ShellTransition 屏幕旋转过程深度剖析
android·智能手机·性能优化·framework·性能·屏幕旋转·rotation
虎头金猫5 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
美狐美颜SDK开放平台5 天前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
AFinalStone5 天前
Android7 SystemUI源码解析(七)Keyguard锁屏模块深度解析
android·systemui
youyin5 天前
HarmonyOS ArkUI 组件与自定义组件零基础:从搭页面到组件化开发
华为·harmonyos
致远ccc5 天前
Google Play 上架前如何测试 App?多国家 Android 环境测试
android·app测试·googleplay·多国家应用测试
AI职业加油站5 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
此冬歌咏5 天前
K8s 节点故障实战:优雅驱逐 31 秒,硬故障 331 秒,以及那个永远 Pending 的 Pod
运维·k8s
ttyyttemo5 天前
Kotlin 协程中的 Job 结构化并发与取消
android
sun0077005 天前
tbox 4g/5g切换,导致wan ip 改变,导致车机旧网络不可用。需要重启车机才行
android