hb是啥工具? 当时看鸿蒙的编译文档,里面直接出来了hb命令,把我都看傻了。后来才知道:
hb是HarmonyOS2.0里新增加的编译构建命令行工具。需要Python 3.7.4及以上版本的支持,建议安装3.8.x。源码在OpenHarmony\build\lite\hb这个目录下。
安装
安装方法,可以直接使用pip安装打包好的工具。
python3 -m pip install --user ohos-build
# 或者最简单是
pip install ohos-build
安装完成:Successfully installed kconfiglib-14.1.0 ohos-build-0.4.6 prompt-toolkit-1.0.14
hb的使用
- 设置编译环境:在使用hb进行编译之前,通常需要使用
hb set
命令来设置编译环境,包括指定代码根目录、要编译的产品等。 - 执行编译:设置完编译环境后,可以使用
hb build
命令来执行编译操作。hb会根据配置文件(如ohos_config.json
和config.json
)中的参数来生成输出文件夹,并执行gn和ninja命令来完成编译过程。 - 其他功能:除了编译相关的功能外,hb还提供了其他模块,如
hb env
用于打印编译环境信息,hb clean
用于清除编译生成的文件,hb tool
提供了编译工具的相关功能。
hb的编译流程
- 初始化:启动hb后,首先会进行各种初始化操作,包括导入必要的模块和库。
- 读取配置文件:接着,hb会读取配置文件(如
ohos_config.json
和config.json
),以获取编译所需的参数和配置信息。 - 生成输出文件夹:根据配置文件的参数,hb会生成输出文件夹,用于存放编译过程中生成的文件。
- 执行gn和ninja命令:在输出文件夹生成后,hb会执行gn命令来生成Ninja文件,然后执行ninja命令来完成实际的编译工作。
- 写入日志和生成文件:编译过程中,hb会将相关信息写入日志文件,并在输出文件夹中生成编译后的文件,如镜像文件等。