通常,除了 -jN 选项之外,是否有任何步骤/技巧可以加快 android 构建速度。即使是内核中的单行更改,运行“make bootimage”,android 构建系统也会扫描所有 Android.mk。至少有什么方法可以跳过这个吗?
4 回答
通过参考 build/core/Makefile,我们可以看到在构建 Android 时通过传递 SHOW_COMMANDS=1 可以看到构建时运行的命令序列,如下所示,
SHOW_COMMANDS=1 V=1 make bootimage -j1 -n >bootimage.txt
从中我们可以提取我们案例所需的命令,然后我们可以将其放入脚本中进行构建。例如,bootimage.sh
在这里您可以找到加速方法的摘要:http://oldwiki.cyanogenmod.org/wiki/Howto: _Speed_up_building
使用 SSD 和强大的 16GB RAM linux 机器(不是 VM)。
还有 RAM 驱动器的想法,它非常快,但我不确定它是否可能与 android 构建所需的空间量有关。
正如 Balamurugan A 的回答所说,
如果调用make target(module name/droid)
,Android 编译系统将扫描所有 Android.mk 以查找加载和搜索目标。这是 make 系统需要做的找到所有目标以进行后续编译。
如果只想编译一个模块,可以使用mm/mmm
. 如果你想提高系统的编译速度,你可以打开CCache。
为了构建内核,这为我在 Android L、M、N 中节省了大量时间:-
m -j8 ONE_SHOT_MAKEFILE=build/target/board/Android.mk bootimage