Android手机mm开头的大文件,[2018年最新整理]2Android源代码编译命令m和mm和mmm以及make分析.doc...

[2018年最新整理]2Android源代码编译命令m和mm和mmm以及make分析

老罗的新浪微博:/shengyangluo,欢迎关注!

在前文中,我们分析了Android编译环境的初始化过程。Android编译环境初始化完成后,我们就可以用m/mm/mmm/make命令编译源代码了。当然,这要求每一个模块都有一个Android.mk文件。Android.mk实际上是一个Makefile脚本,用来描述模块编译信息。Android编译系统通过整合Android.mk文件完成编译过程。本文就对Android源代码的编译过程进行详细分析。

??????? 从前面Android编译系统环境初始化过程分析这篇文章可以知道,lunch命令其实是定义在build/envsetup.sh文件中的函数lunch提供的。与lunch命令一样,m、mm和mmm命令也分别是由定义在build/envsetup.sh文件中的函数m、mm和mmm提供的,而这三个函数又都是通过make命令来对源代码进行编译的。事实上,命令m就是对make命令的简单封装,并且是用来对整个Android源代码进行编译,而命令mm和mmm都是通过make命令来对Android源码中的指定模块进行编译。接下来我们就先分别介绍一下函数m、mm和mmm的实现,然后进一步分析它们是如何通过make命令来编译代码的。

??????? 函数m的实现如下所示:

function?m()??

{??

????T=$(gettop)??

????if?[?"$T"?];?then??

????????make?-C?$T?$@??

????else??

????????echo?"Couldn't?locate?the?top?of?the?tree.??Try?setting?TOP."??

????fi??

}??

?????? 函数m调用函数gettop得到的是Android源代码根目录T。在执行make命令的时候,先通过-C选项指定工作目录为T,即Android源代码根目录,接着又将执行命令m指定的参数$@作为命令make的参数。从这里就可以看出,命令m实际上就是对命令make的简单封装。

?????? 函数mm的实现如下所示:

function?mm()??

{??

????#?If?we're?sitting?in?the?root?of?the?build?tree,?just?do?a??

????#?normal?make.??

????if?[?-f?build/core/envsetup.mk?-a?-f?Makefile?];?then??

????????make?$@??

????else??

????????#?Find?the?closest?Android.mk?file.??

????????T=$(gettop)??

????????local?M=$(findmakefile)??

????????#?Remove?the?path?to?top?as?the?makefilepath?needs?to?be?relative??

????????local?M=`echo?$M|sed?'s:'$T'/::'`??

????????if?[?!?"$T"?];?then??

????????????echo?"Couldn't?locate?the?top?of?the?tree.??Try?setting?TOP."??

????????elif?[?!?"$M"?];?then??

????????????echo?"Couldn't?locate?a?makefile?from?the?current?directory."??

????????else??

????????????ONE_SHOT_MAKEFILE=$M?make?-C?$T?all_modules?$@??

????????fi??

????fi??

}??

??????? 函数mm首先是判断当前目录是否就是Android源码根目录,即当前目录下是否存在一个build/core/envsetup.mk文件和一个Makefile文件。如果是的话,就将命令mm当作是一个普通的make命令来执行。否则的话,就调用函数findmakefile从当前目录开始一直往上寻找是否存在一个Android.mk文件。如果在寻找的过程中,发现了一个Android.mk文件,那么就获得它的绝对路径,并且停止上述寻找过程。

??????? 由于接下来执行make命令时,我们需要指定的是要编译的Android.mk文件的相对于Android源码根目录路径,因此函数mm需要将刚才找到的Android.mk绝对文件路径M中与Android源码根目录T相同的那部分路径去掉。这是通过sed命令

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/441255.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【CodeForces - 349C】Mafia(思维模拟,优秀的二分)

题干: One day n friends gathered together to play "Mafia". During each round of the game some player must be the supervisor and other n - 1 people take part in the game. For each person we know in how many rounds he wants to be a pl…

android新材料设计,android - 如何实现新材料BottomAppBar为BottomNavigationView - SO中文参考 - www.soinside.com...

解决了基本上,而不是试图迫使菜单的资源,我需要的布局,我用这个方法,而不是,我只是把使用“空”元素作为dglozano建议BottomAppBar内的LinearLayout。使用?attr/selectableItemBackgroundBorderless我也能做到这一点实…

【CodeForces - 1A】Theatre Square(水题,几何)(CODEFORCES,梦的开始)

题干: Theatre Square in the capital city of Berland has a rectangular shape with the size n  m meters. On the occasion of the citys anniversary, a decision was taken to pave the Square with square granite flagstones. Each flagstone is of the …

html教程是语音版,【HTML教程】HTML 语言简介

标签是一个容器标签,用于放置网页的主体内容。浏览器显示的页面内容,都是放置在它的内部。它是的第二个子元素,紧跟在后面。网页标题hello world

【POJ - 1664】放苹果 (递归经典题 或 dp 或 母函数)

题干: 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。 Input 第一行是测试数据…

html文本下一页,Javascript html2canvas + jsPDF 导出PDF,解决一半文字在上一页一半文字在下一页的问题...

