HarmonyOS鸿蒙Next工程har的打包与引用示例demo

HarmonyOS鸿蒙Next工程har的打包与引用示例demo HarmonyOS工程har的打包与引用示例demo

3 回复
  1. 在项目下,新建module;
  2. build-profile.json5中添加buildOptionSet开启代码混淆
"buildOptionSet": [
  {
    "name": "release",
    "arkOptions": {
      "obfuscation": {
        "ruleOptions": { "enable": true, },
      }
    }
  },
]
  1. 添加方法add: 需要在har外部调用的ArkUI组件、TS类、方法,使用 export 修饰(不要添加default)。 方法可以作为类的成员导出,也可以单独导出。Module根目录下的index.ets是HAR导出声明文件的入口,HAR需要导出的接口,统一在index.ets文件中导出。

注意事项: 3.1 HAR不支持在配置文件中声明abilities、extensionAbilities组件。 3.2 HAR不支持在配置文件中声明pages页面。 3.3 HAR不支持在build-profile.json5文件的buildOption中配置worker。 3.4 Stage模型的HAR,不能引用AppScope内的内容。在编译构建时APPScope中的内容不会打包到HAR中,导致HAR资源引用失败。

4 引用har把har放到想要使用的工程的任意目录下; 5 引入该包; 6 在代码中使用

import {Add} from "@ohos/add"

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';
  @State a:Number=1
  build() {
    Row() {
      Column() {
        Text(this.a.toString())
          .fontSize(50).fontWeight(FontWeight.Bold)
          .onClick(() =>{
            const b = new Add() //引用har的TS类 this.a = b.add(1, 3)
          })}
      .width('100%')
    }
    .height('100%')
  }
}

具体参考文档: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/har-package-V5

更多关于HarmonyOS鸿蒙Next工程har的打包与引用示例demo的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS鸿蒙Next工程中的.har文件是一种静态共享库,用于模块化开发和代码复用。以下是一个简单的.har文件打包与引用示例:

  1. 创建.har模块

    • 在DevEco Studio中新建一个Library类型的模块,命名为MyLibrary
    • MyLibrary模块中编写功能代码,例如在src/main/ets目录下创建一个Utils.ets文件,定义一些工具函数。
  2. 打包.har文件

    • MyLibrary模块的build.gradle文件中,确保artifactType设置为har
    • 在终端中运行gradlew MyLibrary:build命令,生成的.har文件位于MyLibrary/build/outputs/har目录下。
  3. 引用.har文件

    • 在需要引用.har文件的项目中,将生成的.har文件放置在项目的libs目录下。
    • build.gradle文件中添加依赖:
      dependencies {
          implementation fileTree(dir: 'libs', include: ['*.har'])
      }
      
    • 在代码中通过import语句引用.har文件中的功能,例如:
      import { Utils } from 'MyLibrary'
      
  4. 示例代码

    • MyLibrary/src/main/ets/Utils.ets:
      export function add(a: number, b: number): number {
          return a + b;
      }
      
    • 引用.har文件的主模块代码:
      import { add } from 'MyLibrary';
      
      let result = add(1, 2);
      console.log(result); // 输出:3
      

通过以上步骤,你可以成功打包和引用.har文件,实现代码的模块化和复用。

在HarmonyOS鸿蒙Next中,har(Harmony Archive)是用于模块化开发的打包格式。以下是一个简单的har打包与引用示例:

  1. 创建har模块:

    • entry目录下创建library模块。
    • build.gradle中添加apply plugin: 'com.huawei.ohos.library'
    • 编写代码并构建,生成har文件。
  2. 引用har模块:

    • entrybuild.gradle中添加依赖:
      dependencies {
          implementation fileTree(dir: 'libs', include: ['*.har'])
      }
      
    • 将生成的har文件放入libs目录。
    • 在代码中直接引用har模块中的类或方法。

通过以上步骤,即可实现har的打包与引用。

回到顶部