chenhang 的博客

HansChen 的博客

马上订阅 chenhang 的博客 RSS 更新: http://blog.hanschen.site/atom.xml

使用 Ninja 提升模块编译速度

2019年11月20日 00:00

1. 简介

从 Android 7 开始,Android 源码编译时默认使用 Ninja,编译时,会先把 makefile 和 bp 转换成 ninja 再进行编译。这个转换过程非常慢(需要遍历处理所有关联的 makefile、bp 文件),即使只是通过 mmmmm 编译某个模块,也会有很多因素触发 ninja 文件的重新生成,而这对基于源码开发的模块很不友好,编译好慢!

2. 初识 ninja

AOSP 在源码中已经内置了一个 ninja 执行文件,路径为:./prebuilts/build-tools/linux-x86/bin/ninja

我们先看看它的 help:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
➜  ~ ./prebuilts/build-tools/linux-x86/bin/ninja -h
usage: ninja [options] [targets...]

if targets are unspecified, builds the '...

剩余内容已隐藏

查看完整文章以阅读更多