I’m trying to find the entry point to Dalvik’s interperter loop.
I’ve read the Android (2.1 froyo) boot-up code up to the point where “env->CallStaticVoidMethod()” is called. This means “start running a JAVA static void method in Dalvik”. In my case the specified method is the ZygoteInit’s main method.
However, I cannot find the c/cpp implementation of this entry method (“CallStaticVoidMethod”) anywhere in the code – only references and declerations.
The same goes to all of the other interpreter entry points – CallObjectMethod, CallBooleanMethod, etc…
In the file dalvik/vm/Jni.c of the source code, there is a global variable gNativeInterface which holds pointers to all of these functions. It is initialized with symbols that I cannot find the definitions of (I suspect this is because some Macro was used to define them).
Thanks up front to all repliers.
CallStaticVoidMethod() is implemented via a macro in dalvik/vm/Jni.c
(a header file first maps CallStaticVoidMethod to CallStaticVoideMethodV)
dvmCallMethodV is implemented in davlik/vm/interp/Stack.c