linux上mmm和mm指令的区别

mmmmm指令在Android源码编译过程中扮演着重要角色,它们都属于Android构建系统(Build System)提供的命令集合,但用途略有不同。以下是它们之间的主要区别:

1. 功能和用途

  • mmm(make module matches):该命令用于编译指定路径下的模块。它允许用户从任何位置执行命令,并指定要编译的模块路径作为参数。这意味着用户无需先切换到模块所在的目录,即可进行编译。mmm命令会查找指定路径下的Android.mkBlueprints文件,并编译该路径下定义的模块及其依赖项。
  • mm(make module):该命令用于编译当前目录下的模块。当使用mm时,它会查找当前目录对应的Android.mkBlueprints文件,并仅编译该目录下定义的模块及其依赖项。这要求用户已经处于要编译的模块目录中。

2. 工作目录

  • mmm:不依赖于当前工作目录,允许用户从源码树的任何位置执行命令,并指定要编译的模块路径。
  • mm:假定用户已经处于要编译的模块目录中,因此其操作范围局限于当前目录及其子目录。

3. 使用场景

  • mmm:适用于需要从不同位置编译多个不同模块的情况,或者当用户不想切换到模块所在目录时。
  • mm:适用于用户已经在模块目录下,并希望快速编译该模块及其依赖项的情况。

4. 编译范围

无论是mmm还是mm,它们都只会编译指定的模块和必需的依赖项,而不会编译整个Android系统。这样可以节省编译时间,因为不需要重新编译整个系统的所有组件。

5. 示例

  • mmm示例

    mmm development/ky_ai/arnoldTestNdkDemo/SimpleJNI

    此命令会编译位于development/ky_ai/arnoldTestNdkDemo/SimpleJNI目录下的模块及其依赖项。

  • mm示例
    用户首先需要切换到模块所在的目录,例如:

    cd development/ky_ai/arnoldTestNdkDemo/SimpleJNI
    mm

    然后执行mm命令,这将编译当前目录下的模块及其依赖项。

结论

mmmmm指令在Android源码编译中都是有用的工具,它们的主要区别在于工作目录和灵活性。mmm提供了更大的灵活性,允许用户从任何位置编译模块,而mm则更适用于用户已经在模块目录下的情况。这两个命令都旨在提高编译效率,通过仅编译指定的模块和依赖项来减少编译时间。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 13:24:02       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 13:24:02       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 13:24:02       57 阅读
  4. Python语言-面向对象

    2024-07-12 13:24:02       68 阅读

热门阅读

  1. docker 常用命令

    2024-07-12 13:24:02       24 阅读
  2. Redis的五种数据类型 #系统架构设计师#

    2024-07-12 13:24:02       24 阅读
  3. netstat 和ss命令

    2024-07-12 13:24:02       21 阅读
  4. 标准盒模型和怪异盒子模型的区别

    2024-07-12 13:24:02       22 阅读
  5. flink 配置表

    2024-07-12 13:24:02       30 阅读
  6. 无障碍快捷方式图标

    2024-07-12 13:24:02       25 阅读
  7. 每天一个数据分析题(四百二十三)- 置信区间

    2024-07-12 13:24:02       18 阅读