如何在Android源码里查找Java中native方法对应的C++实现

2014-11-24 13:04:55 · 作者: · 浏览: 3

public static final native int getCallingPid();


public static final native int getCallingUid();


public static final native long clearCallingIdentity();


等方法都是直接调用C++里的实现。


通过下面命令可以很快找到对应的实现,


. build/envsetup


cgrep ./frameworks '"getCallingPid"'


这时会查找到如下结果:


./frameworks/base/core/jni/android_util_Binder.cpp:745: { "getCallingPid", "()I", (void*)android_os_Binder_getCallingPid },


这样就可以知道对应的C++实现方法名字为android_os_Binder_getCallingPid, 在该文件中找这个方法的实现即可。