我正在使用Android Opensource项目。除了构建时间之外,它还顺利。我只在它附带的模拟器上使用AOSP,所以我通常会这样做
. build/environment.sh
lunch aosp_arm-eng
make -j4
每次修改以重建aosp。
问题是,这似乎是对整个AOSP的完全重建,无论已经建立什么或我修改了什么。如果我只对ART进行微小的改动,它会重建所有内容,这需要几个小时。
现在我的问题是 - 如何避免这种情况?根据我的理解,make应该自己弄清楚重建需要什么,什么不需要。正确?
也许我每次都不应该吃午饭?我还可以尝试/做什么?
注意:
答案 0 :(得分:0)
我假设您在art
文件夹中进行了修改。要仅构建art
项目,您应该使用以下命令集(在第一次构建之后):
source build/envsetup.sh
lunch aosp_arm-eng
mmm art
此命令应重新编译您的更改(有关命令的详细信息,请参阅http://elinux.org/Android_Build_System)。但是,因为所有其他应用程序和框架都依赖于运行时环境,所以AOSP可能需要在您对艺术进行更改后重新编译所有依赖项。在这种情况下,你需要重新编译它们(我在使用Dalvik之前遇到了同样的问题,但我没有用艺术验证这一点)。
答案 1 :(得分:0)
我认为您需要启用ccache。为此运行以下命令
$ export USE_CCACHE=1
$ export CCACHE_DIR=/home/itc/.ccache // this is the path of your ccache dir
$ prebuilts/misc/linux-x86/ccache/cache -M 50G // this for allocate ccache size
在此之后,您应该首次运行干净的构建。 下一个版本只考虑你改变的代码并使用prebuild
我需要一个干净的构建,你必须运行
$ make clean
$ make clobber
如果您需要更改核心库中的任何文件 跑
$ make installclean
然后像往常一样
$ . build/envsetup.sh && lunch aosp_arm-eng && make -j16