鸿蒙 Stage Arkts HSP+HAR 的集成

一、场景说明

  • P 提供 interface/abstract class 定义 A
  • B1/B2/B3 实现 A 的定义,并提供产物
  • P 集成 B1/B2/B3 根据需要加载对应的实现,统一接口,代码逻辑统一

二、目标

  • B* 产物不用携带 A,避免代码重复、冲突
  • P 可以在不改变定义(或不影响B*继承/编译)的情况下,可以随意修改,最终效果以 P 最终运行时集成的 A+ 为准

三、原 Android 实现

  1. P 提供 aar/jar A
  2. B* compileOnly 依赖 A,产物 aar/jar
  3. P 同时 implement A + B*

四、鸿蒙实现方法

  1. P 新建 Hsp module,编译产出 A (hsp + tgz)
  2. B* devDependencies 依赖 A(tgz),产出 har
  3. P 使用方的 hap(Entry)dependencies 直接依赖 A(tgz) + B*(har)
json 复制代码
{
  "name": "***",
  "version": "1.0.0",
  "dependencies": {
    '@testgroup1/hsp_package': 'file:.. tgz 路径/module路径/版本号',
    "@testgroup2/har_package": "file:.. har 路径/版本号",
  }
}
  1. P Entry 配置 hsp 动态加载
json 复制代码
{
  "apiType": "stageMode",
  "buildOptionSet": [
    {
      "name": "release",
      "arkOptions": {
        // 新增这里
        "runtimeOnly": {
          "packages": [
            "@testgroup1/hsp_package",
            "@testgroup2/har_package",
          ]
        }
      }
    },
  ]
}
  1. 运行即可成功

五、提供产物测试

  • 在没有 hsp 时,直接提供 har 包,测试人员即可 hdc install *.hap 成功

  • 存在 hsp 时,直接 hdc install *.hap 报错

    Failed to install the HAP or HSP because the dependent module does not exist. entry's dependent module: * does not exist

  • 解决办法:

    1. DevEcoStudio 运行可以成功,查看他在运行时的命令
    2. 那我们只要照着做,用同样的命令,即可成功安装运行
    3. 也可以写一个 bat/shell 脚本,可以更快捷方便

六、发布

没有任何变化,APP 包中会包含 hap+hsp 包同时上传到 AGC 服务器。


有任何问题评论 or 留言交流

相关推荐
ONEDAY18 小时前
HarmonyOS 多 Product 构建实践:一套代码生成多个产物
harmonyos
TT_Close21 小时前
别劝退了!5秒搞定 Flutter 鸿蒙 FVM 起跑线
flutter·harmonyos·visual studio code
TrisighT1 天前
ArkTS 列表滚动时为什么会闪现旧数据?我扒了 LazyForEach 的复用逻辑
harmonyos·arkts·arkui
MonkeyKing1 天前
鸿蒙ArkTS深度剖析:ArkTS与TS/JS核心差异、静态强类型实战优势
typescript·harmonyos
TrisighT1 天前
Electron鸿蒙PC上写日志文件,我被权限和路径坑了两次
electron·harmonyos
TrisighT2 天前
一个下午搞定 ArkTS 折叠面板?结果我从两点写到晚上九点
harmonyos·arkts·arkui
花椒技术5 天前
HJPusher / HJPlayer SDK 实践:我们为什么把直播推播链路拆成一套可复用能力
设计模式·harmonyos·直播
一维Ace5 天前
HarmonyOS ArkTS 按钮组件全解:Button、Toggle 状态交互实战
harmonyos
anyup6 天前
来简单聊聊鸿蒙开发,万元奖金的事~
前端·华为·harmonyos
Georgewu6 天前
【无测试机别害怕】华为云鸿蒙云手机南:从零到联调全流程详解
harmonyos