Android中的Ninja简介
2017-08-15 16:49:42 +08
字数:2671
标签:
Android
Makefile
Ninja
如果说Makefile是一个DSL,那么Ninja就是一种配置文件。
本文简单介绍Android中的Ninja。
Makefile与Ninja的对比 ¶
二者最核心的区别,在于设计哲学。
Makefile是设计来给人手写的,而Ninja设计出来是给其它程序生成的。
如果说Makefile是C语言,那么Ninja就是汇编语言。
如果说Makefile是一个DSL,那么Ninja就是一种配置文件。
Makefile支持分支、循环等流程控制,而Ninja只支持一些固定形式的配置。
二者的相同点是,都是为了控制编译流程而设计。
所以,他们的核心功能,都是指定目标,以及目标之间的依赖关系,自动计算执行顺序。
与Makefile相比,由于Ninja仅仅专注于核心的功能,所以有轻巧、速度快的优点。
Makefile默认文件名为Makefile或makefile,也常用.make或.mk作为文件后缀。
Ninja的默认文件名是build.ninja,其它文件也以.ninja为后缀。
执行Makefile的程序,默认是GNU make,也有一些其它的实现。
Ninja的执行程序,就是ninja命令。
在Android项目中,make需要编译主机上安装,作为环境的一部分