如何有效地构建AOSP(棉花糖)?

时间:2016-01-20 18:32:55

标签: android makefile android-source android-build

在构建Lollipop时,我可以通过运行来编译我的更改:

make clean-framework clean-services clean-services.core services.core services framework && make snod

然而,这对Marshmallow来说并不可靠。有时它可以工作,有时我的更改不会被编译。我也看到这产生了一个无法启动的构建,迫使我做了一个完整的make -j8,这需要我的机器上将近一个小时。

我错过了新的构建目标吗?非常感谢任何建议。

感谢。

1 个答案:

答案 0 :(得分:0)

部分构建无法启动的原因是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,则设备在闪存后需要花费相当长的时间(很容易超过一小时),因为它必须首先优化所有内容。