Android的代码是比较庞大的,如果要全部编译一遍,是花费比较多时间,这样导致开发效率非常低,那么有没有办法只编译修改那一部份代码呢?答案是肯定有的,因为面对这么多代码,如果没有好的方法是开发不成功的。下面就来学习怎么样单个目录编译的方法。
在android的顶层目录里,运行下面的命令:
. build/envsetup.sh
运行命令后,就添加了很多命令到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.
其中命令croot是改变到顶层目录;m是编译源码树;mm是编译当前目录下所有模块;
mmm是编译所有满足条件编译的模块;cgrep是查找本地所有C/C++文件;jgrep是查找本地所有java文件;resgrep是查找本地所有资源文件res/*.xml;godir是跳到包括这个文件的目录。
下面就是演示使用命令来编译一个目录:
tony@tony-desktop:~/arm/Android-2.0/system/core$ mm
============================================
PLATFORM_VERSION_CODENAME=AOSP
PLATFORM_VERSION=AOSP
TARGET_PRODUCT=generic
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=MASTER
============================================
make:进入目录'/home/tony/arm/Android-2.0'
这个命令是在目录~/arm/Android-2.0/system/core开始编译,这样编译速度就可以提高很多了。