在Android开发过程中,当我们只需要编译某个修改过的模块时,使用mm命令可以使你不用编译整个Android项目,而只需单独编译该模块即可,这样速度是不是很快呢?具体的步骤如下:
1. 在Android源代码目录下:
cd mydroid
source build/envsetup.sh
也可以将source ~/mydroid/build/envsetup.sh放到~/.bashrc中,这样每次打开shell时就会自动运行该脚本。
2. 在shell中使用help命令查看可以运行的命令
# help
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.
Look at the source to view more functions. The complete list is:
add_lunch_combo cgrep check_product check_variant choosecombo chooseproduct choosetype choosevariant cproj croot findmakefile gdbclient get_abs_build_var getbugreports get_build_var getprebuilt gettop godir help isviewserverstarted jgrep lunch m mm mmm pid printconfig print_lunch_menu resgrep runhat runtest set_java_home setpaths set_sequence_number set_stuff_for_environment settitle smoketest startviewserver stopviewserver systemstack tapas tracedmdump
可以看到mm命令,意思是编译当前文件夹下的所有模块。
3. 接下来的事情将变得很简单,只需来到需要编译的模块文件夹下,运行mm命令即可,当然我们也可以用mmm命令,如mmm external/jpeg/,和在external/jpeg/目录下运行mm命令具有同样的效果。