【HarmonyOS开发】共享包HAR和HSP的创建和使用以及三方库的发布

图片

OpenHarmony提供了两种共享包,HAR(Harmony Archive)静态共享包,和HSP(Harmony Shared Package)动态共享包。 

HAR与HSP都是为了实现代码和资源的共享,都可以包含代码、C++库、资源和配置文件,最大的不同之处在于:HAR中的代码和资源跟随使用方编译,如果有多个使用方,它们的编译产物中会存在多份相同拷贝;而HSP中的代码和资源可以独立编译,运行时在一个进程中代码也只会存在一份。

图片

1、HAR:静态共享包(模块)

1.1 创建/编译

图片

图片

1.2 引用/使用

1.2.1 从ohpm三方库中引用

ohpm install 发布成功的包名(eg: @ohos/lottie)

1.2.2 从本地引用HAR包

ohpm install ./package.har

开发及引用静态共享包icon-default.png?t=N7T8https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/creating_har_api9-0000001518082393-V3#section143510369612

1.3 发布我们的HAR包到三方开源库

1.3.1 OpenHarmony中心仓创建账号

OpenHarmony三方库中心仓icon-default.png?t=N7T8https://ohpm.openharmony.cn/#/cn/personalCenter/notifications

1.3.2 利用工具ssh-keygen生成公钥和私钥文件

// /d/SSH/ohpm.pub为密钥存放的位置
ssh-keygen -m PEM -t RSA -b 4096 -f /d/SSH/ohpm-test.pub// 输入量两次一致的密码,即可自动生成密钥
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

1.3.3 OpenHarmony中心仓中配置ohpm公钥

注册成功后,进入个人中心【认证管理】,用我们生成的密钥,进行配置,具体见下图:

图片

1.3.4 配置本地的环境变量.ohrmrc

// 1、配置私钥,d/SSH/ohpm.pub为我们生成的私钥文件位置
ohpm config set key_path d/SSH/ohpm-test.pub// 2、配置发布码:publish_id,或者找到.ohrmrc直接修改publish_id字段
ohpm config set publish_id CQF******Z// 结果
// ohpm WARN: invalid config key_path="d/SSH/ohpm.pub" set in C:\Users\*****\.ohpm\.ohpmrc - invalid filesystem path.

图片

1.3.5 发布HAR到三方库

// 1、执行推包命令
ohpm publish D:\workspace-hw-OS\HAR\GridEdit.har// 2、输入开源仓配置的密码即可完成

图片

1.3.6 三方库审核

审核通过,即可通过ohpm从开源仓下载我们的包

图片

图片

工具扫描包括完整性检查与安全性检查两部分。完整性检查将基于创建三方库的具体要求进行三方库目录、内容审核,如果您提交的三方库缺少必要性文件,三方库将被退回,请您根据提示完善三方库内容后再次提交上架审核;安全性检查将结合目前已有的安全检测工具,对三方库进行定期检测。

1.3.7 发布失败问题整理

  • 模块源码中缺少文件

    • 缺少开源声明文件:ohpm ERROR: HttpCode 400 The OHPM package must contain a non-empty license file.

    • 缺少README.md说明文件:ohpm ERROR: HttpCode 400 The OHPM package must contain a non-empty readme.md file.

    • 缺少GHANGELOG.md版本说明文件:ohpm ERROR: HttpCode 400 The OHPM package must contain a non-empty changelog.md file.

2、HSP:动态共享包(模块)

2.1 创建/编译

图片

图片

2.2 引用

2.2.1 在使用方entry/feature模块的oh-package.json5文件中添加HSP模块引用

{..."dependencies": {"sharedlibrary": "file:../libraryTest"}
}

2.2.2 点击执行 Run 'ohpm install'

HSP目录将映射到entry/feature的oh_modules目录下

2.3 使用

图片

HSP旨在解决HAR存在的几个问题:

  • 多个HAP引用相同的HAR,导致的APP包大小膨胀问题。

  • 多个HAP引用相同的HAR,HAR中的一些状态变量无法共享的问题。

HSP的一些约束:

  • HSP及其使用方都必须是Stage模型。

  • HSP及其使用方都必须使用esmodule编译模式。

  • HSP不支持在配置文件中声明abilities、extensionAbilities标签。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/591411.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

redis的搭建及应用(七)-redis的限流插件redis-cell

Redis限流插件-redis-cell redis-cell 是一个用rust语言编写的基于令牌桶算法的的限流模块,提供原子性的限流功能,并允许突发流量,可以很方便的应用于分布式环境中。 下载redis-cell插件 访问Releases brandur/redis-cell (github.com) 上传…

计算机网络——应用层与网络安全(六)

前言: 前几章我们已经对TCP/IP协议的下四层已经有了一个简单的认识与了解,下面让我们对它的最顶层,应用层进行一个简单的学习与认识,由于计算机网络多样的连接形式、不均匀的终端分布,以及网络的开放性和互联性等特征&…

Python流星雨完整代码

文章目录 环境需求完整代码详细分析环境需求 python3.11.4PyCharm Community Edition 2023.2.5pyinstaller6.2.0(可选,这个库用于打包,使程序没有python环境也可以运行,如果想发给好朋友的话需要这个库哦~)【注】 python环境搭建请见:https://want595.blog.csdn.net/arti…

找第三方数据公司获取电商平台商品数据订单数据店铺信息等

API文档 如何获取? 应用业务场景(不限)

京东tp3手势验证

2024祝我们越来越好。 新年第二天,来看下这最新的tp3手势验证码,很在之前就发过一篇,最近看了看更新了一个东西,但是难点还是在轨迹上面,感兴趣的朋友可以去看看。 risk_jd[jstub] 改了下这,之前我都没带…

