Android中m、mm、mmm、mma、mmma的区别

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根目录下配置环境

[plain] view plain copy

  1. #source  build/envsetup.sh         要确保当前根目录下有envsetup.sh脚本文件

[plain] view plain copy

  1. #choose...                         对环境的选择

[plain] view plain copy

  1. #cd (要编译模块所在的目录)

[plain] view plain copy

  1. #mm(mma、mmm、mmma) -B -j2  2>&1    开始编译模块

[plain] view plain copy

  1. 注:-B表示编译模块的所有文件,-j2表示编译的时候开启两个线程,2>&1表示将错误切换到输出(输入为0,输出为1,错误为2)。
  1. envsetup.sh脚本文件里包含vendorsetup.sh 、lunch、 m mm mmm的定义
时间: 2024-08-25 02:38:25

Android中m、mm、mmm、mma、mmma的区别的相关文章

android 中theme.xml与style.xml的区别

from://http://liangoogle.iteye.com/blog/1848448 android 中theme.xml与style.xml的区别: 相同点: 两者的定义相同. <resources> <stylename="theme"parent="android:Theme.Black"> <itemname="android:windowNoTitle">true< /item>

android 中 任务、进程和线程的区别

任务.进程和线程 关于Android中的组件和应用,之前涉及,大都是静态的概念.而当一个应用运行起来,就难免会需要关心进程.线程这样的概念.在Android中,组件的动态运行,有一个最与众不同的概念,就是Task,翻译成任务,应该还是比较顺理成章的. Task的介入,最主要的作用,是将组件之间的连接,从进程概念的细节中剥离出来,可以以一种不同模型的东西进行配置,在很多时候,能够简化上层开发人员的理解难度,帮助大家更好的进行开发和配置. 任务 在SDK中关于Task(guide/topics/fu

ANDROID 中UID与PID的作用与区别

PID:为Process Identifier, PID就是各进程的身份标识,程序一运行系统就会自动分配给进程一个独一无二的PID.进程中止后PID被系统回收,可能会被继续分配给新运行的程序,但是在android系统中一般不会把已经kill掉的进程ID重新分配给新的进程,新产生进程的进程号,一般比产生之前所有的进程号都要大. UID:一般理解为User Identifier,UID在linux中就是用户的ID,表明时哪个用户运行了这个程序,主要用于权限的管理.而在android 中又有所不同,因

Android 中pid与uid的作用与区别

PID:为Process Identifier, PID就是各进程的身份标识. 程序一运行系统就会自动分配给进程一个独一无二的PID.进程中止后PID被系统回收,可能会被继续分配给新运行的程序,但是在android系统中一般不会把已经kill掉的进程ID重新分配给新的进程,新产生进程的进程号,一般比产生之前所有的进程号都要大. UID:一般理解为User Identifier,UID在linux中就是用户的ID. 表明时哪个用户运行了这个程序,主要用于权限的管理.而在android 中又有所不同

Android中UID和PID的作用和区别

PID:为Process Identifier, PID就是各进程的身份标识,程序一运行系统就会自动分配给进程一个独一无二的PID.进程中止后PID被系统回收,可能会被继续分配给新运行的程序,但是在android系统中一般不会把已经kill掉的进程ID重新分配给新的进程,新产生进程的进程号,一般比产生之前所有的进程号都要大. UID:一般理解为User Identifier,UID在linux中就是用户的ID,表明时哪个用户运行了这个程序,主要用于权限的管理.而在android 中又有所不同,因

Android中px、dp、sp的区别

px: 即像素,1px代表屏幕上一个物理的像素点: px单位不被建议使用,因为同样100px的图片,在不同手机上显示的实际大小可能不同,如下图所示(图片来自android developer guide,下同). 偶尔用到px的情况,是需要画1像素表格线或阴影线的时候,用其他单位如dp会显得模糊. dp: 这个是最常用但也最难理解的尺寸单位.它与“像素密度”密切相关,所以首先我们解释一下什么是像素密度.假设有一部手机,屏幕的物理尺寸为1.5英寸x2英寸,屏幕分辨率为240x320,则我们可以计算

Android中theme.xml与style.xml的区别

一.相同点 两者的定义相同.继承方式也相同 <?xml version="1.0" encoding="utf-8"?> <resources> <!-- 继承方式 1.parent 通过parent属性用来继承Android已经定义好的style 比如:parent="android:Theme.Dialog" 或 parent="@android:style/Theme.Dialog" 2.继

闲谈 Android 中的 @ 和 ?符号的引用区别

在 Android 项目开发中,我们经常会用 "@" 或者 "?" 符号去引用系统或者我们应用内添加的资源,这两种符号的引用有什么区别呢,"?attr/" 与 "?android:attr/" 之间又有怎样的不同呢?本文我们不妨闲聊一下. "@" 与 "?" 符号的引用在使用时都有一个规范的格式:"@[+][package:]type:name","?[pa

Android中View窗体getWidth和getMeasuredWidth的区别

今天在研究自定义listview的下拉刷新的效果,想移植到项目需求中,再看自定义源码时发现了一个问题就是getWidth和getMeasuredWidth两个方法有什么区别,求教万能的百度,经调研发现这两个方法的不同点是,getWidth获得的是当前View的可视的宽度,但是向下拉刷新这样的需求,那个头部提示的View是隐藏起来的这样用getWidth就获取不到View的宽度了,所以采取getMeasuredWidth的方式获得.getMeasuredWidth的方法代表了可以获取View的可视

Android中Activity中使用ListView与ListActivity中使用ListView的区别与联系

Android中Activity与ListActivity使用ListView的区别与联系: 1. Activity的使用: (1).概念: 每一个activity对应于一个显示界面,每一个activity都是独占整个屏幕的. (2).步骤: A:xml布局中,ListView标签id可以任意取值如: <ListView android:id="@+id/lv_show" android:layout_width="match_parent" android: