如何有效地构建 AOSP (Marshmallow)?

How can I build AOSP (Marshmallow) efficiently?

构建 Lollipop 时,我可以通过 运行:

编译我的更改
make clean-framework clean-services clean-services.core services.core services framework && make snod

然而,这对 Marshmallow 来说并不可靠。有时它有效,而其他时候我的更改不会被编译。我还看到这会产生无法启动的构建,迫使我做一个完整的 make -j8,这在我的机器上花费了将近一个小时。

我是否缺少新的构建目标?非常感谢任何建议。

谢谢。

我的部分构建无法启动的原因是 dex pre-optimization。启用 dexpreopt 后,您无法重新编译系统映像的某些部分,因为它们是字节对齐的,并且在编译时一起优化。禁用 dexpreopt 并执行 make clobber && make -j6 后,我能够毫无问题地进行部分构建。

要禁用 dexpreopt,请在​​您的终端中设置以下变量:

export WITH_DEXPREOPT=false
export DISABLE_DEXPREOPT=true

提示:将以上内容添加到您的 build/envsetup.sh.bashrc,这样您就不必每次都记住。

提示 2:还有一个 DONT_DEXPREOPT_PREBUILTS,但我从来没有遇到过问题,所以我将其设置为默认值,即 false。如果您将此变量设置为 true,设备在您刷入之后将需要很长时间(很容易超过一个小时)才能启动,因为它必须首先优化所有内容。