鸿蒙NEXT开发-鸿蒙三方库

server/2025/2/12 12:22:37/

基本介绍

三方库是开发者在系统能力的基础上进行了一层具体功能的封装,对其能力进行拓展,提供更加方便的接口,提升开发效率的工具。

我们在之前的课程中学习过如何安装三方库axios了,我们大家可以通过ohpm install @ohos/axios进行三方库axios的安装,也可以使用ohpm uninstall @ohos/axios进行三方库的卸载。

OHPM(OpenHarmony Package Manager)由OpenHarmony三方库中心仓网站、命令行工具、OpenHarmony三方库中心仓仓库三个部分组成,其功能如下:

  • OpenHarmony三方库中心仓网站(website):用于检索、查看所需 OpenHarmony 三方库信息,也可管理关于 ohpm 的个人配置
  • 命令行工具(cli):OpenHarmony 三方库的包管理工具
  • OpenHarmony三方库中心仓仓库(registry):存储三方库软件及其元数据的仓库,其地址为:https://ohpm.openharmony.cn/ohpm

三方库中心仓的地址:OpenHarmony三方库中心仓,我们可以在这里面查看到多种多样的三方库。

开发一个三方库

如需发布一个 har 包,必须包含 oh-package.json5、README.md,CHANGELOG.md 和 LICENSE 四个文件,若文件缺失,会导致上架至中心仓失败。

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

1、创建一个新的工程项目

2、创建库模块,选择static library
  1. 鼠标移到工程目录顶部,单击右键,选择New > Module,在工程中添加模块。
  2. Choose Your Ability Template界面中,选择Static Library,并单击Next

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

3、对所创建的库模块进行开发,需要完善库模块中生成的 oh-package.json5 文件

OpenHarmony 三方库命名规范:

  • 格式为:@group/packagename 或 packagename,长度:[1, 128],全局唯一,即一个应用中,不同 package 的 package name 不能重名;
  • name 中只有在存在组织名称 group 时,才能有且仅能有一个'@'符号,有且仅有一个路径分隔符'/';
  • 组织名称 group 格式:
    (1)仅允许以小写字母开头,可由小写字母、数字、中划线(-)、下划线(_)组成。
    (2)禁止以中划线(-)、下划线(_)结尾。
    (3)不允许为 ArkTS 的保留关键字。
  • packagename 格式:
    (1)仅允许以小写字母开头,可由小写字母、数字、点(.)、中划线(-)、下划线(_)组成。
    (2)禁止以点(.)、中划线(-)、下划线(_)结尾。
    (3)不允许为 ArkTS 的保留关键字。
  • 建议三方库名称携带组织名称 group,便于管理和识别三方库。

当您选择三方库名称时,请满足 OpenHarmony 三方库命名规范,同时也请选择名称是:

  • 独特的;
  • 有描述性的;
  • 符合正常条例的,例如,请不要给您的三方库起一个冒犯性的名字,也不要使用别人的商标名。

此外,在为未加命令空间的三方库选择名称时,还请选择一个名称:

  • 尚未归他人所有;
  • 与另一个三方库名称的拼写方式不同;
  • 不会混淆其他作者身份。

{"license": "Apache-2.0","devDependencies": {},"keywords": ["OpenHarmony","HarmonyOS","file","fileUpload","upload","image","download"],"ibestservices": {"org": "opensource"},"author": "ibestservices","name": "@ibestservices/file_operation","description": "A harmonyos plugin for file and image upload download","main": "index.ets","repository": "https://gitee.com/ibestservices/file_operation.git","version": "4.0.0","dependencies": {},"tags": ["file_operation"]
}

4、在库模块的根目录中,创建一个 README.md 文件,描述您三方库的代码以及如何使用它,文件不能为空

5、在库模块的根目录中,创建一个 CHANGELOG.md 文件,描述您三方库的代码不同版本的变更内容,文件不能为空

6、在库模块的根目录中,创建一个 LICENSE 文件,指定该软件包可以在什么样的许可下被使用、修改和共享,文件不能为空

直接找个apache2.0开源协议即可

7、利用 DevEco Studio 对开发后的库模块打成 HAR 包

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

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


http://www.ppmy.cn/server/167052.html

相关文章

AWS全球加速架构在跨国实时交互系统中的优化实践

背景:跨境电商平台的性能瓶颈 某跨境电商平台(为保护客户隐私简称Platform X)业务覆盖北美、欧洲、东南亚三大区域,日均活跃用户超50万。其核心业务系统包含:商品实时竞价模块、跨国直播带货系统、动态定价API服务。…

深入解析 STM32 GPIO:结构、配置与应用实践

理解 GPIO 的工作原理和配置方法是掌握 STM32 开发的基础,后续的外设(如定时器、ADC、通信接口)都依赖于 GPIO 的正确配置。 目录 一、GPIO 的基本概念 二、GPIO 的主要功能 三、GPIO 的内部结构 四、GPIO 的工作模式 1. 输入模式 2. 输…

Linux之【网络I/O】前世今生(一)

在 Linux之【磁盘I/O】前世今生 一文中,我们介绍了文件I/O 的细节。本文将继续介绍网络I/O的内容。 一、 基本概念 介绍网络I/O前,先了解一些基本概念。 1.1、上下文 CPU 寄存器,是CPU内置的小容量、速度极快的内存。程序计数器&#xff…

MySQL 中可以通过添加主键来节省磁盘空间吗?(译文)

从历史上看,MySQL 不需要在表上定义显式主键,直到今天默认都是这样。不过,这种要求是通过两种复制方法施加的:组复制和 Percona XtraDB 集群 (PXC),默认情况下不允许使用没有主键的表。对于缺少…

独立站赋能反向海淘:跨境代购系统的用户体验与支付解决方案

随着全球化的推进以及消费者对海外商品多样化需求的增长,独立站赋能的反向海淘模式愈发火热,其中跨境代购系统的用户体验与支付解决方案起着关键作用。 一、跨境代购系统的用户体验 界面友好性 独立站的页面设计需要简洁、直观,方便用户快速…

innovus如何分步长func和dft时钟

在Innovus工具中,分步处理功能时钟(func clock)和DFT时钟(如扫描测试时钟)需要结合设计模式(Function Mode和DFT Mode)进行约束定义、时钟树综合(CTS)和时序分析。跟随分…

.net framework 4.5 的项目,用Mono 部署在linux

步骤 1:安装 Mono 更新包列表: 首先,更新 Ubuntu 的包列表以确保获取最新的软件包信息。 sudo apt update 安装 Mono: 安装 Mono 完整版(mono-complete),它包含了运行 .NET 应用程序所需的所有…

1.4 AOP编程范式

1.4 AOP编程范式 1.4.1 代理模式底层原理剖析(字节码级解析) 代理机制对比矩阵: | 维度 | JDK动态代理 | CGLIB字节码增强 | |----------------|--------------------------------|---------…