鸿蒙动态共享包HSP

鸿蒙动态共享包HSP

参考文件

本文介绍一下如何编译动态共享包以及如何使用动态共享包。

动态共享包当然有很多好处了,譬如说给其他项目组用。其他的就不过多的说明了。以下是如何构建一个动态共享包。

动态共享包的两种状态

动态共享包有两种状态,感觉给公司内部使用的时候使用第一种应用内 hsp 比较好,还能避免被分享出去导致的一些问题。

  1. 应用内 hsp:在编译过程中与应用包名(bundleName)强耦合,只能给某个特定的应用使用,本页面介绍应用内 HSP。
  2. 集成态 hsp:构建、发布过程中,不与特定的应用包名耦合;使用时,工具链支持自动将集成态 HSP 的包名替换成宿主应用包名,并且会重新签名生成一个新的 HSP 包,作为宿主应用的安装包,这个新的 HSP 也属于宿主应用 HAP 的应用内 HSP。

大概的步骤

  1. 新建一个项目/或者使用已有项目;
  2. 通过文件->新建->模块->动态共享包->输入名称 cc;
  3. 同之前的项目,譬如说 entry 同目录下会有一个新的加粗的项目;
  4. coding...
  5. 打包,把编译模式(build mode)切换成 release 模式;
  6. 项目窗口选中文件夹 cc,菜单栏->构建->构建动态共享包 cc;
  7. 在 cc 文件夹下会生成 ./cc/build/default/outputs/default/cc-default.tgz
  8. 使用 ohpm 安装 cc 库;
  9. 在项目中使用 cc 库;

这里边基本上没有什么需要特殊注意的地方。不过强行解释一下最后两步吧。

注意

包安装方式

ohpm 安装动态共享包,最好使用 dev eco 编译器的终端进行安装,避免安装失败。

bash 复制代码
ohpm install ./cc/build/default/outputs/default/cc-default.tgz

或者修改项目 oh-package.json5 中的依赖并同步文件,不过最好用 ohpm 安装;

json 复制代码
  "dependencies": {
    "wisetv": "file:../cc-default.tgz"
  },

项目中使用

在项目中使用 cc 库。

javascript 复制代码
import { add } from 'cc'
add(1, 1) // => 2

集成态 hsp

如果是集成态的,创建方和集成方都需要配置工程级别的 build-profile.json5, 将 useNormalizedOHMUrl 字段设置为 true。

json 复制代码
"app": {
    "products": [
      {
        "name": "default",
        "signingConfig": "default",
        "compatibleSdkVersion": "5.0.3(15)",
        "runtimeOS": "HarmonyOS",
        "buildOption": {
          "strictMode": {
            "useNormalizedOHMUrl": true
          }
        }
        // ...
      }
    ]
    // ...
  }

创建方还需要修改模块级别的 build-profile.json5,将 integratedHsp 配置项设置为 true,配置如下:

json 复制代码
{
  "apiType": "stageMode",
  "buildOption": {
    "arkOptions": {
      "integratedHsp": true
    }
  }
}
相关推荐
患得患失9492 分钟前
【前端WebSocket】心跳功能,心跳重置策略、双向确认(Ping-Pong) 以及 指数退避算法(Exponential Backoff)
前端·websocket·算法
英俊潇洒美少年4 分钟前
React 实现 AI 流式打字机对话:SSE 分包粘包处理 + 并发优化
前端·javascript·react.js
chQHk57BN7 分钟前
前端测试入门:Jest、Cypress等测试框架使用教程
前端
遇见你...16 分钟前
前端技术知识点
前端
2301_8227032021 分钟前
Flutter 框架跨平台鸿蒙开发 - 智能植物生长记录应用
算法·flutter·华为·harmonyos·鸿蒙
AC赳赳老秦27 分钟前
OpenClaw image-processing技能实操:批量抠图、图片尺寸调整,适配办公需求
开发语言·前端·人工智能·python·深度学习·机器学习·openclaw
We་ct34 分钟前
LeetCode 172. 阶乘后的零:从暴力到最优,拆解解题核心
开发语言·前端·javascript·算法·leetcode·typescript
军军君0134 分钟前
数字孪生监控大屏实战模板:可视化数字统计展示
前端·javascript·vue.js·typescript·echarts·数字孪生·前端大屏
世人万千丶39 分钟前
开源鸿蒙跨平台Flutter开发:成语接龙游戏应用
学习·flutter·游戏·华为·开源·harmonyos·鸿蒙
此刻觐神42 分钟前
IMX6ULL开发板学习-03(Linux文件相关命令)
前端·chrome