Android10的Soong编译系统

一、概述

Android 10的Build系统叫Soong,Soong之前,Android的编译系统是Make——意思是基于Makefile文件的编译系统。Soong大概在Android 7就崭露头角了。Soong的宏伟目标是干掉Make,但到Android 10,这个看起来比较容易的小目标也还未完全实现。

这个是Soong的编译流程图:

Android10的Soong编译系统

Soong编译系统下,原本打算输入是.bp文件,输出是.ninja文件,但是由于系统中的.mk文件还没有被完全消除掉,因此提供kati和ckati工具将.mk/Makefile文件转换为.ninja文件。.ninja成为编译系统的汇编文件,是不需要人为去修改的,相当于配置文件来调用gcc、java、clang等编译器去编译。

Soong编译系统的设计思想是消除.mk文件中的if/else等逻辑,使.bp文件只是一个简单的编译逻辑,这些复杂的选择配置逻辑应该放在更高层,比如使用更好调试的Python来编写。

 

参考优秀博文:

1. 了解一下,Android 10 Build系统

 

上一篇:CMake构建NDK项目提示asm/types.h找不到


下一篇:洛谷 P4570 [BJWC2011]元素(贪心、线性基)