HarmonyOS鸿蒙Next中集成态hsp支持并行开发使用方法
HarmonyOS鸿蒙Next中集成态hsp支持并行开发使用方法
对于ToB企业,很多情况下并不会进行源码集成,而是使用产物集成,针对该场景,可以采用HSP方式和APP/HAP进行异步构建、异步集成的方案。
-
打包集成态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。
-
-
使用hsp的接口类har。
- a. 在需要使用hsp的工程中,将工程级build-profile.json5的useNormalizedOHMUrl字段配置为true。
- b. 先引入hsp.har包到工程中,使用import { xxx } from "hsp"的方法引用对应的接口并使用。
该场景下编译可以通过,但是由于没有对应的实现所以无法运行调试。
-
使用hsp的tgz包。 当并行开发到一定阶段可以拿到伙伴提供的tgz包,将之前依赖的hsp.har替换为hsp.tgz后即可使用hap模块的全部功能。
注意:hsp需要对外暴露的接口都需要在hsp中进行封装,否则使用hsp.har接口类的时候编译会报错。
更多关于HarmonyOS鸿蒙Next中集成态hsp支持并行开发使用方法的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS Next中,集成态HSP确实为ToB企业的并行开发提供了很好的解决方案。您提到的配置步骤非常完整,这里补充几点关键注意事项:
- 关于
useNormalizedOHMUrl
配置:
- 这个配置必须同时在HSP提供方和使用方工程中设置为true,确保模块路径解析一致
- 建议在工程初期就进行配置,避免后期修改导致路径问题
- HSP接口设计建议:
- 所有需要暴露的接口必须在
index.d.ts
中明确定义 - 建议使用TypeScript开发,可以获得更好的类型提示
- 接口应尽量保持稳定,避免频繁变更
- 调试阶段替代方案:
- 在等待伙伴提供tgz包期间,可以先用mock实现临时替代
- 建议建立版本对应关系表,避免接口版本不匹配
- 性能优化:
- 大型HSP建议按功能拆分多个HSP
- 频繁调用的接口应考虑使用共享内存通信
这种集成方式确实能显著提升企业间协作效率,特别是在保护核心代码的同时实现功能集成。