Linux kernel 如何加快android构建系统
一般来说,除了-jN选项外,是否还有其他加快android构建的步骤/技巧。Linux kernel 如何加快android构建系统,linux-kernel,android-build,android-kernel,Linux Kernel,Android Build,Android Kernel,一般来说,除了-jN选项外,是否还有其他加快android构建的步骤/技巧。 即使对内核进行一行更改,运行“makebootmimage”,android构建系统也会扫描所有android.mk。有什么方法可以至少跳过这一步吗?在这里,您可以找到加速方法的摘要: 使用SSD和强大的16GB RAM linux机器(而不是VM) 还有一个想法是RAM驱动器速度非常快,但我不确定android构建所需的空间是否可能。通过参考build/core/Makefile,我们可以看到构建时运行的命令序列,在
即使对内核进行一行更改,运行“makebootmimage”,android构建系统也会扫描所有android.mk。有什么方法可以至少跳过这一步吗?在这里,您可以找到加速方法的摘要: 使用SSD和强大的16GB RAM linux机器(而不是VM)
还有一个想法是RAM驱动器速度非常快,但我不确定android构建所需的空间是否可能。通过参考build/core/Makefile,我们可以看到构建时运行的命令序列,在构建android时传递SHOW_commands=1,如下所示
SHOW_COMMANDS=1 V=1 make bootimage -j1 -n >bootimage.txt
从中,我们可以提取案例所需的命令,并将其放入脚本中进行构建。例如,bootimage.sh正如巴拉穆鲁甘A的回答所说 如果调用
生成目标(模块名/droid)
,Android编译系统将扫描所有Android.mk以加载和搜索目标。这是make系统需要做的事情,以找到后续编译的所有目标
如果只想编译一个模块,可以使用
mm/mmm
。如果您想提高系统的编译速度,可以打开CCache只构建内核,这为我在Android L、M、N中节省了大量时间:-
m-j8 ONE_SHOT\u MAKEFILE=build/target/board/Android.mk bootmimage
您是否尝试使用“mmm”命令?mmm通过将路径作为参数传递,只能编译单个libs/二进制文件,好的,它无法直接编译构建目标,是的。“如果您调用make target(模块名/droid),Android编译系统将扫描所有Android.mk以加载和搜索目标”。如何避免扫描?而且,我认为在mmm和CCache上,斯科佩斯特已经提出了同样的建议,我也回答了他。@BalamuruganA谢谢你的建议。在这里,我想提供更多关于CCache的信息。:-)