HarmonyOS鸿蒙Next中集成态hsp支持并行开发使用方法

HarmonyOS鸿蒙Next中集成态hsp支持并行开发使用方法

对于ToB企业,很多情况下并不会进行源码集成,而是使用产物集成,针对该场景,可以采用HSP方式和APP/HAP进行异步构建、异步集成的方案。

  1. 打包集成态hsp。

    • a. 将工程级build-profile.json5的useNormalizedOHMUrl字段设置为true。

      "app": {
        "products": [
          {
            "name": "default",
            "signingConfig": "default",
            "compatibleSdkVersion": "5.0.0(12)",
            "runtimeOS": "HarmonyOS",
            "buildOption": {
              "strictMode": {
                "caseSensitiveCheck": true,
                "useNormalizedOHMUrl": true
              }
            }
          }
        ],
      }
      
    • b. 将hsp模块级build-profile.json5的integratedHsp字段设置为true。

      "buildOption": {
        "arkOptions": { 
          "integratedHsp": true
        }
      }
      
    • c. 将编译模式切换为release后,选中hsp模块的根目录,点击Build > Make Module ${libraryName}启动构建,build目录下生成har包和tgz包。

    • (1)har是该模块的接口类。

    • (2)hsp-default-unsigned.hsp是该模块的实现类。

    • (3)tgz中包含hsp.har和hsp-default-unsigned.hsp。

  2. 使用hsp的接口类har。

    • a. 在需要使用hsp的工程中,将工程级build-profile.json5的useNormalizedOHMUrl字段配置为true。
    • b. 先引入hsp.har包到工程中,使用import { xxx } from "hsp"的方法引用对应的接口并使用。

    该场景下编译可以通过,但是由于没有对应的实现所以无法运行调试。

  3. 使用hsp的tgz包。 当并行开发到一定阶段可以拿到伙伴提供的tgz包,将之前依赖的hsp.har替换为hsp.tgz后即可使用hap模块的全部功能。

注意:hsp需要对外暴露的接口都需要在hsp中进行封装,否则使用hsp.har接口类的时候编译会报错。


更多关于HarmonyOS鸿蒙Next中集成态hsp支持并行开发使用方法的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

在HarmonyOS Next中,HSP(Harmony Shared Package)支持并行开发,具体方法如下:

  1. 创建HSP模块:使用DevEco Studio新建HSP模块工程,配置build-profile.json中的"hsp"标签为true。

  2. 导出API:在oh-package.json5中声明provides字段,指定可共享的API。

  3. 依赖管理:主工程在oh-package.json5中添加dependencies,引用HSP模块路径。

  4. 并行编译:各HSP模块可独立编译,主工程通过动态依赖获取最新HSP功能。

  5. 调试运行:DevEco Studio支持HSP热更新,修改HSP代码后无需重新安装主应用。

注意:HSP需遵循ohos包管理规范,API接口需保持稳定。

更多关于HarmonyOS鸿蒙Next中集成态hsp支持并行开发使用方法的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS Next中,集成态HSP确实为ToB企业的并行开发提供了很好的解决方案。您提到的配置步骤非常完整,这里补充几点关键注意事项:

  1. 关于useNormalizedOHMUrl配置:
  • 这个配置必须同时在HSP提供方和使用方工程中设置为true,确保模块路径解析一致
  • 建议在工程初期就进行配置,避免后期修改导致路径问题
  1. HSP接口设计建议:
  • 所有需要暴露的接口必须在index.d.ts中明确定义
  • 建议使用TypeScript开发,可以获得更好的类型提示
  • 接口应尽量保持稳定,避免频繁变更
  1. 调试阶段替代方案:
  • 在等待伙伴提供tgz包期间,可以先用mock实现临时替代
  • 建议建立版本对应关系表,避免接口版本不匹配
  1. 性能优化:
  • 大型HSP建议按功能拆分多个HSP
  • 频繁调用的接口应考虑使用共享内存通信

这种集成方式确实能显著提升企业间协作效率,特别是在保护核心代码的同时实现功能集成。

回到顶部