Kati 是一个由 Google 开发的构建工具,主要用于加速 Android 系统的编译过程。它是 Android 构建系统(如 Soong 和 Bazel)的一部分,专注于解析和执行 Makefile 规则,以提高构建效率。
一、基础简介
Android 的早期构建系统基于 GNU Make,但随着项目规模增大,Make 的递归解析和 shell 调用导致构建变慢。Kati 被设计为专门解析 Makefile,将其转换为 Ninja(一种高性能构建系统)能理解的格式,从而显著提升构建速度。
Kati 避免了 Make 的递归解析和频繁启动 shell 的开销,构建速度显著提高。与 Soong(Android 的现代构建系统)和 Bazel 协同工作,成为 Android 开源项目(AOSP)的默认工具之一。同时生成中间文件(如 build.ninja),便于开发者分析构建过程。
Kati 在 Android R(11)的时候,Google 就已经移除了 /build/kati 目录,只保留了一个预先编译出来的可执行文件:prebuilts/build-tools/linux-x86/bin/ckati,这意味着 Google 在逐渐从编译系统中移除 kati,预计在 .mk 文件全部都切换成 .bp 文件后,k