当前位置: 首页 > news >正文

环境配置、如何安装OpenHarmony HAR

OpenHarmony HAR

OpenHarmony js/ts三方库使用的是OpenHarmony静态共享包,即HAR(Harmony Archive),可以包含js/ts代码、c++库、资源和配置文件。通过HAR,可以实现多个模块或者多个工程共享ArkUI组件、资源等相关代码。HAR不同于HAP,不能独立安装运行在设备上,只能作为应用模块的依赖项被引用。

如何安装OpenHarmony HAR

引用三方HAR,包括从仓库进行安装和从本地库模块中进行安装两种方式。

引用仓库安装的HAR:

引用ohpm仓中的HAR,首先需要设置三方HAR的仓库信息,DevEco Studio默认仓库地址是ohpm,如果您想设置自定义仓库,请在DevEco Studio的Terminal窗口执行如下命令进行设置(执行命令前,请确保将DevEco Studio中ohpm安装地址配置在“环境变量-系统变量-PATH”中):

ohpm config set registry=your_registry1,your_registry2

说明:ohpm支持多个仓库地址,采用英文逗号分隔。 然后通过如下两种方式设置三方包依赖信息:

  • 方式一:在Terminal窗口中,执行如下命令安装三方包,DevEco
    Studio会自动在工程的oh-package.json5中自动添加三方包依赖。
ohpm install @ohos/lottie
  • 方式二:在工程的oh-package.json5中设置三方包依赖,配置示例如下:
"dependencies": { "@ohos/lottie": "^2.0.0"}

依赖设置完成后,需要执行ohpm install命令安装依赖包,依赖包会存储在工程的oh_modules目录下。

ohpm install

引用本地库模块的文件和资源:

  • 方式一:在Terminal窗口中,执行如下命令进行安装,并会在oh-package5.json中自动添加依赖。
ohpm install ../library
  • 方式二:在工程的oh-package.json5中设置三方包依赖,配置示例如下:
"dependencies": {"@ohos/library": "file:../library"
}

依赖设置完成后,需要执行ohpm install命令安装依赖包,依赖包会存储在工程的oh_modules目录下。

ohpm install

在引用OpenHarmony HAR时,请注意以下事项:

  • 当前只支持在模块和工程下的oh-package.json5文件中声明dependencies依赖,才会被当做OpenHarmony依赖使用,并在编译构建过程中进行相应的处理。
  • 引用的模块的compileSdkVersion不能低于其依赖的OpenHarmony
    ohpm三方包(可在oh_modules目录下,找到引用的ohpm包的src > main > module.json5 中查看)。

引用OpenHarmony HAR hml页面

在JS工程范式中,组件功能由hml承载,开发者可以在JS工程的hml页面通过标签来引入OpenHarmony HAR中的共享hml页面,示例如下:

<element name="comp" src="@ohos/library/src/main/js/components/index/index.hml"></element>

其中,@ohos/library为OpenHarmony HAR的包名,hml页面的路径为OpenHarmony HAR中的相对路径。随后便可以通过设置的name来使用该element元素,以引用OpenHarmony HAR中的hml页面,示例如下:

<element name="comp" src="@ohos/library/src/main/js/components/index/index.hml"></element>
<div class="container"><comp></comp><text class="title">{{ $t('strings.hello') }} {{ title }}</text>
</div>

引用OpenHarmony HAR ArkTS页面

ArkTS是TypeScript的扩展,因此导出和引入的语法与TypeScript一致。在OpenHarmony ohpm模块中,可以通过export导出ArkTS页面,示例如下:

// library/src/main/ets/components/MainPage/MainPage.ets
@Entry
@Component
export struct MainPage {@State message: string = 'Hello World'build() { Row() { Column() { Text(this.message).fontSize(50).fontWeight(FontWeight.Bold)} .width('100%') } .height('100%') }
}

然后在其它模块中通过import引入导出的ArkTS页面,示例如下所示:

// entry/MainAbility/pages/index.ets
import { MainPage } from "@ohos/library"
@Entry
@Component
struct Index {@State message: string = 'Hello World' build() { Column() { MainPage() Row() { Text(this.message).fontSize(50).fontWeight(FontWeight.Bold)}.width('100%')} .height('10%') }
}

引用OpenHarmony HAR内ts/js方法ts/js方法的导出和引用,与ArkTS页面的引用相同,即在OpenHarmony ohpm模块中,可以通过export导出ts/js方法,示例如下所示:

// library/index.js
export function func() {return "[ohpm] func1";
}

然后在其它的ts/js页面中,通过import引入导出的ts/js方法,示例如下所示:

// entry/src/main/js/MainAbility/pages/index/index.js
import {func} from "@ohos/library"
export default {data: {title: ""},onInit() {this.title = func();}
}

