【HarmonyOS Next】 共享HSP和应用内HSP,useNormalizedOHMUrl详解 原创
头像 GeorgeGcs 2025-06-30 22:46:38    发布
2661 浏览 3 点赞 0 收藏

## 【HarmonyOS Next】共享HSP和应用内HSP,useNormalizedOHMUrl详解


## 一、useNormalizedOHMUrl是什么?

useNormalizedOHMUrl指的是是否使用标准化OHMUrl拼接。


在开发过程中,需要根据不同的环境或配置动态生成 URL。例如,在加载一些远程模块或者资源时,可能需要将基础 URL 和具体的资源路径进行拼接,并且要确保生成的 URL 格式符合要求,避免出现多余的斜杠、编码问题等。


我们一般将useNormalizedOHMUrl 设置为true的时候。ohmurl使用的是新的拼接和解析方式。


标准化的OHMUrl统一了原有OHMUrl的格式。使用集成态HSP和字节码HAR需使用标准化的OHMUrl格式。


```dart

{

 "app": {

   "products": [

     {

        "buildOption": {

          "strictMode": {

            "useNormalizedOHMUrl": true

          }

        }

     }

   ]

 }

}

```


## 二、useNormalizedOHMUrl的使用场景

useNormalizedOHMUrl是为了解决HSP存在bundleName和签名的一致性要求,而且在调试阶段需要先安装HSP包,导致多模块集成开发存在很多集成的问题。


例如笔者开发了一个日志HSP,需要给其他公司使用,不可能别的公司应用包名和我的日志HSP包名一致吧?

但是前期HSP是要求bundleName和签名的一致的。


官方为了解决该问题,提供了集成态HSP的方案。


集成态HSP是应用内HSP的一种中间编译产物,目的就是解决使用方的bundleName和签名之间的强耦合问题。


集成态HSP的模块配置:build-profile.json5


```dart

{

 "apiType": "stageMode",

 "buildOption": {

   "arkOptions": {

     "integratedHsp": true

   }

 }

}

```


这就是为什么,集成三方依赖,我们的项目需要添加useNormalizedOHMUrl为true的前因后果了。


并且需要补充的是,HAR字节码包,也需要设置useNormalizedOHMUrl为ture。


关于字节码HAR包,指的是其中包含的是编译后的abc字节码,相比包含源码的HAR和包含js中间码的HAR,可以有效提升应用模块的编译构建效率。



## 三、useNormalizedOHMUrl的注意事项


1. useNormalizedOHMUrl 为true的时候ohmurl使用的是新的拼接和解析方式,不能和旧的ohmurl混用,会导致运行时无法识别。


2. 集成态HSP需要在工程级的build-profile.json5文件中,将useNormalizedOHMUrl字段设置为true。


3. 从DevEco Studio NEXT Beta1(5.0.3.800)版本开始,当工程级build-profile.json5中useNormalizedOHMUrl配置为true时,noExternalImportByPath缺省默认值为true;当useNormalizedOHMUrl配置为false时,noExternalImportByPath缺省默认值为false。【noExternalImportByPath指的是,是否严格检查绝对路径导入方式和相对路径跨模块导入方式。】


***需要格外注意的是,鸿蒙中引用其他依赖模块正确的方式,是通过index中export的导出的接口,来调用模块函数或者类。如果使用的是相对路径的方式导出,在useNormalizedOHMUrl设置为true后,会导致编译报错,需要整改。***

©本站发布的所有内容,包括但不限于文字、图片、音频、视频、图表、标志、标识、广告、商标、商号、域名、软件、程序等,除特别标明外,均来源于网络或用户投稿,版权归原作者或原出处所有。我们致力于保护原作者版权,若涉及版权问题,请及时联系我们进行处理。
分类
HarmonyOS

暂无评论数据

发布

头像

GeorgeGcs

HarmonyOS认证学习资源创作专家,华为HDE专家,鸿蒙讲师,作者。目前任职鸿蒙应用架构师。 历经腾讯,宝马,研究所,金融。 待过私企,外企,央企。 深耕大应用开发领域十年。 OpenHarmony,HarmonyOS,Flutter,H5,Android,IOS。

125

帖子

1

提问

506

粉丝

关注
热门推荐
地址:北京市朝阳区北三环东路三元桥曙光西里甲1号第三置业A座1508室 商务内容合作QQ:2291221 电话:13391790444或(010)62178877
版权所有:电脑商情信息服务集团 北京赢邦策略咨询有限责任公司
声明:本媒体部分图片、文章来源于网络,版权归原作者所有,我司致力于保护作者版权,如有侵权,请与我司联系删除
京ICP备:2022009079号-2
京公网安备:11010502051901号
ICP证:京B2-20230255