Android Ninja编译系统介绍

 

 

Platform: rk3399
OS: Android 7.1
Kernel: v4.4.83

Android7.0以后开始使用Ninja替代GNU make编译系统。

概念:
Ninja:

用于提高编译速度的编译系统。
可执行文件位于 prebuilts/ninja/linux-x86/ninja

Kati:
用于把Makefiel转成成ninja file,自身没有编译能力,转换后使用Ninja编译。
源代码位于: build/kati
可执行文件会被生成到: out/host/linux-x86/bin/ckati
使用方法可参考 README.md

Soong:
用于把blueprint文件(Android.bp)生成ninja文件,然后用ninja编译,目前rk3399没用到此功能。
Soong是长期的一个计划,用来替换系统中所有的Android.mk。

因此,Kati更像是Google过渡使用的一个工具,等所有Android.mk都被替换成Android.bp之后,相信Soong工具会被打开使用来替换Kati.
 

Ninja使用:

由于目前android系统没有全部切换到ninja编译,因此编译入口还是和之前的方法一样,使用make命令。

source build/envsetup.sh
lunch
make -j8

按照kati readme要求,使用ninja必须要定义USE_NINJA为true, android中虽然默认没有定义USE_NINJA, 但会定义relaunch_with_ninja为true,这样就会包含build/core/ninja.mk,从而使用ninja编译。

main.

你可能感兴趣的:(3399)