【问题标题】:How to speed up android build system如何加快android构建系统
【发布时间】:2014-08-12 00:45:49
【问题描述】:

一般来说,除了 -jN 选项之外,是否有任何步骤/技巧可以加快 android 构建速度。 即使是内核中的单行更改,运行“make bootimage”,android 构建系统也会扫描所有 Android.mk。至少有什么方法可以跳过这个?

【问题讨论】:

  • 你试过使用'mmm'命令吗?
  • mmm 只能通过传递路径作为参数来编译单个库/二进制文件,AFAIK,它不能直接编译构建目标

标签: linux-kernel android-build android-kernel


【解决方案1】:

这里你可以找到加速方法的总结:http://oldwiki.cyanogenmod.org/wiki/Howto:_Speed_up_building

使用 SSD 和强大的 16GB RAM linux 机器(不是 VM)。

还有一个非常快的 RAM 驱动器的想法,但我不确定它是否可能与 android 构建所需的空间量有关。

【讨论】:

    【解决方案2】:

    通过参考build/core/Makefile,可以看出,我们可以通过在构建Android时传递SHOW_COMMANDS=1来查看构建时运行的命令序列,如下所示,

    SHOW_COMMANDS=1 V=1 make bootimage -j1 -n >bootimage.txt 
    

    从中我们可以提取我们案例所需的命令,然后我们可以将其放入脚本中进行构建。例如,bootimage.sh

    【讨论】:

      【解决方案3】:

      正如 Balamurugan A 的回答所说,

      如果你调用make target(module name/droid),Android编译系统会扫描所有的Android.mk来加载和搜索目标。这是make系统需要做的找到所有目标以进行后续编译。

      如果只想编译一个模块,可以使用mm/mmm。而如果你想提高系统的编译速度,可以打开CCache

      【讨论】:

      • ,是的。 “如果调用 make target(module name/droid),Android 编译系统将扫描所有 Android.mk 以加载和搜索目标”。如何避免扫描?而且,我认为在 mmm 和 CCache 上,skoperst 已经提出了相同的建议,我也回复了他。
      • @BalamuruganA 感谢您的建议。在这里,我想提供更多关于 CCache 的信息。 :-)
      【解决方案4】:

      仅仅为了构建内核,这为我在 Android L、M、N 中节省了大量时间:-

      m -j8 ONE_SHOT_MAKEFILE=build/target/board/Android.mk bootimage

      【讨论】:

        猜你喜欢
        • 2015-10-04
        • 2012-09-20
        • 1970-01-01
        • 2012-11-27
        • 2011-06-11
        • 1970-01-01
        • 2012-02-24
        • 1970-01-01
        • 2014-05-21
        相关资源
        最近更新 更多