I am working on an android source code which I have downloaded from source.android.com.
After a full build I went through this site http://elinux.org/Android_Build_System which explains the android build system.
When I make changes in external/webkit code and build it with
make -j4 libwebcore
it compiles the corresponding file and updates the libwebcore.so, and it save me a lot of time.
The same thing is applied to applications and also for building apks.
The problem arises when I make changes in the framework and give the command as
make -j4 framework
its not compiling the corresponding files.
Can any one help me!
The folder
frameworks
contains many things, you have to be more specific about telling make what to build.For example I made a change in:
frameworks/base/cmds/input/src/com/android/commands/input/Input.java
. Now the correspondingAndroid.mk
file is located in:frameworks/base/cmds/input/Android.mk
, which contains a line saying:LOCAL_MODULE := input
.Thus the module being build from the source is called
input
, so I call:Which rebuilds that specific module.
As a bonus info, you can use the
mmm
helper and you can specify the path of the module to build like this:or using
mm
which just builds the module in you current working directory:I normally use
mmm
as my preferred tool.Update
Oh, I see you might be talking specifically about the module called
framework
I just tried to modify:
frameworks/base/core/java/android/app/Dialog.java
, and do a:make framework
.This seems to recompile the framework just fine. Which file exactly are you making changes in before running
make framework
?In response to your comment
I just tried to modify
frameworks/base/core/java/android/webkit/WebView.java
.mmm frameworks/base
as well asmake framework
works perfectly fine for me.If it does not work for you, can you update your question with additional information about which android version you are building, which commands you are typing exactly, and the output your are seeing?
Here are fuller descriptions of
mm
,mmm
, and other convenient functions provided by sourcing thebuild/envsetup.sh
file:Invoke
. build/envsetup.sh
from your shell to add the following functions to your environment: