Android Opensource项目的增量构建

时间:2017-01-14 00:25:23

标签: android android-source

我正在使用Android Opensource项目。除了构建时间之外,它还顺利。我只在它附带的模拟器上使用AOSP,所以我通常会这样做

. build/environment.sh
lunch aosp_arm-eng
make -j4

每次修改以重建aosp。

问题是,这似乎是对整个AOSP的完全重建,无论已经建立什么或我修改了什么。如果我只对ART进行微小的改动,它会重建所有内容,这需要几个小时。

现在我的问题是 - 如何避免这种情况?根据我的理解,make应该自己弄清楚重建需要什么,什么不需要。正确?

也许我每次都不应该吃午饭?我还可以尝试/做什么?

注意:

  • Ubuntu 16.04,gcc 5.4.0(默认值),x64
  • Nougat的最新7.x标签(7.1.1)
  • 我更改了android运行时
  • ccache配置&运行

2 个答案:

答案 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