鸿蒙里面编译时用到的hb是啥?
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会将相关信息写入日志文件,并在输出文件夹中生成编译后的文件,如镜像文件等。