基于ThinkPHP的云盘系统Cloudreve本地搭建并实现远程访问

文章目录 1、前言2、本地网站搭建2.1 环境使用2.2 支持组件选择2.3 网页安装2.4 测试和使用2.5 问题解决 3、本地网页发布3.1 cpolar云端设置3.2 cpolar本地设置 4、公网访问测试5、结语 1、前言 自云存储概念兴起已经有段时间了,各互联网大厂也纷纷加入战局&#…

Flume基础知识(一):Flume组成原理与架构

1. Flume定义 Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume基于流式架构,灵活简单。 Flume最主要的作用就是,实时读取服务器本地磁盘的数据,将数据写入到HDFS。 2. Fl…

关于标准那些事——第六篇 四象之“白虎”(要素的编写)

两仪生四象——东方青龙(木)、西方白虎(金)、南方朱雀(火)、北方玄武(水) 分别对应标准编写之四象——层次的编写、要素的编写、要素的表述、格式的编排。 今天来分享一下 要素的编…

shell脚本查看端口是否连通

shell脚本查看端口是否连通 shell脚本查看是否可以连通对方端口 shell脚本检查端口连通性 场景如:centos服务器上,本机需要连接其他机器的服务,为了确保连接能够连通 一般使用telnet 11.11.11.11:8080 看是否能连通 因为是其他机器的服务…

人才网招聘网程序人才招聘系统/招聘APP/H5/求职招聘兼职/招聘企业职位求职招聘小程序

可以打开封装APP 套餐一:源码+包安装+包过审(无需人力资源许可证)=800 套餐二:全包服务 包服务器+域名+APP+免费认证小程序+H5+PC+采集=1200 包审核 2023年10月新增合伙人功能 七种收费模式: 1、开通VIP套餐收费; 2、发布招聘职位收费; 3、置顶招聘职位收费; 4、刷…

配置光网卡的IP,以及修改网卡后老ip依然存在的问题

首先 1.取出光网卡的uuid uuidgen 网卡名 2.进入到 /etc/sysconfig/network-scripts 编辑一个 ifcfg-网卡名的文件 [rootlocalhost network-scripts]# cat ifcfg-网卡名 # Generated by parse-kickstart BOOTPROTO"static" DEVICE"网卡名" ONBOOT"…

DATASTAGE日期和时间函数_官方文档译文

DATASTAGE日期和时间函数_官方文档译文 原文链接:https://www.ibm.com/docs/en/iis/11.5?topicfunctions-date-time 你可以使用日期和时间函数在Transformer阶段执行关于日期和时间的各种操作。 这些函数中,用于指定日期、时间或时间戳的参数采用特定…

【Bug解决】Failed to configure a DataSource

1、问题描述 SpringBoot项目在启动时报出下面的错误: Description: Failed to configure a DataSource: url attribute is not specified and no embedded datasource could be configured. Reason: Failed to determine a suitable driver class Action: Consider…

linux 终端termios NONICANON模式 获取键盘按键

终端默认模式为整行ICANON输出模式&#xff0c;先缓存一行再输出&#xff0c;但有时像获取快键键&#xff0c;getch按个键再按个enter就不合适了&#xff0c;这时可以用NONICANON模式&#xff0c;跳过缓存直接输出。 示例 #include <stdio.h> #include <termios.h&g…

pyqt的qlabel样式调整办法

参考&#xff1a; https://blog.csdn.net/ever_peng/article/details/129428230 # -*- coding:utf-8 -*- import sys from PyQt5.Qt import *class Root(QWidget):def __init__(self, parentNone):super(Root, self).__init__(parent)self.resize(600, 300)self.setWindowTitl…

大一C语言程序细节复盘2

7-4 学生成绩排序 分数 27 全屏浏览题目 切换布局 作者 张泳 单位 浙大城市学院 假设学生的基本信息包括学号、姓名、三门课程成绩以及个人平均成绩&#xff0c;定义一个能够表示学生信息的结构类型。输入n&#xff08;n<50&#xff09;个学生的成绩信息&#xff0c;按照学生…

NFS(文件存储服务)

题目 创建NFS共享文件夹,允许InsideCli可以远程挂载,映射挂载到D卷。共享文件夹路径为D:\shares\NFSshare。共享名称为NFSshare。允许未映射的用户访问。共享权限为读/写。服务配置步骤( 服务端 ) 步骤一 - 安装服务 步骤二 - 配置NFS服务 配置共享文件夹 选择共享路径

服务器安装Mysql5.7

一、下载安装包 MySQL :: Download MySQL Community Server 二、将文件上传到服务器 三、解压上传的安装包 tar -xvf xxxx.tar 再解压 tar -zxvf xxxx.tar.gz 四、修改文件名&#xff0c;并移动文件目录 mv mysql-***** mysql mv mysql /usr/local 五、创建一个mysql组和用户…

WSUS更新服务

题目 安装WSUS更新服务,更新补丁目录设置为“c:\wsusbackup”。创建更新组名称为“CHINASKILLS-WSUS”。每天凌晨03:00下发自动更新。更新服务器地址为“http://wsus.chinaskills.com:8530”。服务配置步骤 步骤一 - 安装Windows Server 更新服务 安装Windows Server 更新服…

外汇天眼:注意!年末大量无监管平台上榜,有的仍在诈骗!

纵观整个10月的天眼客诉排行榜&#xff0c;可以发现此次名单基本上都是无监管的外汇平台&#xff0c;无法出金依旧仍是客诉的关键来源。在本月的客诉榜单中&#xff0c;超过半数的平台仍然在活跃中&#xff0c;交易者们一定要远离&#xff0c;注意警惕。 接下来&#xff0c;就…