下文轉載至 Kimihong的博客 原文在 http://blog.csdn.net/kimihong/article/details/7523892
這個文件在編譯android系統時首先要執行一下,除了配置了android編譯的環境外,在它代碼的前幾行可以看到這些文字:
Invoke ". build/envsetup.sh" from your shell to add the following functions to your environment:
- 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.
以上幾個命令也是本文主要說明。
在android源代碼根目錄下執行
# source /build/envsetup.sh 或者
#. ./build/envsetup.sh
後就可以使用croot/m/mm/mmm/cgrep/jgrep/resgrep/godir這幾個在android源代碼目錄下編譯和搜字符的命令;
1.croot 到android根目錄下
#:~/MyAndroid$ cd frameworks/base/
#:~/MyAndroid/frameworks/base$ croot
#:~/MyAndroid$
2.m 編譯android源代碼 與make一樣吧,還沒試過
3.mm 編譯當前目錄下的所有模塊,包括遞歸的目錄,這個目錄下的所包含Android.mk文件
4.mmm 編譯當前目錄下的模塊,不包括其他目錄,就這個目錄下的Android.mk文件
#:~/MyAndroid$ mmm /packages/apps/Settings/ //模塊編譯Settings.apk
下面幾個命令是對find + grep命令的組合包裝
find搜索文件+grep使用正則表達式搜索文本,並把匹配的行打印出來
5.cgrep 在本地目錄下的C/C++文件中搜索相應文本,並打印出來
#:~/MyAndroid/$ cgrep 'unsupported pixel format'
./device/samsung/crespo/libcamera/SecCamera.cpp:316: LOGE("unsupported pixel format\n");
6.jgrep 在本地目錄下的Java文件中搜索相應文本,並打印出來
#:~/MyAndroid$ jgrep 'Set app display size: '
./frameworks/base/services/java/com/android/server/wm/WindowManagerService.java:6075: Slog.i(TAG, "Set app display size: " + mAppDisplayWidth
#:~/MyAndroid$
7.resgrep 在本地目錄下的res/*.xml文件中搜索相應文本,並打印出來
#:~/MyAndroid/frameworks/base/packages/SystemUI$ resgrep 'status_bar_background'
./res/values-large/colors.xml:3: <drawable name="status_bar_background">#000000</drawable>
./res/layout-sw600dp/status_bar_notification_peek.xml:37: android:background="@drawable/status_bar_background"
./res/layout-sw600dp/status_bar.xml:22: android:background="@drawable/status_bar_background"
./res/values-sw600dp/colors.xml:3: <drawable name="status_bar_background">#000000</drawable>
./res/values/colors.xml:24: <drawable name="status_bar_background">#ff000000</drawable>
./res/layout/status_bar.xml:25: android:background="@drawable/status_bar_background"
#:~/MyAndroid/frameworks/base/packages/SystemUI$
8.godir 定位到包含某文件的目錄
#:~/MyAndroid$ godir envsetup.sh
Creating index... Done
#:~/MyAndroid/build$