Android 編譯時間:m、mm、mmm、mma、mmma的區別

來源:互聯網
上載者:User

標籤:exec   current   str   定義   pre   set   dir   命令   The   

 

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

Android 編譯時間:m、mm、mmm、mma、mmma的區別

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.