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根目录下配置环境
#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的区别相关推荐
- Android源代码编译命令m/mm/mmm/make分析
Android源代码编译命令m/mm/mmm/make分析 2014-03-10 我来说两句 来源:Android源代码编译命令m/mm/mmm/make分析 收藏 我要投稿 ...
- 【错误记录】Android 编译时技术报错 ( 注解处理器 process 方法多次调用问题 )
文章目录 一.报错信息 二.问题分析 三.解决方案 注解处理器 AbstractProcessor 中的 process 方法可能会调用多次 , 在生成代码时 , 一定要注意 , 检测到 注解节点 后 ...
- 【错误记录】Android 编译时技术版本警告 ( 注解处理器与主应用支持的 Java 版本不匹配 )
文章目录 一.报错信息 二.问题分析 三.解决方案 一.报错信息 在使用 Android 编译时技术 , 涉及 编译时注解 , 注解处理器 ; 开发注解处理器后 , 编译报如下警告 ; 该警告不会影响 ...
- android编译时注解,Android编译时注解框架系列2-Run Demo
概述 先讲一下编写<Android编译时注解框架>的初衷吧,APT其实并不难,可以说是简单且高效,但关于APT的资料却并不多,甚至很多人都不知道这么一个技术.国内关于APT的博客屈指可数, ...
- Android编译时注解处理器
Java注解处理器 Android 如何编写基于编译时注解的项目 Java编译时注解处理器(APT)详解 Android APT 系列 (一):APT 筑基之反射 Android APT 系列 (二) ...
- android编译时忽略某些error
Android在编译时可能会遇到一些无关紧要的error,我们可以通过修改编译选项忽略这种错误. 比如: error: unused parameter 's' [-Wunused-parameter ...
- android编译时出现cannot find symbol
添加了一个模块,编译时出现cannot find symbol错误: packages/apps/SignTestApp/src/com/example/signmain/Signmain.java: ...
- android 编译时解析xml布局,android – 在xml布局中引用build.gradle versionName属性
根据 http://tools.android.com/tech-docs/new-build-system你可以直接从毕业生创造资源,所以放 android { ... defaultConfig ...
- Android编译时出现Unable to execute dex: Multiple dex files define Lcom...
声明:本博客为原创博客,未经允许,不得转载! 中午从SVN Update项目代码之后,对Project进行Refresh之后进行编译,却总是提示"Unable to execute dex: ...
最新文章
- Double Precision Format(DPF)
- Android N Display Size
- 基于以太坊网络的智能合约开发、部署和测试(入门)
- eclipse中js文件报missing semicolon
- pdf上传及预览;file上传pdf文件及预览;vue上传pdf文件及预览;vue-pdf预览pdf文件
- python创建数据库计算机积极拒绝、无法连接_Python3 请求网页源码 目标计算机积极拒绝,无法连接...
- 分布式系统面试 - 幂等性设计
- 生成二维码并以图片格式下载-qrcodejs2
- Dell服务器通过IDRAC9收集TSR日志排查故障
- HTML 动画(一)
- 企业IT基础架构设计概要
- 你们让我推荐的营销管理书籍找到了!
- Spring整合axis2
- Bypass一款不错的分流抢票助手工具
- vue项目,引入插件element ui 样式不生效
- 与Anthony Baldino一起塑造声音
- 网易2018校园招聘:游历魔法王国 [python]
- 移动4G DTU_联通4G DTU_电信4G DTU
- 天星数科首页CSS布局回顾
- cover letter and response letter
热门文章
- 扫地机器人狗毛_扫地机器人:我是清理狗毛的!不是清理狗屎的!
- linux 车载视频监控,基于Linux平台车载视频监控系统研发-计算机科学与技术专业论文.docx...
- Redis set 类型操作及常用命令
- 像素/厘米与像素/英寸区别_像素/体素艺术入门指南
- 极端原理_为极端而设计
- 聊聊 computed 影响性能的场景
- SparkSQL 之 Shuffle Join 内核原理及应用深度剖析-Spark商业源码实战
- GreenPlum数据库故障恢复测试
- HTML5_02之视频、音频、Canvas
- 图片处理--熔铸特效