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