引用OpenHarmony HAR内资源支持在OpenHarmony ohpm模块和依赖OpenHarmony ohpm的模块中引用OpenHarmony ohpm模块内的资源。例如在OpenHarmony ohpm模块的scr/main/resources里添加字符串资源(在string.json中定义,name:hello_ohpm)和图片资源(icon_ohpm.png)。然后在Entry模块中引用该字符串资源和图片资源的示例如下: 当前暂不支持类Web范式引用i18n文件中的国际化资源。

// entry/src/main/ets/MainAbility/pages/index.ets
@Entry
@Component
struct Index {@State message: string = 'Hello World'build() {Column() {Row() {Text($r("app.string.hello_ohpm")) // 字符串资源.fontSize(40).fontWeight(FontWeight.Bold)}.width('50%')Image($r("app.media.icon_ohpm")) // 图片资源}.height('100%')}
}

在编译构建HAP中,DevEco Studio会从HAP模块及依赖的模块中收集资源文件,如果不同模块的相同限定词目录下的资源文件出现重名冲突时,DevEco Studio会按照以下优先级进行覆盖(优先级由高到低):

  • AppScope(仅API 9的Stage模型支持)
  • HAP包自身模块
  • 依赖的OpenHarmonyHarmony ohpm模块

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

为了能够让大家跟上互联网时代的技术迭代,在这里我特邀了几位行业大佬整理出一份最新版的鸿蒙学习提升资料,有需要的小伙伴自行领取,限时开源,先到先得~~~~

领取以下高清学习路线原图请点击→《鸿蒙基础入门学习指南》纯血鸿蒙HarmonyOS基础技能学习路线图
在这里插入图片描述
 

领取以上完整高清学习路线图,请点击→《鸿蒙全套学习指南》小编自己整理的部分学习资料(包含有高清视频、开发文档、电子书籍等)

在这里插入图片描述

以上分享的学习路线都适合哪些人跟着学习?

-应届生/计算机专业
通过学习鸿蒙新兴技术,入行互联网,未来高起点就业。
-0基础转行
提前布局新方向,抓住风口,自我提升,获得更多就业机会。
-技术提升/进阶跳槽
发展瓶颈期,提升职场竞争力,快速掌握鸿蒙技术,享受蓝海红利。

在这里插入图片描述

最后

鸿蒙开发学习是一个系统化的过程,从基础知识的学习到实战技能的锤炼,再到对前沿技术的探索,每一环节都至关重要。希望这份教程资料能帮助您快速入门并在鸿蒙开发之路上步步攀升,成就一番事业。让我们一起乘风破浪,拥抱鸿蒙生态的广阔未来!

如果你觉得这篇内容对你有帮助,我想麻烦大家动动小手给我:点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。

关注我,同时可以期待后续文章ing,不定期分享原创知识。

想要获取更多完整鸿蒙最新VIP学习资料,请点击→《鸿蒙 (Harmony OS)开发学习手册》

相关文章:

  • 一次电脑感染Synaptics Pointing Device Driver病毒的经历,分享下经验
  • Java 面试题
  • 前端 WebSocket 的一些使用
  • 【Spring底层原理高级进阶】Spring Kafka:实时数据流处理,让业务风起云涌!️
  • 实战解析:打造风控特征变量平台,赋能数据驱动决策
  • Python - getpass
  • 线上问题——学习记录幂等判断失效问题分析
  • Git快速入门
  • 回溯算法01-组合(Java)
  • 数据库分库分表中间件选择
  • 【扩散模型系列1】扩散模型背景|DDPMs|LDM
  • 【理解机器学习算法】之Nearest Shrunken Centroid(纯Python)
  • Redis面试题
  • C++模拟揭秘刘谦魔术,领略数学的魅力
  • Python 程序基本结构的使用
  • @angular/forms 源码解析之双向绑定
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • PHP 小技巧
  • uva 10370 Above Average
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • webpack+react项目初体验——记录我的webpack环境配置
  • 不上全站https的网站你们就等着被恶心死吧
  • 第2章 网络文档
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 前嗅ForeSpider教程:创建模板
  • 少走弯路,给Java 1~5 年程序员的建议
  • 微信开源mars源码分析1—上层samples分析
  • 学习使用ExpressJS 4.0中的新Router
  • Prometheus VS InfluxDB
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • 如何用纯 CSS 创作一个货车 loader
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • #include<初见C语言之指针(5)>
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (Git) gitignore基础使用
  • (python)数据结构---字典
  • (solr系列:一)使用tomcat部署solr服务
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (图)IntelliTrace Tools 跟踪云端程序
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (转)ORM
  • (转)scrum常见工具列表
  • (转)四层和七层负载均衡的区别
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .a文件和.so文件
  • .equals()到底是什么意思?
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .NetCore部署微服务(二)
  • .net用HTML开发怎么调试,如何使用ASP.NET MVC在调试中查看控制器生成的html?
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面