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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/282769.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/282769.shtml
英文地址,請注明出處:http://en.pswp.cn/news/282769.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java線程安全問題原因及解決辦法

1.為什么會出現線程安全問題 計算機系統資源分配的單位為進程,同一個進程中允許多個線程并發執行,并且多個線程會共享進程范圍內的資源:例如內存地址。當多個線程并發訪問同一個內存地址并且內存地址保存的值是可變的時候可能會發生線程安全問…

html語言怎么添加圖片,我想問你一下,你是怎么在html中插入本地圖片?非常感謝...

滿意答案小蜜蜂手工2013.10.03采納率:43% 等級:12已幫助:7929人img{float:right}在下面的段落中,我們添加了一個樣式為 float:right 的圖像。結果是這個圖像會浮動到段落的右側。This is some text. This is some text. This i…

數組實現矩陣逐層向內層加1

package java1701;public class javaMain { public static void main(String[] args) { // 逐層加 // 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 // 1 2 2 2 2 1 1 2 2 2 1 1 2 2 1 1 2 1 // 1 2 3 3 2 1 1 2 3 2 1 1 2 2 1 1 1 1 // 1 2 3 …

EntityFrameworkCore上下文如何實現繼承?

【導讀】如果我們存在基礎設施服務和其他服務,我們會定義屬于基礎設施服務的上下文以及其他服務的上下文, 而且會獨立部署,此時其他服務需要使用基礎服務,我們都會暴露基礎服務接口給到其他服務調用,這也是常規操作若在…

Unity 游戲框架搭建 (九) 減少加班利器-QConsole

為毛要實現這個工具? 在我小時候,每當游戲在真機運行時,我們看到的日志是這樣的。 沒高亮啊,還有亂七八糟的堆棧信息,好干擾日志查看,好影響心情。 還有就是必須始終連著usb線啊,我想要想躺著測試。。。 以上種種原因,QConsole誕生了。 如何使用? 使用方式和QLog…

android藍牙多次后,android – 如何防止BluetoothGattCallback一次多次執行

我的服務有一個BluetoothGattCallback實例public class MyService extends Service {private BluetoothGattCallback callback;Overridepublic void onCreate() {super.onCreate();callback new BluetoothGattCallback() {Overridepublic synchronized void onConnectionState…

美觀又實用,10 款強大的開源 Javascript 圖表庫

2019獨角獸企業重金招聘Python工程師標準>>> 隨著發展,現代 Web 設計在改善體驗和功能的同時,對于美觀的追求也越來越高,可視化、交互式、動態等元素和效果似乎已成為標配。 以下是為開發者推薦的 10 款開源 Javascript 圖表庫&am…

EF CORE 7 RC1 發布

原文鏈接:https://devblogs.microsoft.com/dotnet/announcing-ef7-rc1/[1]原文作者:Jeremy Likness翻譯:沙漠盡頭的狼(谷歌翻譯加持)Entity Framework Core 7 (EF7) Release Candidate 1 已發布!該團隊專注于解決缺陷、小幅改進以…

0 重新學習Ubuntu -- 這一段沒怎么學習

在完成了前面的幾個學習后,再沒有進行系統的學習。 雖然在真機上安裝系統,每天都打開,完成以下的工作: 升級軟件用來查看相關的網站在Ubuntu上,現在可以完成辦公、上網、娛樂。 但專業的學習,例如編程方面進…

自定義地圖怎么做成html,自定義html為谷歌地圖制作標記

好吧,似乎Custom Overlays會做我想要的。這是ping層:function PingLayer(bounds, map) {this.bounds bounds;this.setMap(map);}PingLayer.prototype new google.maps.OverlayView();PingLayer.prototype.onAdd function() {var div document.create…

HDU5248:序列變換(二分)

序列變換 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1348 Accepted Submission(s): 593Problem Description給定序列A{A1,A2,...,An}, 要求改變序列A中的某些元素,形成一個嚴格單調的序列B&am…

微服務太分散?使用Fundebug集中式bug監控

摘要: 微服務日志分散,可以使用Fundebug的異常監控將它們集中起來。 當一個項目復雜到一定程度,功能越來越多,隨之對應的模塊也越來越多。 如果都放在一個大的項目下面,共同開發,整合發布,那么會…

html404頁面怎么添加,網站要如何設置自定義404頁面?

之前我們講述過網站設置404頁面對于優化或是用戶體驗的重要意義,大家可移步到《網站為什么要設置404頁面》查看,今天我們講解的是網站要如何設置自己的404頁面。現在大多數空間商都有了404設置的功能,我們可將404頁面上傳至空間里面&#xff…

設計模式之——工廠方法模式

1、工廠方法模式(Factory Method)工廠方法模式分為三種:11、普通工廠模式,就是建立一個工廠類,對實現了同一接口的一些類進行實例的創建。首先看下關系圖:舉例如下:(我們舉一個發送郵…

記一次性能故障排查

最近一次公司服務出了一些性能的問題,主要是內存不釋放。領到任務后就開始展開工作。項目是用.net core 6寫的,在框上應該不會有什么問題,這是大背景。另外服務是部署在k8s上的,于是就和性能測試人員,開發人員搭測試環…

html單選框 點擊取消選中,radio單選框再點擊取消選中

html:html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">單選框選項a選項b選項c選項dcheckradio.js://參數:obj為當前點擊的radio對象function onClickRadioStyle(obj){var…

開啟AngularJS 1.X的學習之路(1)

概念(1) AngularJS 應用 AngularJS 模塊&#xff08;Module&#xff09; 定義了 AngularJS 應用。AngularJS 控制器&#xff08;Controller&#xff09; 用于控制 AngularJS 應用。ng-app指令定義了應用, ng-controller 定義了控制器。eg: <div ng-app"myApp" ng-…

Hello boke!

Hello boke&#xff01;轉載于:https://www.cnblogs.com/yikuan-919/p/9319071.html

ASP.NET Core在.NET 7 RC1中的更新

原文鏈接&#xff1a;https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-7-rc-1/[1]原文作者&#xff1a;Daniel Roth翻譯&#xff1a;沙漠盡頭的狼(谷歌翻譯加持).NET 7 Release Candidate 1 (RC1) 現已推出[2]&#xff0c;其中包括對 ASP.NET Core 的許…

html5 tab菜單切換頁面,11個常用的jQuery TAB切換菜單源碼及制作教程

11個常用的jQuery TAB切換菜單源碼及制作教程SponsorTAB切換式菜單可以方便為我們減少很多網頁布局空間&#xff0c;而且用jQuery的話可以加入一些動畫效果&#xff0c;比如漸變&#xff0c;向左右滑動等&#xff0c;提升一定的用戶體驗&#xff0c;所以TAB菜單目前來說是很流行…