鸿蒙编译构建丨hb工具分析 原创 精华
2021.05.21
这篇文章是针对 OpenHarmony_release_v1.1.0 LTS 这个版本分析。
1.hb工具是啥
hb是HarmonyOS2.0里新增加的编译构建命令行工具。需要Python 3.7.4及以上版本的支持,建议安装3.8.x。源码在OpenHarmony\build\lite\hb这个目录下。
安装方法,可以直接使用pip安装打包好的工具。但是我们为了方便调试,我们直接使用源码进行单步调试。
2.开启单步调试
我的环境是Ubuntu20.04,安装VScode,新建VScode调试脚本,脚本内容如下
调试前,使用hb set设置好参数。查看我这次调试用的hb环境参数,hb env调取的是ohos_config.json
hb启动入口:build\lite\hb_main_.py
3.分析hb编译构建
接下来按F5启动调试,就可以就行调试了。
下面是我分析得到的结果,如有不对的地方欢迎指正。
第一步:各种初始化
第二步:读取json数据文件
utils.py:46 read_json_file(),首先读取的是ohos_config.json
接着是config.json,通过下面的循环,获取json文件的参数。build\lite\hb\common\product.py
第三步:要生成输出文件夹,并执行gn、ninja命令
build/lite/hb/build/build_process.py:
总结整个流程就是,
- 初始化工具。
- 提取配置文件ohos_config.json、config.json。
- 生成输出文件夹。
- 通过配置文件参数执行两条gn、ninja命令。然后打印信息,写入log文件。
接下来添加打印信息,验证我们的结论。注意!:不要使用打包好的hb命令,使用源码构建命令才能显示我们添加的信息。
最后,我们测试下,不使用鸿蒙hb构建系统,手动执行gn、ninja命令,来生成鸿蒙
好了,以上就是针对 OpenHarmony_release_v1.1.0 LTS 编译构建hb工具的分析。2.0的构建加入了build.sh,会有不同,之后更新新版分析。如果对你有所帮助,别忘了三联支持下。
这正是我所缺失的,感谢。
好文共赏析
不错不错,收藏了
真不错,正愁不知道哪里下手呢
我尝试单步调试 这个参数哪里设置啊 没设置好后面会走到exception。
我执行hb env我看我的参数设置也是对的啊 怎么hb build单步发现product还是null