HarmonyOS工程har的打包与引用

2023-11-10 06:50

本文主要是介绍HarmonyOS工程har的打包与引用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

打包har

!工程为Stage模型

在工程中创建HAR模块,New Module选择Static Library

在该Module的build-profile.json5中添加"artifactType": "obfuscation"开启代码混淆

 

 在该模块中编写业务代码

……

需要在har外部调用的ArkUI组件、TS类、方法,使用 export 修饰(不要添加default)。

方法可以作为类的成员导出,也可以单独导出。

Module根目录下的index.ets是HAR导出声明文件的入口,HAR需要导出的接口,统一在index.ets文件中导出。

注意事项

1.HAR不支持在配置文件中声明abilities、extensionAbilities组件。

2.HAR不支持在配置文件中声明pages页面。

3.HAR不支持在build-profile.json5文件的buildOption中配置worker。

4.FA模型与Stage模型的HAR不支持相互引用。

5.Stage模型的HAR,不能引用AppScope内的内容。在编译构建时APPScope中的内容不会打包到HAR中,导致HAR资源引用失败。

构建

编写完成后再工具栏中选择Build->Make Module ‘Module名称’(比如我的Module是vpn)

 

 构建完成后在build目录下就可以获取到har包

引用har

把har放到想要使用的工程的任意目录下,习惯放在Module的libs目录

然后在Module的oh-package.json5文件中引用该har

"@ohos/vpn": 'file:./libs/vpn.har'

同样是key-value的形式,key建议使用@ohos/开头,后面名称自定义,value为file:后面跟上har的路径

修改完成点击Sync Now,依赖包会存储在工程的oh_modules目录下

注意:覆盖修改har之后需要删除oh_module目录重新生成,否则可能不更新

在代码中使用该har

import { Add } from '@ohos/vpn'
import { func2 } from '@ohos/vpn'
import { MainPage } from '@ohos/vpn'import promptAction from '@ohos.promptAction'@Entry
@Component
struct Index {@State message: string = 'Hello World'build() {Row() {MainPage()//引用har的ArkUI组件Column() {Text(this.message).fontSize(50).fontWeight(FontWeight.Bold).onClick(() => {const a = new Add()//引用har的TS类const b = a.add(1, 3)const c = func2()  //引用har的方法promptAction.showToast({ message: c + '' })})}.width('100%')}.height('100%')}
}

这篇关于HarmonyOS工程har的打包与引用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/381035

相关文章

Python程序打包exe,单文件和多文件方式

《Python程序打包exe,单文件和多文件方式》:本文主要介绍Python程序打包exe,单文件和多文件方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python 脚本打成exe文件安装Pyinstaller准备一个ico图标打包方式一(适用于文件较少的程

Maven项目打包时添加本地Jar包的操作步骤

《Maven项目打包时添加本地Jar包的操作步骤》在Maven项目开发中,我们经常会遇到需要引入本地Jar包的场景,比如使用未发布到中央仓库的第三方库或者处理版本冲突的依赖项,本文将详细介绍如何通过M... 目录一、适用场景说明​二、核心操作命令​1. 命令格式解析​2. 实战案例演示​三、项目配置步骤​1

Spring Boot项目打包和运行的操作方法

《SpringBoot项目打包和运行的操作方法》SpringBoot应用内嵌了Web服务器,所以基于SpringBoot开发的web应用也可以独立运行,无须部署到其他Web服务器中,下面以打包dem... 目录一、打包为JAR包并运行1.打包为可执行的 JAR 包2.运行 JAR 包二、打包为WAR包并运行

Java资源管理和引用体系的使用详解

《Java资源管理和引用体系的使用详解》:本文主要介绍Java资源管理和引用体系的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、Java的引用体系1、强引用 (Strong Reference)2、软引用 (Soft Reference)3、弱引用 (W

MyBatisX逆向工程的实现示例

《MyBatisX逆向工程的实现示例》本文主要介绍了MyBatisX逆向工程的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录逆向工程准备好数据库、表安装MyBATisX插件项目连接数据库引入依赖pom.XML生成实体类、

Python将字库文件打包成可执行文件的常见方法

《Python将字库文件打包成可执行文件的常见方法》在Python打包时,如果你想将字库文件一起打包成一个可执行文件,有几种常见的方法,具体取决于你使用的打包工具,下面就跟随小编一起了解下具体的实现方... 目录使用 PyInstaller基本方法 - 使用 --add-data 参数使用 spec 文件(

Spring 中的循环引用问题解决方法

《Spring中的循环引用问题解决方法》:本文主要介绍Spring中的循环引用问题解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录什么是循环引用?循环依赖三级缓存解决循环依赖二级缓存三级缓存本章来聊聊Spring 中的循环引用问题该如何解决。这里聊

将Java程序打包成EXE文件的实现方式

《将Java程序打包成EXE文件的实现方式》:本文主要介绍将Java程序打包成EXE文件的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录如何将Java程序编程打包成EXE文件1.准备Java程序2.生成JAR包3.选择并安装打包工具4.配置Launch4

PyInstaller打包selenium-wire过程中常见问题和解决指南

《PyInstaller打包selenium-wire过程中常见问题和解决指南》常用的打包工具PyInstaller能将Python项目打包成单个可执行文件,但也会因为兼容性问题和路径管理而出现各种运... 目录前言1. 背景2. 可能遇到的问题概述3. PyInstaller 打包步骤及参数配置4. 依赖

鸿蒙中@State的原理使用详解(HarmonyOS 5)

《鸿蒙中@State的原理使用详解(HarmonyOS5)》@State是HarmonyOSArkTS框架中用于管理组件状态的核心装饰器,其核心作用是实现数据驱动UI的响应式编程模式,本文给大家介绍... 目录一、@State在鸿蒙中是做什么的?二、@Spythontate的基本原理1. 依赖关系的收集2.