在基于AOSP的树中进行不必要的重建

时间:2019-02-23 15:07:55

标签: android build android-source ninja

我正在使用从供应商处收到的Android P树(基于AOSP)。

供应商搞砸了某个地方的构建依赖关系,这完全破坏了增量重建:在成功完成的“ make”要重建超过10000个目标之后,第二次执行“ make”。

我知道“ mmma this / dir && make snod”的所有技巧,但是在更改核心Java库时(特别是dex2oat不会为所有需要的目标执行),这不会给出正确的结果。要在更改核心Java库后获得正确的映像,至少需要执行“ make systemimage”。

我已经厌倦了等待无用的重建,并寻找一种实用的方法来定位/修复破坏的依赖关系。根据与其他供应商的以往经验,我知道可以正确设置依赖关系,以便增量构建可以正常工作。

请问有人如何找到为什么要在AOSP构建系统中重建给定目标的任何提示?

看起来“忍者”工具应该能够说明为什么要重建,但是我有点想找出原因-鉴于AOSP中生成的.ninja文件超过700M,对于任何分析来说都太过分了手动操作,“ ninja -d解释”仅表示某些东西很脏,而没有说明原因。

0 个答案:

没有答案