博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android中m、mm、mmm、mma、mmma的区别
阅读量:7219 次
发布时间:2019-06-29

本文共 1315 字,大约阅读时间需要 4 分钟。

m:编译整个系统

     makes from the top of the tree

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

         builds all of the moudles in the current directory

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

mmm:编译指定路径下的模块,指定的路径下面需要有.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(编译库文件)

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

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

转载地址:http://xlqym.baihongyu.com/

你可能感兴趣的文章
深度理解递归+递归经典问题实战
查看>>
linux命令 vim
查看>>
http://natesbox.com/blog/vmware-esx-monitoring-with-cacti/
查看>>
hhh
查看>>
awastas 日志分析工具搭建文档
查看>>
PL/SQL Developer 远程连接Oracle数据库
查看>>
andriod错误
查看>>
[学习笔记]mysql主从配置
查看>>
NFS 排错
查看>>
我的友情链接
查看>>
Myeclipse中使用正则表达式查找替换
查看>>
新手学习数据结构与算法---快速排序算法
查看>>
iptables本地远程桌面转发
查看>>
spring mvc 3 注解任务
查看>>
我的友情链接
查看>>
合作现裂痕 苹果iPhone下半年或被联通“冷处理”
查看>>
JavaScript ES6中export及export default的区别
查看>>
管理进程和计划任务
查看>>
在win7系统下安装ubuntu12.04
查看>>
友坚4412开发板怎样在source insight中使汇编代码高亮显示?
查看>>