1e41f4b71Sopenharmony_ci# HPM Part介绍
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci
4e41f4b71Sopenharmony_ci本章节将介绍OpenHarmony中的HPM Part相关概念,开发者可熟悉以下内容帮助进行HPM Part开发。
5e41f4b71Sopenharmony_ci
6e41f4b71Sopenharmony_ci
7e41f4b71Sopenharmony_ci## Part介绍
8e41f4b71Sopenharmony_ci
9e41f4b71Sopenharmony_ci
10e41f4b71Sopenharmony_ci### Part分类
11e41f4b71Sopenharmony_ci
12e41f4b71Sopenharmony_ciPart是一个用于表示OpenHarmony分发单元的术语。大致分为两大类:
13e41f4b71Sopenharmony_ci
14e41f4b71Sopenharmony_ci- **部件级Part**:用于描述模块、部件级别的Part,强调可复用性,分发的内容可以是源代码或二进制文件,通常部件级Part和一个代码仓对应,是代码仓的发布件。
15e41f4b71Sopenharmony_ci
16e41f4b71Sopenharmony_ci- **发行版级Part**:用于描述某一款操作系统发行版的Part,是由一组依赖的Part清单及如何编译构建该发行版的脚本构成,发行版中包含了一个完整操作系统的各类部件(如驱动、内核、框架、应用),编译后生成的镜像可以用于设备的烧录。
17e41f4b71Sopenharmony_ci
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ci### Part构成
20e41f4b71Sopenharmony_ci
21e41f4b71Sopenharmony_ci一个Part中包含包说明和包内容两部分:
22e41f4b71Sopenharmony_ci
23e41f4b71Sopenharmony_ci包说明文件包含内容如下:
24e41f4b71Sopenharmony_ci
25e41f4b71Sopenharmony_ci  **表1** 包说明文件
26e41f4b71Sopenharmony_ci
27e41f4b71Sopenharmony_ci| 文件名 | 含义 | 是否必须 | 
28e41f4b71Sopenharmony_ci| -------- | -------- | -------- |
29e41f4b71Sopenharmony_ci| bundle.json | 元数据声明文件 | 必须 | 
30e41f4b71Sopenharmony_ci| README.md | 自述文件 | 必须 | 
31e41f4b71Sopenharmony_ci| LICENSE | 许可协议文本文件 | 必须 | 
32e41f4b71Sopenharmony_ci| CHANGEME.md | 变更日志文件 | 非必须 | 
33e41f4b71Sopenharmony_ci
34e41f4b71Sopenharmony_ci包内容文件可以是以下任意内容:
35e41f4b71Sopenharmony_ci
36e41f4b71Sopenharmony_ci- 被分发的部件的二进制文件
37e41f4b71Sopenharmony_ci
38e41f4b71Sopenharmony_ci- 被分发的部件源代码文件
39e41f4b71Sopenharmony_ci
40e41f4b71Sopenharmony_ci- 编译脚本文件
41e41f4b71Sopenharmony_ci
42e41f4b71Sopenharmony_ci
43e41f4b71Sopenharmony_ci  **图1** 部件Part和发行版Part的关系
44e41f4b71Sopenharmony_ci
45e41f4b71Sopenharmony_ci  ![zh-cn_image_0000001195369804](figures/zh-cn_image_0000001195369804.png)
46e41f4b71Sopenharmony_ci
47e41f4b71Sopenharmony_ci
48e41f4b71Sopenharmony_ci## HPM介绍
49e41f4b71Sopenharmony_ci
50e41f4b71Sopenharmony_ciHPM是连接消费方和提供方的一个开放的协作平台,全称是OpenHarmony Package Manager(即包管理器),Part是HPM管理的对象。
51e41f4b71Sopenharmony_ci
52e41f4b71Sopenharmony_ci通过构建统一的中央仓作为分发渠道,以Part作为载体,提供方发布Part,消费方下载使用Part,实现平台上的供需双方共赢。
53e41f4b71Sopenharmony_ci
54e41f4b71Sopenharmony_ci- 提供方声明Part的属性,将内容发布到平台上。
55e41f4b71Sopenharmony_ci
56e41f4b71Sopenharmony_ci- 消费方通过声明对Part指定版本的依赖,获取到所需的资源。
57e41f4b71Sopenharmony_ci
58e41f4b71Sopenharmony_ci通过HPM完成提供方和消费方的需求匹配。
59e41f4b71Sopenharmony_ci
60e41f4b71Sopenharmony_ci
61e41f4b71Sopenharmony_ci  **图2** HPM功能介绍
62e41f4b71Sopenharmony_ci
63e41f4b71Sopenharmony_ci  ![zh-cn_image_0000001240409717](figures/zh-cn_image_0000001240409717.png)
64e41f4b71Sopenharmony_ci
65e41f4b71Sopenharmony_ci**HPM主要分为两部分:**
66e41f4b71Sopenharmony_ci
67e41f4b71Sopenharmony_ci- **客户端的命令行工具:hpm-cli(发布在[@ohos/hpm-cli](https://www.npmjs.com/package/@ohos/hpm-cli))**
68e41f4b71Sopenharmony_ci
69e41f4b71Sopenharmony_ci  hpm-cli是一个跨平台包管理器命令行工具,包含一系列的命令(创建、编译、安装、打包、运行、发布等),开发者使用这些命令完成HPM Part的生命周期管理。
70e41f4b71Sopenharmony_ci
71e41f4b71Sopenharmony_ci- **服务器端的资源仓库:[DevEco Marketplace](https://repo.harmonyos.com)**
72e41f4b71Sopenharmony_ci
73e41f4b71Sopenharmony_ci  [DevEco Marketplace](https://repo.harmonyos.com)提供了Part的注册、存储和分类检索等功能,每一个Part都有一个页面显示它的自述文件、依赖关系、历史版本、变更记录、许可协议、下载量、源码仓库地址等信息,开发者可以向资源仓库中发布Part,参与OpenHarmony生态的建设。
74