静态共享包HAR和动态共享包HSP

1.什么是静态共享包

HAR(Harmony Archive)是静态共享包,可以包含代码、C++库、资源和配置文件。通过HAR可以实现多个模块或多个工程共享ArkUI组件、资源等相关代码。HAR不同于HAP,不能独立安装运行在设备上,只能作为应用模块的依赖项被引用。

2.使用场景

  • 作为二方库,发布到OHPM私仓,供公司内部其他应用使用。
  • 作为三方库,发布到OHPM中心仓,供其他应用使用。

3.约束限制

  • HAR不支持在设备上单独安装/运行,只能作为应用模块的依赖项被引用。
  • HAR不支持在配置文件中声明UIAbility组件与ExtensionAbility组件。
  • HAR不支持在配置文件中声明pages页面,但是可以包含pages页面,并通过命名路由的方式进行跳转。
  • HAR不支持引用AppScope目录中的资源。在编译构建时,AppScope中的内容不会打包到HAR中,因此会导致HAR资源引用失败。
  • HAR可以依赖其他HAR,但不支持循环依赖,也不支持依赖传递。

4.创建静态共享库

(1)点击选择FIile>New > Module

(2选择Static Library,并单击Next

(3)在Configure New Module界面中,设置新添加的模块信息,设置完成后,单击Finish完成创建

  • Module name:新增模块的名称。
  • Device type:支持的设备类型。
  • Enable native:是否创建一个用于调用C++代码的模块。

(4)创建完成后,会在工程目录中生成库模块及相关文件。

MainPage.ets如下:

5.编译库模块

开发完库模块后,选中模块名,然后通过DevEco Studio菜单栏的Build > Make Module ${libraryName}进行编译构建,生成HAR。HAR可用于工程其它模块的引用,或将HAR上传至ohpm仓库,供其他开发者下载使用

编译构建的HAR可在模块下的build目录下获取,包格式为*.har。

在编译构建HAR时,请注意以下事项:

  • 编译构建HAR的过程中,不会将模块中的C++代码直接打包进.har文件中,而是将C++代码编译成动态依赖库.so文件放置在.har文件中的libs目录下。
  • 在编译构建HAR的过程中,会生成资源文件ResourceTable.txt,以便编辑器可以对HAR中的资源文件进行联想。因此,如果不使用DevEco Studio对HAR进行构建,则DevEco Studio的编辑器会无法联想HAR中的资源。
  • 如果使用的Hvigor为2.5.0-s及以上版本,在编译构建HAR的过程中,会将dependencies内处于本模块路径下的本地依赖也打包进.har文件中;如果在打包后发现缺少部分本地依赖

6.HAR包的引用

(1)将har包放在自己的工程里。并设置依赖。在entry下新建libs目录

(2)点击oh-package.json5,在"dependencies"下引入包,

7.在entry下的index.ets引入

8.依赖设置完成后,需要执行ohpm install命令安装依赖包

ohpm install

9.发布共享包

OpenHarmony三方库中心仓仅支持HAR共享包发布,不支持HSP共享包发布。如需在应用内共享HSP,可将HSP共享包发布至私仓使用

1.在库模块中(与src文件夹同一级目录下),添加如下文件:

  • 新建README.md文件:在README.md文件中必须包含包的介绍和引用方式,还可以根据包的内容添加更详细介绍。
  • 新建CHANGELOG.md文件:填写HAR的版本更新记录。
  • 添加LICENSE文件:LICENSE许可文件

2.重新编译库模块,生成*.har文件。

3.利用工具ssh-keygen生成公、私钥,可执行以下命令:

ssh-keygen -m PEM -t RSA -b 4096 -f ~/.ssh_ohpm/mykey 
  1. ~/.ssh_ohpm/mykey 为私钥文件 mykey 的文件路径,按照实际情况指定。指定的私钥存储目录必须存在。
  2. 追加了.pub后缀的相应公钥文件会存放在和私钥相同的目录下。
  3. OHPM包管理器只支持加密密钥认证,请在生成公私钥时输入密码。

4.登录OpenHarmony三方库中心仓官网,单击主页右上角的个人中心, 新增OHPM公钥,将公钥文件(mykey.pub)的内容粘贴到公钥输入框中。

5.打开命令行工具,将对应私钥文件路径配置到 .ohpmrc 文件中 key_path 字段上,可执行以下命令进行配置:

ohpm config set key_path  ~/.ssh_ohpm/mykey

6.登录OpenHarmony三方库中心仓官网,单击主页右上角的个人中心,复制发布码,获取发布码并配置到 .ohpmrc 文件中,可执行如下命令:

ohpm config set publish_id your_publish_id

7.执行如下命令发布HAR,<HAR路径>需指定为.har文件的具体路径:

ohpm publish <HAR路径> 

10.引用共享包

引用ohpm仓中的HAR,首先需要设置三方HAR的仓库信息,DevEco Studio默认仓库地址为OpenHarmony三方库中心仓,如果您想设置自定义仓库,请在DevEco Studio的Terminal窗口执行如下命令进行设置(执行命令前,请确保已将ohpm配置到环境变量中,第一次配置环境变量后,需重启DevEco Studio):

ohpm config set registry your_registry1,your_registry2

1.通过如下两种方式设置三方包依赖信息:

方式一:Terminal窗口中,切换到需要引入三方包的模块,如entry模块,执行如下命令安装三方包,DevEco Studio会自动在该模块的oh-package.json5中自动添加三方包依赖。

cd path/to/your/project/entry

ohpm install @ohos/lottie

方式二:在需要引入三方包的模块的oh-package.json5中设置三方包依赖,配置示例如下:

"dependencies": {

    "package":"file:libs/library01.har"

}

依赖设置完成后,需要执行ohpm install命令安装依赖包,依赖包会安装到该模块的oh_modules目录下。

ohpm install

2.引用本地模块源码(该本地模块必须与宿主模块归属于同一个工程),如entry模块需要依赖foo模块的源码,有如下两种方式:

方式一:Terminal窗口中,切换到需要引入本地模块源码的模块,即entry模块下,执行如下命令进行安装,并会在该模块下的oh-package.json5中自动添加依赖。

cd path/to/your/project/entry
ohpm install path/to/foo

方式二:在需要引入本地模块源码的模块的oh-package.json5中设置源码依赖项,即entry模块的oh-package.json5中,添加如下配置:

"dependencies": {
  "folder": "file:path/to/foo" // 此处也可以是以当前oh-package.json5所在目录为起点的相对路径
}

依赖设置完成后,需要执行ohpm install命令安装依赖包,模块foo的源码会安装在entry模块的oh_modules目录下。

ohpm install

3.引用本地HAR/HSP包,有如下两种方式:

方式一:Terminal窗口中,切换到需要引入本地HAR/HSP包的模块,如entry模块,执行如下命令进行安装,并会在oh-package.json5中自动添加依赖。以HAR/HSP包在工程根目录下为例,配置示例如下(实际配置时请以HAR/HSP包实际目录为准):

(1)引用HAR:

cd path/to/your/project/entry
ohpm install path/to/package.har

(2)引用HSP(*.tgz包通过HSP模块在release模式下编译生成):

cd path/to/your/project/entry
ohpm install path/to/package.tgz

方式二:在需要引入三方包的模块的oh-package.json5中设置本地HAR/HSP包。以HAR/HSP包在工程根目录下为例,配置示例如下(实际配置时请以HAR/HSP包实际目录为准):

(1)引用HAR:

"dependencies": {
  "package": "file:path/to/package.har" // 此处也可以是以当前oh-package.json5所在目录为起点的相对路径
}

(2)引用HSP:

"dependencies": {
  "package": "file:path/to/package.tgz" // 此处也可以是以当前oh-package.json5所在目录为起点的相对路径
}

代码片段中package.har为三方包文件名;"package"为引用该三方包所使用的依赖名称,建议与三方包包名,即三方包的oh-package.json5文件中的name字段保持一致。

  • 17
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用Charles抓并导出har文件时,可以按照以下步骤进行操作: 1. 打开Charles软件并确保已启动代理服务。 2. 在需要抓的设备上,配置代理设置,将代理地址设置为Charles运行的IP地址,并将端口设置为Charles的监听端口(默认为8888)。 3. 在设备上进行需要抓的操作,Charles会自动捕获并显示网络请求和响应。 4. 在Charles的会话列表中选择需要导出的会话或请求。 5. 右键单击选择的会话或请求,然后选择"Export"(导出)。 6. 在弹出的对话框中选择导出的文件格式为.har文件,并选择保存的位置。 7. 点击"Save"(保存)按钮,即可成功导出.har文件。 通过以上步骤,你可以使用Charles轻松抓并导出.har文件用于进一步的分析和处理。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [使用charles抓导出用例到pycharm,转化成yaml](https://blog.csdn.net/weixin_39218743/article/details/122361342)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [抓导出的har格式解析](https://blog.csdn.net/m0_67695717/article/details/124808587)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值