1. 程式人生 > >envsetup.sh與mm命令、mmm命令說明

envsetup.sh與mm命令、mmm命令說明

Android SDK原始碼工程下,如果編譯整個工程可能需要兩三個小時,即使二次編譯也要二十多分鐘。如果只想單獨編譯某個APK應用,那麼可以這樣做:

1)在build目錄下執行

   . envsetup.sh  (注意,命令前面有一個點,然後接一個“空格”鍵)

   執行完後,就會多出以下幾個命令:

- croot:   Changes directory to the top of the tree.
- m:       Makes from the top of the tree.
- mm:      Builds all of the modules in the current directory.
- mmm:     Builds all of the modules in the supplied directories.
- cgrep:   Greps on all local C/C++ files.
- jgrep:   Greps on all local Java files.
- resgrep: Greps on all local res/*.xml files.
- godir:   Go to the directory containing a file.
- printconfig: 當前build的配置情況

2)mm命令

   用於當前目錄下的工程

3)mmm命令

  用於編譯指定目錄,如:

  mmm Settings

  表示編譯Settings這個目錄,之後會生成新的apk

Android原始碼目錄下的build/envsetup.sh檔案,描述編譯的命令

- m:       Makes from the top of the tree. 
- mm:      Builds all of the modules in the current directory. 
- mmm:     Builds all of the modules in the supplied directories.

要想使用這些命令,首先需要在android原始碼根目錄執行. build/envsetup.sh 指令碼設定環境

m:編譯所有的模組 
mm:編譯當前目錄下的模組,當前目錄下要有Android.mk檔案 
mmm:編譯指定路徑下的模組,指定路徑下要有Android.mk檔案

下面舉個例子說明,假設我要編譯android下的\hardware\libhardware_legacy\power模組,當前目錄為原始碼根目錄,方法如下:

1、. build/envsetup.sh 
2、mmm hardware/libhardware_legacy/power/

或者 :

1、. build/envsetup.sh 
2、cd hardware/libhardware_legacy/power/

3、mm