怎么办android mm干净?

her*_*rtD 22 android makefile android-build

我正在使用该mm命令在Android源代码中构建自定义模块.

当我跑步时mm clean,似乎整个项目都被清理干净了.

如何将清洁限制在当前模块中?

Rau*_*ulp 35

使用mm -B,它将重建所有,相当于清洁然后制作.

  • 我试过做'mm -B`但得到'未知选项:-B` - 在AOSP 8.1上有什么改变? (5认同)

小智 8

另一种没有mm的方法是make clean-<target name>从Android源代码中提供.

同样,您可以单独构建所需的模块 make <target name>

  • 感兴趣的读者注意:这不是一回事.来自root的`make`将跟踪整个树中的所有构建文件(*.mk).来自子目录的`mm`只会跟踪该目录中的构建文件.这是一个重要的区别,因为遍历所有make文件非常耗时且有时容易出错. (3认同)

Pab*_*Sun 5

在旧的基于 make 的 AOSP 构建系统上,使用

mm -B
Run Code Online (Sandbox Code Playgroud)

重建模块。

在较新的基于 Ninja+Soong 的 AOSP 构建系统上,似乎-B不再有效。它给出了错误Unknown option: -B

一种可能的替代方法是使用NINJA_ARGS环境变量将额外的 Ninja 参数传递给底层构建引擎。

例如,以下命令删除所有输出和中间文件:

NINJA_ARGS="-t clean" mm
Run Code Online (Sandbox Code Playgroud)

在这种情况下,clean是 Ninja 构建系统的额外工具。有关其他工具,请参阅https://ninja-build.org/manual.html#_extra_tools

需要注意的一件事是,clean工具似乎清除了模块的所有依赖项,而不是模块本身。我还没有找到一种方法来分配规则来将干净的范围仅限于模块。

参考资料:https : //android.googlesource.com/platform/build/soong/+/HEAD/docs/best_practices.md