【问题标题】:How to speed up mm in module making of AOSPAOSP模块制作中如何加快mm
【发布时间】:2011-11-24 02:59:04
【问题描述】:

我正在开发来自 android 开源项目的联系人应用程序。我的安卓版本是 2.3.5_r1。并且使用mm制作模块,但是制作速度很慢,所以我怀疑是否有方法可以加快制作速度。

PS:实际上,如果我在 Eclipse 中编译这个模块,我会加快一点,因为 Eclipse 的自动构建功能。但我不喜欢使用 eclipse,所以放弃吧。

【问题讨论】:

    标签: android compilation makefile android-source


    【解决方案1】:

    例如,我在您的 Android 项目的根文件夹中使用以下命令:

    mmm frameworks/base snod -j4
    

    而且我认为这是最好的选择。试试看,但用您的项目名称替换frameworks/base(Android.mk 存储的相对路径)。

    【讨论】:

    • 并设置CCACHE=1开启缓存也可以用来加速构建。
    • 这是值得怀疑的,因为 CCACHE 在计算机上保留了大量空间,如果您只是构建一个项目,我看不出启用此参数有任何合理的速度提升。
    • 这应该是 a) AOSP 指南上公认的答案 b)。
    【解决方案2】:

    按照对您来说成本最低的顺序:

    • 别那么干净。允许 makefile 确定要重建的内容。
    • 使用 CCACHE export USE_CCACHE=1。您只有在多次重建后才可能看到 CCACHE 的效果。如果您的项目很大,请设置更高的 CCACHE 大小,例如10GB${ANDROID_DIR}/prebuilt/linux-x86/ccache/ccache -M 10G
    • 获得更好的处理器并使用更高的 -j 参数运行

    【讨论】:

    • 您几乎列出了所有加快构建速度的方法。谢谢 aultbot。
    • 如果您想加快重建整个 AOSP 而不仅仅是单个项目,我会添加更多 RAM 8 - 24GB。你也需要一个 10-100GB 的 CCACHE(重建所有配置需要 100GB)
    • 通过您的计算机构建整个 AOSP 需要多少时间。
    • 使用 -j8 的特定目标不到半小时。处理器 = i5-2500K,8 GB RAM
    • 我的电脑需要两到三个小时 T_T。
    【解决方案3】:

    1。构建模块 + 依赖项

    mmmammm 慢,因为前者确保模块的所有依赖项都满足,如果不满足,它也会编译它们。因此,最初不是完整的make 命令,而是使用以下命令构建与您感兴趣的模块相关的依赖项:

    mmma -j4 adir/yourmoduledir
    

    2。构建模块

    既然已经满足了依赖关系,请继续只重新编译您感兴趣的模块。跳过检查依赖关系可以节省宝贵的时间。但是,您使用的目录可能包含多个编译目标。要编译单个目标,请使用以下内容:

    mmm -j4 adir/yourmoduledir:moduletargetname
    

    示例

    构建库

    一次构建库及其所有依赖项:
    mmma -j4 art/runtime
    
    修改libart的代码,快速构建:
    mmm -j4 art/runtime:libart
    

    与 Yury 的方法相比,您将获得一半的编译时间,例如将完全省略 libart (libartd) 的调试风格。

    进一步加速?

    您当然应该按照aultbot 的建议启用缓存。

    此外,根据您感兴趣的模块,您可能希望通过在 makefile 中挖掘来禁用编译目标。例如libart 是为主机和目标编译的。如果您修改 makefile 中的变量可以强制编译 2 之一,节省您一半的时间。

    附加信息:

    【讨论】:

      【解决方案4】:

      我发现当我使用我的笔记本电脑 ssh 到我的台式电脑并构建模块时,我可以非常非常快速地构建它。我不知道为什么。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多