Android编译系统中Ninja与其它构建套件之间的关系,见:http://xinyiworld.top/wordpress_it/?p=11895
目录
Ninja
Ninja是一种类似GNU make的编译系统。 就像make有Makefile,它也有自己的编译配置文件。 相对来说,Ninja文件没有分支、循环的流程控制,本质上就是纯粹的配置文件,所以要比Makefile简单得多。
可以将Ninja与make(工具)理解为make命令抽象的两种实现,即源码都是通过envsetup.sh里提供的make函数来编译的,但是不同版本的make函数实现方式不一样。
linux安装及使用
https://blog.csdn.net/m0_72410588/article/details/131787405
ninja编译小demo
https://blog.csdn.net/qq_32566003/article/details/120502719
ninja源码及原理
https://blog.csdn.net/MAX__YF/article/details/125856258
ninja常用命令
https://www.cnblogs.com/sandeepin/p/ninja.html
- 查看目标
ninja -f build-kona.ninja -n -t targets all | grep unpack_bootimg
如果报错:unknown pool name,见https://blog.csdn.net/xzzppp/article/details/53291253 (待验证)
ninja语法
https://note.qidong.name/2017/08/ninja-syntax/ (**)
ninja编译优化
- 优化基本原理
https://blog.csdn.net/realDonaldTrump/article/details/126232503
https://blog.csdn.net/MAX__YF/article/details/125856258 (对ninja作了封装)
当能够确保编译配置没有更新,变更仅存在于源码范围时,使用Ninja直接编译,跳过Kati可以取得很显著的提升。
- 使用ninja命令提高单模块编译效率
https://note.qidong.name/2018/02/android-ninja-tips/
通过-f指定.ninja时,要使用全路径out/xx.ninja,否则报错:
ninja: error: combined-kona.ninja:6: loading 'out/build-kona.ninja': No such file or directory
subninja out/build-kona.ninja
^ near here
要退回到源码的根目录执行命令:ninja -f out/combined-kona.ninja out/target/product/kona/boot.img
0 条评论