var pdfContent document.getElementById("pdfDiv");var width pdfContent.offsetWidth; //获取dom 宽度var height pdfContent.offsetHeight; //获取dom 高度var canvas document.createElement("canvas"); //创建一个canvas节点var scale 3; //定义…

无法设置html过渡效果,html – CSS3过渡显示无阻止过度滚动

我假设你的弹出窗口是绝对定位的,所以你可以做以下事情:>隐藏时,将弹出窗口设置为巨大的负值.这会将其移出屏幕并摆脱滚动条.>在悬停时,将顶部设置为正确的值并转换不透明度值.>确保CSS转换规则仅适用于opacity属性.HTMLPopup go nowMy cats breath smells…

ACM 题目分类POJ(自用,精)

详情见博客:http://exp-blog.com/2018/06/28/pid-38/ 和博客https://blog.csdn.net/a1dark/article/details/11714009/ http://exp-blog.com/2018/06/10/pid-136/ https://blog.csdn.net/lyy289065406/article/details/6642573

html表格全屏显示,tableView滑动全屏显示

今天要分享的一个效果是在一个页面弹出视图展示一个tableview,然后手指滑动tableview时,视图随着tableview偏移量增加而慢慢增加,到达临界时,全屏显示,然后再次向下滑动时,当偏移量到达临界点,视…

【 CodeForces - 864B】Polycarp and Letters(水题,字符串,有坑)

题干: Polycarp loves lowercase letters and dislikes uppercase ones. Once he got a string sconsisting only of lowercase and uppercase Latin letters. Let A be a set of positions in the string. Lets call it pretty if following conditions are met:…

计算机网络65535,计算机网络1

1.网络基础:1.1 IT行业铁三角:os,web,sql 不管是哪个IT岗位都应该懂,1.2 开发铁三角:语言,数据结构算法,数据模式1.3 测试铁三角:需求,搭环境和设计用例&…

【CodeForces - 864C】Bus (模拟,有坑)

题干: A bus moves along the coordinate line Ox from the point x  0 to the point x  a. After starting from the point x  0, it reaches the point x  a, immediately turns back and then moves to the point x  0. After returning to the point…

大量html乱码seo,HTTPS改造之后网页错位乱码,影响SEO和正常访问,应该这样改

有一些朋友可能不太知道https改造怎么做,就学着网站的步骤进行,实际操作过程中可能会遇到很多问题。比如说有的会出现网页错位、页面乱码、后台功能无法使用的情况。昨天我们就有一个客户他自己做了https改造,但是造成后台无法上传图片的情况…

【NOIP2013积木大赛,NOIP2018铺设道路】积木大赛(思维,贪心)

题干: 题目描述 春春幼儿园举办了一年一度的“积木大赛”。今年比赛的内容是搭建一座宽度为nn的大厦,大厦可以看成由n块宽度为1的积木组成,第i块积木的最终高度需要是h_ihi​。 在搭建开始之前,没有任何积木(可以看…

微型计算机中最小的单位,微型计算机中最小的数据单位是

微型计算机中最小的数据单位是比特。微型计算机,是指由微处理器作为CPU的计算机。由大规模集成电路组成的、体积较小的电子计算机。由微处理机(核心)、存储片、输入和输出片、系统总线等组成。特点是体积小、灵活性大、价格便宜、使用方便。这类计算机的普遍特征就是…

【每日算法】【图论】【最小边覆盖 最小路径覆盖 最小顶点覆盖 最大独立集 最大团】

最小边覆盖 最大独立集 |V| - 最大匹配数 这个是在原图是二分图上进行的 最小路径覆盖和最小边覆盖不同,不要求给的图是二分图,而是要求是N x N的有向图,不能有环,然后根据原图构造二分图,构造方法是将点一分为二&am…

【51Nod - 1344】走格子 (思维)

题干: 有编号1-n的n个格子,机器人从1号格子顺序向后走,一直走到n号格子,并需要从n号格子走出去。机器人有一个初始能量,每个格子对应一个整数Aii,表示这个格子的能量值。如果Aii > 0,机器人…

计算机算法在生物信息学中的应用,计算机算法在生物信息学中的应用综述.doc...

计算机算法在生物信息学中的应用综述摘 要:在人类基因组计划的推动下,生物信息学得到了人们的广泛关注,并呈现出数量多、计算量大等鲜明特征,因此要求在生物信息学中采用计算机算法,以提高生物信息学处理问题的效率。以…

信息学竞赛计算机基础知识,信息学奥赛-计算机基础知识.doc

信息学奥赛-计算机基础知识TOC \o "1-3" \h \z \u HYPERLINK \l "_Toc303947525" 第一章 计算机基础知识 PAGEREF _Toc303947525 \h 2HYPERLINK \l "_Toc303947526" 第一节 数制及其转换 PAGEREF _Toc303947526 \h 2HYPERLINK \l "_Toc3039…

【51Nod - 1182】完美字符串(贪心,字符串)

题干: 约翰认为字符串的完美度等于它里面所有字母的完美度之和。每个字母的完美度可以由你来分配,不同字母的完美度不同,分别对应一个1-26之间的整数。 约翰不在乎字母大小写(也就是说字母A和a的完美度相同)。给定一…