在android源代码中构建特定模块

在android源代码中构建特定模块,android,android-source,Android,Android Source,我正在编写一个从source.android.com下载的android源代码 在完成完整构建之后,我浏览了这个解释android构建系统的网站 当我更改外部/webkit代码并使用 make-j4libwebcore它编译相应的文件并更新libwebcore.so,这为我节省了很多时间。 这同样适用于应用程序和构建APK 当我在框架中进行更改并按如下方式发出命令时,问题就出现了 make-j4框架没有编译相应的文件。 谁能帮帮我 文件夹frameworks包含许多内容,您必须更具体地告诉mak

我正在编写一个从source.android.com下载的android源代码

在完成完整构建之后,我浏览了这个解释android构建系统的网站

当我更改外部/webkit代码并使用

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

当我在框架中进行更改并按如下方式发出命令时,问题就出现了
make-j4框架
没有编译相应的文件。
谁能帮帮我

文件夹
frameworks
包含许多内容,您必须更具体地告诉make要构建什么

例如,我对以下内容进行了更改:
frameworks/base/cmds/input/src/com/android/commands/input/input.java
。 现在,相应的
Android.mk
文件位于:
frameworks/base/cmds/input/Android.mk
,其中包含一行内容:
LOCAL\u MODULE:=input

因此,从源代码构建的模块称为
input
,因此我调用:

$make输入
它重建了特定的模块

作为额外信息,您可以使用
mmm
帮助程序,并可以指定要生成的模块路径,如下所示:

$mmm frameworks/base/cmds/input
或者使用仅在当前工作目录中构建模块的
mm

$cd frameworks/base/cmds/input
$mm
我通常使用
mmm
作为我的首选工具


更新

哦,我明白了,您可能在专门讨论名为
framework

我只是试着修改:
frameworks/base/core/java/android/app/Dialog.java
,然后做一个:
makeframework

这似乎可以重新编译框架。在运行
makeframework
之前,您到底在哪个文件中进行更改


回应您的评论

我只是试图修改
frameworks/base/core/java/android/webkit/WebView.java
mmm框架/base
以及
make框架
都非常适合我


如果它不适用于您,您是否可以使用有关您正在构建的android版本、您正在准确键入的命令以及您看到的输出的其他信息来更新您的问题?

以下是对
mm
mmm
的更全面描述,以及通过获取
build/envsetup.sh
文件提供的其他方便功能:

调用
。从shell中构建/envsetup.sh
,将以下函数添加到环境中:

   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.
午餐:午餐-
塔帕斯:塔帕斯[文件注释以查看完整的函数列表。

我想构建frameworks/base/core/java/android/webkit/WebView.java,我只看到了3个.mk文件,我认为它们与指定的类1)frameworks/base/core/java/res/android.mk 2)frameworks/base/core/java/jni/android.mk 3)frameworks/base/android.mk相关,我在3)文件中看到了本地的E:=我应该使用make-j4命令吗framework@BjarkeFreund-Hansen没有专用的恢复资源,对于TARGET_设备非常有用,谢谢!