[RK3399][Android7.1] 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.mk:

relaunch_with_ninja :=
ifneq ($(USE_NINJA),false)
ifndef BUILDING_WITH_NINJA
relaunch_with_ninja := true
endif
endif

ifeq ($(relaunch_with_ninja),true)
# Mark this is a ninja build.
$(shell mkdir -p 
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值