在android源代码中构build一个特定的模块

我正在从source.android.com下载一个android源代码。

完成构build后,我通过这个网站http://elinux.org/Android_Build_System解释了Android构build系统。

当我在外部/ webkit代码中进行更改并使用它进行构build时

make -j4 libwebcore它编译相应的文件并更新libwebcore.so,这为我节省了很多时间。 同样的东西适用于应用程序,也适用于构buildapks。

当我在框架中进行更改时,问题就出现了,并且make -j4 framework没有编译相应的文件。 谁能帮我!

Solutions Collecting From Web of "在android源代码中构build一个特定的模块"

文件夹frameworks包含很多东西,你必须更具体地告诉做什么build立。

例如,我在: frameworks/base/cmds/input/src/com/android/commands/input/Input.java 。 现在相应的Android.mk文件位于: frameworks/base/cmds/input/Android.mk ,其中包含一行: LOCAL_MODULE := input

因此,从源代码构build的模块称为input ,所以我打电话给:

 $ make input 

哪个重build那个特定的模块。

作为奖励信息,您可以使用mmm助手,您可以指定要构build的模块的path,如下所示:

 $ mmm frameworks/base/cmds/input 

或者使用mm在你当前的工作目录下build立模块:

 $ cd frameworks/base/cmds/input $ mm 

我通常使用mmm作为我的首选工具。


更新

哦,我看你可能正在专门讨论一个叫做framework的模块

我只是试图修改: frameworks/base/core/java/android/app/Dialog.java ,并做一个: make framework

这似乎重新编译框架就好了。 在运行make framework之前,您正在修改哪个文件?


回应你的评论

我只是试图修改frameworks/base/core/java/android/webkit/WebView.javammm frameworks/base ,以及make framework工程对我来说非常好。

如果它不适合你,你可以更新你的问题,关于你正在build立哪个Android版本,你准确input哪些命令,你看到的输出的附加信息?

下面是对mmmmm和其他方便的函数的更全面的描述,这些函数是由build/envsetup.sh文件提供的:

 Invoke ". build/envsetup.sh" from your shell to add the following functions to your environment: lunch: lunch <product_name>-<build_variant> tapas: tapas [<App1> <App2> ...] [arm|x86|mips|armv5] [eng|userdebug|user] 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, but not their dependencies. mmm: Builds all of the modules in the supplied directories, but not their dependencies. To limit the modules being built use the syntax: mmm dir/:target1,target2. mma: Builds all of the modules in the current directory, and their dependencies. mmma: Builds all of the modules in the supplied directories, and their dependencies. 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.