HarmonyOS 鸿蒙Next中贡献和使用第三方库:OHPM的全面指南
HarmonyOS 鸿蒙Next中贡献和使用第三方库:OHPM的全面指南
<markdown _ngcontent-jwe-c147="" class="markdownPreContainer">
目录
- 前言
- OHPM 概述
- 为什么要在 HarmonyOS 中贡献第三方库
- 鸿蒙生态第三方库
- 如何在项目中引入第三方库
- 如何在项目中使用第三方库
- 如何创建第三方库
- 创建步骤
oh-package.json5
介绍
- 发布第三方库
- 准备工作
- 生成公私钥对
- 配置私钥路径
- 复制发布码
- 配置发布码
- 构建 HAR 产物
- 执行发布命令
- 避坑指南
- 单元测试框架使用
- 工程结构
- 命名建议
- 基础语法
前言
快来共享第三方库吧,不但可以通过分享自己的成果,可以获得来自全球开发者的技术反馈和建议,提升自身技术能力,还有助于提高个人或团队在开源社区中的知名度和影响力。在流量时代和粉丝经济时代,获得曝光度和流量密码。
HarmonyOS 系统是当下热门的风,也是未来潜力巨大的万物互联的操作系统和技术底座。无意间浏览了下鸿蒙的开源第三方共享库,发现库好少啊,还是一片蓝海。那么你贡献的三方库可能会被很多人看到和使用,一方面促使你不断学习和进步,一方面获得流量和提升知名度。
OHPM 概述
OHPM(OpenHarmony Package Manager)由 OpenHarmony 三方库中心仓网站、命令行工具、OpenHarmony 三方库中心仓仓库三个部分组成,其功能如下:
- OpenHarmony 三方库中心仓网站(website):用于检索、查看所需 OpenHarmony 三方库信息,也可管理关于 ohpm 的个人配置。
- 命令行工具(cli):OpenHarmony 三方库的包管理工具。
- OpenHarmony 三方库中心仓仓库(registry):存储三方库软件及其元数据的仓库。
官方三方库地址:OpenHarmony 三方库中心仓
为什么要在 HarmonyOS 中贡献第三方库
- 获得技术反馈和建议:通过分享你的成果,可以获得来自全球开发者的技术反馈和建议,提升自身技术能力。
- 提高知名度和影响力:贡献的三方库可能会被很多人看到和使用,这有助于提高个人或团队在开源社区中的知名度和影响力。
- 促进生态系统发展:多样的第三方库可以丰富 HarmonyOS 的生态系统,促进整个社区的发展。
鸿蒙生态第三方库
鸿蒙生态第三方库是在鸿蒙系统上可重复使用的软件库,可帮助开发者重用技术资产快速开发鸿蒙生态应用、元服务,提升开发效率。根据不同的开发语言分为两种:
- ArkTS/TS/JS 语言的三方库:可直接导入并使用。
- C/C++ 语言的三方库:在应用开发中通过 NAPI 的方式使用。
鸿蒙生态三方库发布与使用完整的流程如下图所示:
鸿蒙生态三方库发布与使用流程图
鸿蒙生态中心仓聚合了丰富的鸿蒙生态开发三方库,方便开发者一站式获取。个人/组织贡献者将开发好的三方库通过 OHPM 发布到中心仓。
开发者通过如下方式即可方便快捷地使用三方库:
- 应用开发者登录鸿蒙生态中心仓,通过分类和关键字搜索需要的三方库信息。
- 应用开发者在应用开发时,通过 OHPM 包管理工具,将搜索到的三方库导入应用。
如何在项目中引入第三方库
引用 OpenHarmony 三方库中心仓中的三方库
在 oh-package.json5
文件中声明三方库,以 [@ohos](/user/ohos)/crypto-js
为例:
{
"dependencies": {
"[@ohos](/user/ohos)/crypto-js": "2.0.1"
}
}
依赖声明之后,执行以下命令,依赖三方库会存储在当前目录的 oh_modules
目录下。
ohpm install
安装指定名称 package_name
的三方库,执行以下命令,将自动在当前目录下的 oh-package.json5
文件中自动添加三方库依赖。
ohpm install <package_name>
引用本地文件夹
在 oh-package.json5
文件中配置三方库文件信息:
{
"dependencies": {
"folder": "file:../folder"
}
}
执行以下命令进行安装,依赖三方库会存储在当前目录的 oh_modules
目录下。
ohpm install
执行以下命令进行安装,将在 oh-package.json5
文件中自动添加依赖。
ohpm install ../folder
引用本地压缩包
在 oh-package.json5
文件中配置三方库文件信息:
{
"dependencies": {
"package": "file:./package.har"
}
}
执行以下命令进行安装,依赖三方库会存储在当前目录的 oh_modules
目录下。
ohpm install
执行以下命令进行安装,将在 oh-package.json5
文件中自动添加依赖。
ohpm install ./package.har
如何在项目中使用第三方库
如果将三方库安装到 oh_modules
目录中,就可以使用它了。如果您要创建模块,您可以直接引入三方库,以便在模块中使用此三方库。
示例:
import { CryptoJS } from '[@ohos](/user/ohos)/crypto-js';
var hash = CryptoJS.MD5(“123456”);
如何创建第三方库
创建步骤
如何创建三方库?这里总结一下。官网总结的这方面的资料很少,我一开始竟找不到创建三方库的入口。其实打开 DevEco Studio,直接创建新工程,是没有单独创建库的模板的。所以新建一个空的 EntryAbility 工程即可,然后再新建 Module(只有新建了 EntryAbility 工程的前提下才能够新建 Module,File -> New -> Module,选择 Static Library 模板)。
oh-package.json5
介绍
这里是依赖库的一些发布信息。示例如下:
{
"types": "",
"keywords": [
"jsbn",
"OpenHarmony",
"HarmonyOS"
],
"author": "hihope",
"description": "jsbn(JavaScript BigInteger Library)是一个用于 JavaScript 环境中的大整数(BigInteger)计算的开源库。本软件是移植开源软件 jsbn 源码在 OpenHarmony 上进行功能适配。",
"ohos": {
"org": "opensource"
},
"main": "index.ts",
"repository": "https://gitee.com/yyz116/jsbn",
"type": "module",
"version": "1.0.0",
"dependencies": {},
"tags": [
"Tools",
"Security"
],
"license": "MIT",
"devDependencies": {},
"name": "[@yyz116](/user/yyz116)/jsbn"
}
发布第三方库
准备工作
首先到 OpenHarmony 三方库中心仓 注册账号,进入到个人中心页面。
1. 生成公私钥对
执行以下命令生成公私钥对,并在个人中心 -> 认证管理 -> 新增,填入公钥内容。
ssh-keygen -m PEM -t RSA -b 4096 -f your_key_path
2. 配置私钥路径
执行以下命令配置私钥路径。
ohpm config set key_path your_key_path
3. 复制发布码
在个人中心头像下方,点击复制发布码。
4. 配置发布码
执行以下命令配置发布码。
ohpm config set publish_id your_publish_id
构建 HAR 产物
选中依赖库的 Module,工具栏 Build -> Make
,产物在依赖库 Module 的 build/default/outputs/default/xxx.har
。
执行发布命令
执行发布命令,发布过程中会要求输入密码。
ohpm publish <HAR路径>
避坑指南
在创建库的时候,官方文档介绍只是说在 DevEco Studio 的 File -> New -> Module
,选择 Static Library 即可。但是需要新建 Application,如新建一个 Empty Ability 的工程才行。不过也没关系,可以在这个空的 Ability 中编写一些单元测试。
生成公私钥对时
注意必填 passphrase
。
发布时
如果遇到以下错误:
ohpm ERROR: You must config a encrypted private key using a non-empty passphrase.
ohpm ERROR: Not supported private key.
说明你在 oh-package.json
文件中的 name
属性填写的组织未经过认证。比如我填写的是 [@yyz116](/user/yyz116)/jsbn
,yyz116
这个组织就是未经认证的。
但也不麻烦,申请一下就行。到 OpenHarmony 三方库中心仓 的个人中心 -> 组织管理 -> 新增,然后等到审核通过。
此外,library
库的目录下除了 oh-package.json5
文件不能少,另外 CHANGELOG.md
、LICENSE
、README.md
等文件也必须有。
发布成功后,在 OpenHarmony 三方库中心仓的管理界面会收到通知。
单元测试框架使用
DevEco Studio 支持应用/服务测试框架,包含 HarmonyOS Test、HarmonyOS JUnit、OpenHarmony Test 测试能力。提供测试用例执行能力,提供用例编写基础接口,输出测试结果,支持用户开发简洁易用的自动化测试脚本,支持代码覆盖率统计。
OpenHarmony Test
测试用例存放在 ohosTest
测试目录下,需要运行在设备或者模拟器上。OpenHarmony Test 支持 ArkTS/JS 语言。适用范围:API 9~ Hvigor 工程。
arkTS 测试框架工程结构
在 DevEco Studio 开发工具新建的 arkUI 项目里,ohosTest
目录负责存放测试代码及相关文件。测试模块所在路径如下图所示,测试相关文件及其功能如下表所示。其中 default
目录是新建 ability 项目时自动生成的,用户无需修改。test
目录下存放各个测试文件,用户可以在此目录下自定义测试用例。
测试工程目录及文件夹
测试相关文件说明表
文件名称 | 功能 |
---|---|
ohosTest |
存放测试相关文件 |
jsbn.test.ets |
测试文件,后缀为 xxxx.test.ets |
List.test.ets |
测试用例加载文件,执行指定测试文件 |
index.test.ets |
新增的测试用例文件需要在这里新增引用 |
用例编写命名建议
- 测试工程目录及文件夹:统一采用小写英文风格命名,不允许出现中文,参考“ohosTest”、“default”。
- 测试文件:以“
xx.test.ets
”命名,前缀的“XX”名称为英文字母、数字、下划线的组合,以字母开头,遵从大驼峰命名法,例如“Example.test.ets
”。测试文件在同一测试工程中应保持唯一,避免重复。 - 不能使用:逗号、横线、空格以及
\ / : * ? " " < > | ()&
等特殊字符。 - 测试套名与测试用例名:同上命令规范,保持名称的唯一性。
用例编写基础语法
测试用例遵循 ES6 标准,describe
代表一个测试套,it
代表一条用例,describe
支持多层嵌套。
- **
describe
**:定义一个测试套,支持两个参数:测试套名称和测试套函数;describe
支持嵌套,每个describe
内均可以定义beforeAll
、beforeEach
、afterEach
和afterAll
。 - **
beforeAll
**:在测试套内定义一个预置条件,在所有测试用例开始前执行且仅执行一次,支持一个参数:预置动作函数。 - **
beforeEach
**:在测试套内定义一个单元预置条件,在每条测试用例开始前执行,执行次数与it
定义的测试用例数一致,支持一个参数:预置动作函数。 - **
afterEach
**:在测试套内定义一个单元清理条件,在每条测试用例结束后执行,执行次数与it
定义的测试用例数一致,支持一个参数:清理动作函数。 - **
afterAll
**:在测试套内定义一个清理条件,在所有测试用例结束后执行且仅执行一次,支持一个参数:清理动作函数。 - **
it
**:定义一条测试用例,支持三个参数:用例名称,过滤参数和用例函数。 - **
expect
**:支持bool
类型判断等多种断言方法。
示例:
describe('CryptoJS Test Suite', () => {
beforeAll(() => {
console.info('Before all tests');
});
beforeEach(() => {
console.info(‘Before each test’);
});
it(‘should generate MD5 hash correctly’, () => {
const hash = CryptoJS.MD5(‘123456’);
expect(hash.toString()).toEqual(‘e10adc3949ba59abbe56e057f20f883e’);
});
afterEach(() => {
console.info(‘After each test’);
});
afterAll(() => {
console.info(‘After all tests’);
});
});
</markdown>
更多关于HarmonyOS 鸿蒙Next中贡献和使用第三方库:OHPM的全面指南的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于HarmonyOS 鸿蒙Next中贡献和使用第三方库:OHPM的全面指南的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
HarmonyOS 鸿蒙Next中贡献和使用第三方库:OHPM的全面指南
在HarmonyOS鸿蒙Next系统中,OHPM(OpenHarmony Package Manager)是用于管理和使用第三方库的重要工具。以下是关于如何在HarmonyOS鸿蒙Next中贡献和使用OHPM的全面指南:
-
贡献第三方库:
- 开发者需首先确保所贡献的库与HarmonyOS鸿蒙Next兼容。
- 登录OHPM官方仓库,按照规范提交库信息,包括库的描述、版本、依赖关系等。
- 提交后,OHPM团队将对库进行审核,审核通过后,库将被纳入官方仓库。
-
使用第三方库:
- 在HarmonyOS鸿蒙Next项目中,通过OHPM命令行工具搜索并安装所需的第三方库。
- 命令行示例:
ohpm install <库名>
,其中<库名>
为所需库的名称。 - 安装完成后,开发者可在项目中直接引用该库,进行开发。
-
更新与删除库:
- 使用
ohpm update <库名>
命令更新已安装的库。 - 使用
ohpm uninstall <库名>
命令删除不再需要的库。
- 使用
OHPM提供了便捷的方式管理HarmonyOS鸿蒙Next中的第三方库,提升了开发效率。但请注意,在使用和贡献库时,需遵循OHPM的相关规定和指南。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html