如何有效地构建 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
,设备在您刷入之后将需要很长时间(很容易超过一个小时)才能启动,因为它必须首先优化所有内容。
构建 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
,设备在您刷入之后将需要很长时间(很容易超过一个小时)才能启动,因为它必须首先优化所有内容。