在 Android 构建系统中,Soong UI 是 Soong 构建框架的入口点。通过前面的学习我们知道,在执行 make 兼容模式编译时,soong_ui 会调用 ckati 来将传统的 Android.mk 和其他 Makefile 文件转换为 Ninja 构建文件(如 build-aosp_arm.ninja 和 build-aosp_arm-package.ninja)。这些 .ninja 文件随后会被 ninja 工具调用以进行真正的构建流程。
在这一过程中,kati.go 是 Kati 在 Go 层的封装实现,它负责协调并驱动整个 ckati 的执行过程。下面我们将对 kati.go 的内容进行详细解析,并完善其术语描述,以便更清晰地理解 Kati 执行的逻辑和作用。
一、Kati执行
kati.go 是 Android 构建系统中用于启动和管理 ckati 的 Go 实现模块,位于 Soong 框架中。该模块定义了与 Kati 相关的主要函数和逻辑,包括如何启动 ckati 进程、传递参数、处理输入输出等。
它本质上是对底层 C++ 编写的 ckati 可执行程序的一层封装,使得 Soong 能够统一调度 ckati 并集成到现代的构建流程中。
1、kati.go
源码位置