本文档将介绍HPM的Part的构成,包类型、划分原则、元数据字段以及相关命令行工具的常用命令等。
Part划分原则
原则上应尽可能划分为细颗粒度的Part,以满足最大限度的复用。主要考虑以下几点:
- 独立性:Part的功能应该相对独立,支持独立编译,可以单独对外提供接口和服务;
- 耦合性:如果Part必须依赖其他的Part,才能对外提供服务,应考虑和被依赖的Part合并为一个Part。
- 相关性:如果一组Part共同完成一项功能,且没有被其他Part依赖,未来也没有被依赖的可能,则可以考虑合并为一个Part。
Part类型
Part是为复用而生,一切可以复用的部件都可以定义为Part,可以分为:
表1 HPM Part分类
部件 | 说明 |
---|---|
source | 以源码形式分发,被目标工程依赖、可独立编译。 |
binary | 以二进制形式分发,不包含源代码,例如编译工具。 |
code-segment | 以代码片段形式分发,无法独立编译,安装后还原到指定目录,在目标工程参与其他代码编译。 |
distribution | 以发行版形式分发,依赖其他Part,不包含源码(编译脚本除外),编译输出为系统镜像。 |
template | 以模板形态分发,用于hpm init创建模板。 |
plugin | 以插件形态分发,作为hpm cli的插件,扩展hpm cli的功能。 |
Part构成
一个Part包一般包含如下内容:
-
Part包的代码或库(src目录下的代码文件)
-
ohos_bundles文件夹(存放依赖的Part,安装Part时自动生成,无需提交到代码库)
-
Part包的说明文件(README.md)
-
Part包元数据声明文件(bundle.json)
-
开源许可文件(LICENSE)
my-bundle |_ohos_bundles |_headers |_src |_bundle.json |_README.md |_LICENSE
src源代码
Part的代码文件和普通的代码目录没有差异。但要注意的是,Part中对外暴露的接口(头文件),会被其他Part所引用,需要单独在bundle.json的dirs中声明。
README文件
为了帮助他人在[DevEco Marketplace]上找到该Part,并更方便的使用它,在Part的根目录中包含一个README文件。
README.md,为markdown格式的描述关于Part自述说明文件。
README文件应包括如何安装,配置和使用Part包中的实例代码说明,以及可能会对用户有所帮助的任何其他信息。
自述文件将显示在[DevEco Marketplace的Part的详情页面中。