HAR(Harmony Archive)是静态共享包,可以包含代码、C++库、资源和配置文件。通过HAR可以实现多个模块或多个工程共享ArkUI组件、资源等相关代码。HAR不同于HAP,不能独立安装运行在设备上,只能作为应用模块的依赖项被引用。
接下来,将简单介绍库模块的工程结构,如下图所示:
相关字段的描述如下,其余字段与Entry或Feature模块相关字段相同
本文将介绍如何创建库模块、如何编译共享包、如何引用共享包资源,以及如何发布共享包。
1.鼠标移到工程目录顶部,单击右键,选择New > Module,在工程中添加模块。
2.在Choose Your Ability Template界面中,选择Static Library,并单击Next。
3.在Configure New Module界面中,设置新添加的模块信息,设置完成后,单击Finish完成创建。
开发完库模块后,选中模块名,然后通过DevEco Studio菜单栏的Build > Make Module ${libraryName}进行编译构建,生成HAR。HAR可用于工程其它模块的引用,或将HAR上传至ohpm仓库,供其他开发者下载使用。
编译构建的HAR可在模块下的build目录下获取,包格式为*.har。
在编译构建HAR时,请注意以下事项:
发布打包的HAR,可供其他开发者安装和引用。接下来将介绍如何发布共享包。
1.在库模块中(与src文件夹同一级目录下),添加如下文件:新建README.md文件:在README.md文件中必须包含包的介绍和引用方式,还可以根据包的内容添加更详细介绍。新建CHANGELOG.md文件:填写HAR的版本更新记录。添加LICENSE文件:LICENSE许可文件。
2.重新编译库模块,生成*.har文件。
3.利用工具ssh-keygen生成公、私钥,可执行以下命令:
ssh-keygen -m PEM -t RSA -b 4096 -f your_key_path
NOTE
OHPM包管理器只支持加密密钥认证,请在生成公私钥时输入密码。
4.登录OpenHarmony三方库中心仓官网,单击主页右上角的个人中心,新增OHPM公钥,将公钥文件(your_publicKey.pub)的内容粘贴到公钥输入框中。
5.打开命令行工具,执行如下命令设置私钥路径。
ohpm config set key_path your_key_path
6.登录OpenHarmony三方库中心仓,单击主页右上角的个人中心,复制发布码,获取发布码并配置到 .ohpmrc 文件中,可执行如下命令:
ohpm config set publish_id your_publish_id
7.执行如下命令发布HAR,<HAR路径>需指定为.har文件的具体路径。
ohpm publish
引用三方HAR,包括从仓库进行安装、从本地文件夹和本地压缩包中进行安装三种方式。
ohpm config set registry your_registry1,your_registry2
说明:ohpm支持多个仓库地址,采用英文逗号分隔。
然后通过如下两种方式设置三方包依赖信息:
ohpm install @ohos/lottie
"dependencies": {
"@ohos/lottie": "^2.0.0"
}
依赖设置完成后,需要执行ohpm install命令安装依赖包,依赖包会存储在工程的oh_modules目录下。
ohpm install
引用本地文件夹,有如下两种方式:
ohpm install ../folder
方式二:在工程的oh-package.json5中设置三方包依赖,配置示例如下:
"dependencies": {
"folder": "file:../folder"
}
依赖设置完成后,需要执行ohpm install命令安装依赖包,依赖包会存储在工程的oh_modules目录下。
ohpm install
引用本地HAR包,有如下两种方式:
ohpm install ./package.har
方式二:在工程的oh-package.json5中设置三方包依赖,配置示例如下:
"dependencies": {
"package": "file:./package.har"
}
依赖设置完成后,需要执行ohpm install命令安装依赖包,依赖包会存储在工程的oh_modules目录下。
ohpm install
另外,在安装或卸载共享包时,可在工程的oh-package.json5文件中增加钩子设置,以管理install、uninstall命令的生命周期,配置示例如下:
"hooks": {
"preInstall": "echo 00 preInstall", // install命令执行之前
"postInstall": "echo 00 postInstall", // install命令执行之后
"preUninstall": "echo 00 preUninstall", // uninstall命令执行之前
"postUninstall": "echo 00 postUninstall" // uninstall命令执行之后
}
注意:目前只支持执行当前工程的oh-package.json5文件中hooks,不支持执行依赖中hooks。
在引用共享包时,请注意以下事项:
当前只支持在模块和工程下的oh-package.json5文件中声明dependencies依赖,才会被当做依赖使用,并在编译构建过程中进行相应的处理。
要想成为一名合格的鸿蒙高级开发工程师,以上知识点是必须要掌握的,除此之外,还需要掌握一些鸿蒙应用开发相关的一些技术
为了节省大家一些查找的时间,这边联合几位行业大佬,为大家准备了一份《鸿蒙全栈技术 实战项目驱动式教学》的学习导图,从入门到进阶再到南北向开发实战的一整套完整体系,想要学习了解更多鸿蒙开发的相关知识可以借鉴:《鸿蒙HarmonyOS分布式项目实战》
除了上面整理的思维导图以外,这里还特别整理的一份《鸿蒙 (Harmony OS)开发学习手册》给大家进行参考学习:
一、入门必看
1.应用开发导读(ArkTS)
2.……
二、HarmonyOS 概念
1.系统定义
2.技术架构
3.技术特性
4.系统安全
5…
三、如何快速入门?《鸿蒙4.0源码开发架构分析pdf》
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》