Android编译中m、mm、mmm的区别

m、mm、mmm命令可以让你只编译单独模块,而不用费大量的时间比编译整个Android系统。

要使用m、mm、mmm命令,需要在源码目录下执行如下命令。(点与build之间是有空格的)

[java] view plaincopy

  1. . build/envsetup.sh

否则会提示命令找不到

[java] view plaincopy

  1. No command 'mmm' found, did you mean:
  2. Command 'mwm' from package 'motif-clients' (multiverse)
  3. Command 'mwm' from package 'lesstif-bin' (universe)
  4. Command 'mgm' from package 'mgm' (universe)
  5. Command 'rmm' from package 'nmh' (universe)
  6. Command 'rmm' from package 'mailutils-mh' (universe)
  7. Command 'mmv' from package 'mmv' (universe)
  8. Command 'mmd' from package 'mtools' (main)
  9. Command 'mmg' from package 'mkvtoolnix-gui' (universe)
  10. Command 'mm' from package 'mountmanager' (universe)
  11. Command 'mm' from package 'multimail' (universe)

可以使用help来检示有哪些指令可以使用

[plain] view plaincopy

  1. Invoke ". build/envsetup.sh" from your shell to add thefollowing functions to your environment:
  2. - croot:   Changes directory to the top of the tree.
  3. - m:       Makesfrom the top of the tree.
  4. - mm:      Builds all of the modules in the currentdirectory.
  5. - mmm:     Builds all of the modules in the supplieddirectories.
  6. - cgrep:   Greps on all local C/C++ files.
  7. - hgrep:   Greps on all local C/C++ header files.
  8. - jgrep:   Greps on all local Java files.
  9. - mkgrep:  Greps on all local make files.
  10. - rcgrep:  Greps on all local .rc files.
  11. - resgrep: Greps on all local res/*.xml files.
  12. - shgrep:  Greps on all local .sh files.
  13. - godir:   Go to the directory containing a file.

m:编译整个安卓系统

mm:编译当前目录下的模块,当前目录下需要有Android.mk这个makefile文件,否则就往上找最近的Android.mk文件。

mma:当前目录新增或删除文件后,可以用mma重新编译。

mmm:编译指定路径下的模块,指定的路径下面需要有Android.mk这个makefile文件

其中对模块的编译有辅助说明的是tapas、m、mm、mmm这几个指令

其中mmm后面要跟模块的根目录,不是所有的目录下都有子模块,那些含有Android.mk档案目录才是模块的根目录,模块名可以从Android.mk的LOCAL_MODULE或者LOCAL_PACKAGE_NAME变数中得到。

1、单独编译某模块,需要在mmm后面指定模块路径,例如编译ffmpeg 中的libjnivideo

[java] view plaincopy

  1. conowen@ideal:~/conowen_android/android4.0$ mmm frameworks/base/native/video/jni
  2. ============================================
  3. PLATFORM_VERSION_CODENAME=REL
  4. PLATFORM_VERSION=4.0.1
  5. TARGET_PRODUCT=full
  6. TARGET_BUILD_VARIANT=eng
  7. TARGET_BUILD_TYPE=release
  8. TARGET_BUILD_APPS=
  9. TARGET_ARCH=arm
  10. TARGET_ARCH_VARIANT=armv7-a
  11. HOST_ARCH=x86
  12. HOST_OS=linux
  13. HOST_BUILD_TYPE=release
  14. BUILD_ID=ITL41D
  15. ============================================

2、或者可以跳转到你想编译模块相对应目录下执行“mm”命令。

就可以编译单独的模块,事实上,这个命令与mmm命令没有本质的区别。

3、用 m 编译全部的模块

[java] view plaincopy

  1. conowen@ideal:~/conowen_android/android4.0$ m

4、你也可以在src目录下直接执行

[java] view plaincopy

  1. conowen@ideal:~/conowen_android/android4.0$ make module_name    

Android编译中m、mm、mmm的区别相关推荐

  1. Android源代码编译命令m/mm/mmm/make分析

    Android源代码编译命令m/mm/mmm/make分析 2014-03-10     我来说两句    来源:Android源代码编译命令m/mm/mmm/make分析   收藏    我要投稿 ...

  2. fileoutputstream路径 android,Android编程中FileOutputStream与openFileOutput()的区别分析

    本文实例分析了Android编程中FileOutputStream与openFileOutput()的区别.分享给大家供大家参考,具体如下: openFileOutput() 首先给大家介绍使用文件如 ...

  3. android MotionEvent中getX()和getRawX()的区别

    今天,讲讲触摸时间里  getX()和getRawX()的区别. 如上图所示: getRowX:触摸点相对于屏幕的坐标 getX: 触摸点相对于按钮的坐标 getTop: 按钮左上角相对于父vie ...

  4. Android布局中margin与padding的区别

    我们知道Android开发不仅仅有代码的动态控制,而且还涉及到布局的静态搭建(xml).几乎在每一个xml文件中,我们总会看到margin和padding这两个属性,今天让我们初步探究一下它们之间的区 ...

  5. android开发中的 Activity 与 Context 区别与联系

    Context 是 Application /Activity /Service的基类 Intent(Context , Class); Activity中的上下文Context是随着活动的产生而产生 ...

  6. Android工程中三种库的区别:Private Libraries、Referenced Libraries、Dependency Libraries

    转自:https://blog.csdn.net/mybook1122/article/details/46554933 一.v4.v7.v13的作用和用法 1.Android Support V4, ...

  7. Android 开发中Layout_Margin与padding的区别以及Layout_gravity与gravity的区别

    Layout_Margin与padding的区别以及Layout_gravity与gravity的区别 平时开发中这几个属性是我们经常使用的几个属性,偶尔脑子一糊涂,就容易弄混这些属性,下面,我就仔细 ...

  8. make m mm mmm 的区别

    m,其实就是对make 进行了简单的封装. 1. mm和mmm命令是类似的,用来编译某些模块.2. m命令用来编译所有模块.

  9. Android系统中Parcelable和Serializable的区别

    进行Android开发的时候,我们都知道不能将对象的引用传给Activities或者Fragments,我们需要将这些对象放到一个Intent或者Bundle里面,然后再传递. 通过Android的A ...

最新文章

  1. python shell背景颜色改变_科学网—Python Shell Background Color - 李旭的博文
  2. 电子小帮手电路中电源开关电路分析
  3. 《JS权威指南学习总结--开始简介》
  4. iOS10 UI教程层次结构的事件
  5. 机器学习之路:python k近邻回归 预测波士顿房价
  6. MySQL服务MySQL+MHA高可用服务集群搭建
  7. Python机器学习:逻辑回归005决策边界
  8. 第二届大数据世界论坛 聚焦行业需求
  9. 华为网络安全工程师:HCNA-Security(H12-711)题型解析(第一部分)-马青-专题视频课程...
  10. 文档加密图纸加密方案之沙盒
  11. python控制手机模拟器_AppiumDesktop控制手机和安卓模拟器(附视频)
  12. 服务器芯片成本,2021年全球服务器行业成本结构及出货量分析[图]
  13. php 汉字转拼音 扩展,PHP中文转拼音扩展
  14. c语言轮流闪烁有1秒的接线图,LED彩灯PLC编程接线及梯形图
  15. 音频剪辑软件分享,教你快速剪辑音频
  16. 微信外卖小程序 怎么计算与客户的距离_3分钟搞定微信小程序类美团用户商家距离计算...
  17. torch.nn.Embedding的使用
  18. Java 43---SpringMVC框架(1)
  19. 【软切换】WCDMA软切换技术的仿真
  20. 塔防游戏的技术总结--行为树

热门文章

  1. Flutter 日期转换
  2. word在试图打开文件时遇到错误,一种解决办法
  3. 修改Windows的Internet时间服务器使时间同步
  4. Effective C++ 条款13 以对象管理资源
  5. 自学Vue开发Dapp去中心化钱包(一)
  6. armbian 斐讯n1_树莓派/斐讯N1/ARMBIAN/安装HOME ASSISTANT
  7. 程序从源代码到可执行程序
  8. 写代码时发现……还是Python牛逼
  9. python 发票信息提取_Python提取发票内容保存到Excel.md
  10. Unity获取组件的几种方式(拖拽法、标签法、名字法)