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》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/440066.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自动化测试系列 —— UI自动化测试!

UI 测试是一种测试类型,也称为用户界面测试,通过该测试,我们检查应用程序的界面是否工作正常或是否存在任何妨碍用户行为且不符合书面规格的 BUG。了解用户将如何在用户和网站之间进行交互以执行 UI 测试至关重要,通过执行 UI 测试…

win11安装Telnet功能

win11上很多设置都可以直接搜索了,菜单功能也总是换位置,记录一下。 搜索可选功能 选择可选功能 或者 添加可选功能到最地下选更多Windows功能 选择Telnet客户端即可

企业局域网传输文件最快的方式有哪些?

在当今企业运营的背景下,文件的传递和交换,无论是在公司内部网络还是跨越不同网络环境,都是日常业务运作的关键环节。这种文件交换对于团队协作以及与外部合作伙伴的数据共享至关重要,而一个高效且安全的文件传输系统则是提高工作…

QT使用QFileSystemModel实现的文件资源管理器(开源)

文章目录 效果图现实的功能总体框架功能介绍视图双击进入处理复制与剪切粘贴重命名,新建显示文件详细信息文件路径导航栏 总结 效果图 现实的功能 支持文件/文件夹复制,粘贴,剪切,删除,重命名的基本操作支持打开图片&…

git远程仓库基本操作

目录 gitremote (查看远程仓库) git remote add [仓库名] [url] git clone [url](克隆远程仓库到本地) git push [名][分支名](提交到远程仓库)​编辑 git pull [名][分支名]从远程仓库拉取​编辑 注意操作…

图形绘制-仪表盘(3)

本章节我们介绍如何绘制仪表盘内的车速、单位(Km/h)、标题等信息。 效果如下: 关于通过继承重写QWidget的绘制事件paintEvent(),来绘制仪表盘的基础操作,请看 《图形绘制-仪表盘(1)-CSDN博客》…

鸿蒙南向开发——GN快速入门指南

运行GN(Generate Ninja) 运行gn,你只需从命令行运行gn,对于大型项目,GN是与源码一起的。 对于Chromium和基于Chromium的项目,有一个在depot_tools中的脚本,它需要加入到你的PATH环境变量中。该脚本将在包含当前目录的…

2024年【陕西省安全员B证】最新解析及陕西省安全员B证证考试

题库来源:安全生产模拟考试一点通公众号小程序 陕西省安全员B证最新解析参考答案及陕西省安全员B证考试试题解析是安全生产模拟考试一点通题库老师及陕西省安全员B证操作证已考过的学员汇总,相对有效帮助陕西省安全员B证证考试学员顺利通过考试。 1、【…

深度学习与神经网络pytorch版 2.3 线性代数

深度学习与神经网络pytorch版 2.3 线性代数 1. 简介 深度学习与线性代数之间有着密切的联系。线性代数是深度学习算法中用于表达和处理数据的数学工具之一,尤其是在构建神经网络和处理多维数据时。 线性代数中的基本概念包括向量、矩阵和线性变换等,这…

Vulnhub靶机:niveK

一、介绍 运行环境:Virtualbox 攻击机:kali(10.0.2.15) 靶机:niveK(10.0.2.41) 目标:获取靶机root权限和flag 靶机下载地址:https://download.vulnhub.com/hms/nive…

ETL怎么实现文件处理

在现代企业及各类组织的日常运作中,数据作为一种关键的信息资源,其管理和分析能力直接影响到决策效率与准确性。文件作为数据的主要载体,承载着从运营报告、客户记录、交易明细等各种类型的数据信息。这些海量且多样的文件数据在未经处理的情…

c# textbox 提示文字

1. 定义提示文字内容 private readonly string RemarkText "最多输入100字"; // 提示文字 2. 添加textbox 焦点事件, 初始化textbox提示文字和字体颜色 public UserControl(){InitializeComponent();tb_Remark.Text RemarkText;tb_Remark.ForeColor…