m:编译整个安卓系统

makes from the top of the tree

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

builds all of the moudles in the current directory

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

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

builds all of the moudles in the supplies directory

mmma:指定目录下新增或删除文件后,可以用mmma重新编译。 // 未全编译的情况系下,可以使用该命令单编译模块

mmm命令 的编译过程:

build/core/main.mk(是Android编译系统的入口文件)

->build/core/config.mk(会定好编译类型和目标文件)

->build/core/definitions.mk(定义在编译过程中用到的宏)

->ONE_SHOT_MAKEFILE->build/core/package.mk(编译Apk库文件)

->build/core/java_library.mk(编译Java库文件)

->build/core/static_java_library.mk(编译Java静态库文件)

->build/core/shared_library.mk->build/core/dynamic_library.mk->build/core/binary.mk->build/core/base_rules.mk

( 计算一些基本变量的值,并创建一些基本的依赖规则)

->build/core/static_library.mk(编译.a静态库文件)

->build/core/executable.mk(编译可执行文件)

->build/core/prebuilt.mk(编译已经预编译好的第三方库文件)

->build/core/Makfile(有system.img、boot.img、recovery.img等镜像文件生成规则)

环境变量ONE_SHOT_MAKEFILE中存放要编译模块的Android.mk的文件路径,如果环境变量值为空,表示执行的是m或者make命令,会对Android源代码中的所有模块进行编译。

mm、mmm是类似的,都是用来编译某些模块。

使用这些编译命令,首先需要在Android根目录下配置环境

#source  build/envsetup.sh         要确保当前根目录下有envsetup.sh脚本文件
#lunch ...                         对工程的选择
#cd (要编译模块所在的目录)
#mm(mma、mmm、mmma) -B -j2  2>&1    开始编译模块
注:-B表示编译模块的所有文件,-j2表示编译的时候开启两个线程,2>&1表示将错误切换到输出(输入为0,输出为1,错误为2)。  
   envsetup.sh脚本文件里包含vendorsetup.sh 、lunch、 m mm mmm的定义

mmm 和 mm 区别:

mmm package/apps/DeskClock

cd package/apps/DeskClock ,然后再mm

转载于:https://www.cnblogs.com/onelikeone/p/9309238.html

Android 编译时:m、mm、mmm、mma、mmma的区别相关推荐

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

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

  2. 【错误记录】Android 编译时技术报错 ( 注解处理器 process 方法多次调用问题 )

    文章目录 一.报错信息 二.问题分析 三.解决方案 注解处理器 AbstractProcessor 中的 process 方法可能会调用多次 , 在生成代码时 , 一定要注意 , 检测到 注解节点 后 ...

  3. 【错误记录】Android 编译时技术版本警告 ( 注解处理器与主应用支持的 Java 版本不匹配 )

    文章目录 一.报错信息 二.问题分析 三.解决方案 一.报错信息 在使用 Android 编译时技术 , 涉及 编译时注解 , 注解处理器 ; 开发注解处理器后 , 编译报如下警告 ; 该警告不会影响 ...

  4. android编译时注解,Android编译时注解框架系列2-Run Demo

    概述 先讲一下编写<Android编译时注解框架>的初衷吧,APT其实并不难,可以说是简单且高效,但关于APT的资料却并不多,甚至很多人都不知道这么一个技术.国内关于APT的博客屈指可数, ...

  5. Android编译时注解处理器

    Java注解处理器 Android 如何编写基于编译时注解的项目 Java编译时注解处理器(APT)详解 Android APT 系列 (一):APT 筑基之反射 Android APT 系列 (二) ...

  6. android编译时忽略某些error

    Android在编译时可能会遇到一些无关紧要的error,我们可以通过修改编译选项忽略这种错误. 比如: error: unused parameter 's' [-Wunused-parameter ...

  7. android编译时出现cannot find symbol

    添加了一个模块,编译时出现cannot find symbol错误: packages/apps/SignTestApp/src/com/example/signmain/Signmain.java: ...

  8. android 编译时解析xml布局,android – 在xml布局中引用build.gradle versionName属性

    根据 http://tools.android.com/tech-docs/new-build-system你可以直接从毕业生创造资源,所以放 android { ... defaultConfig ...

  9. Android编译时出现Unable to execute dex: Multiple dex files define Lcom...

    声明:本博客为原创博客,未经允许,不得转载! 中午从SVN Update项目代码之后,对Project进行Refresh之后进行编译,却总是提示"Unable to execute dex: ...

最新文章

  1. Double Precision Format(DPF)
  2. Android N Display Size
  3. 基于以太坊网络的智能合约开发、部署和测试(入门)
  4. eclipse中js文件报missing semicolon
  5. pdf上传及预览;file上传pdf文件及预览;vue上传pdf文件及预览;vue-pdf预览pdf文件
  6. python创建数据库计算机积极拒绝、无法连接_Python3 请求网页源码 目标计算机积极拒绝,无法连接...
  7. 分布式系统面试 - 幂等性设计
  8. 生成二维码并以图片格式下载-qrcodejs2
  9. Dell服务器通过IDRAC9收集TSR日志排查故障
  10. HTML 动画(一)
  11. 企业IT基础架构设计概要
  12. 你们让我推荐的营销管理书籍找到了!
  13. Spring整合axis2
  14. Bypass一款不错的分流抢票助手工具
  15. vue项目,引入插件element ui 样式不生效
  16. 与Anthony Baldino一起塑造声音
  17. 网易2018校园招聘:游历魔法王国 [python]
  18. 移动4G DTU_联通4G DTU_电信4G DTU
  19. 天星数科首页CSS布局回顾
  20. cover letter and response letter

热门文章

  1. 扫地机器人狗毛_扫地机器人:我是清理狗毛的!不是清理狗屎的!
  2. linux 车载视频监控,基于Linux平台车载视频监控系统研发-计算机科学与技术专业论文.docx...
  3. Redis set 类型操作及常用命令
  4. 像素/厘米与像素/英寸区别_像素/体素艺术入门指南
  5. 极端原理_为极端而设计
  6. 聊聊 computed 影响性能的场景
  7. SparkSQL 之 Shuffle Join 内核原理及应用深度剖析-Spark商业源码实战
  8. GreenPlum数据库故障恢复测试
  9. HTML5_02之视频、音频、Canvas
  10. 图片处理--熔铸特效