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

相关推荐
九河云42 分钟前
AWS账号注册费用详解:新用户是否需要付费?
服务器·云计算·aws
Lary_Rock1 小时前
RK3576 LINUX RKNN SDK 测试
linux·运维·服务器
幺零九零零2 小时前
【计算机网络】TCP协议面试常考(一)
服务器·tcp/ip·计算机网络
云飞云共享云桌面3 小时前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络
SoraLuna4 小时前
「Mac畅玩鸿蒙与硬件28」UI互动应用篇5 - 滑动选择器实现
macos·ui·harmonyos
一坨阿亮4 小时前
Linux 使用中的问题
linux·运维
ClkLog-开源埋点用户分析5 小时前
ClkLog企业版(CDP)预售开启,更有鸿蒙SDK前来助力
华为·开源·开源软件·harmonyos
mg6685 小时前
鸿蒙系统的优势 开发 环境搭建 开发小示例
华为·harmonyos
模拟IC攻城狮6 小时前
华为海思招聘-芯片与器件设计工程师-模拟芯片方向- 机试题-真题套题题目——共8套(每套四十题)
嵌入式硬件·华为·硬件架构·芯片
lqj_本人6 小时前
鸿蒙next选择 Flutter 开发跨平台应用的原因
flutter·华为·harmonyos