如何在Android源码里查找Java中native方法对应的C++实现
在Android源码里,有许多方法都是使用Jni机制调用底层的C++实现,比如大家都很熟悉的Binder.java里,就有
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, 在该文件中找这个方法的实现即可。
相关推荐
abfdada 2020-08-26
瓜牛呱呱 2020-11-12
柳木木的IT 2020-11-04
yifouhu 2020-11-02
lei0 2020-11-02
源码zanqunet 2020-10-28
源码zanqunet 2020-10-26
一叶梧桐 2020-10-14
码代码的陈同学 2020-10-14
lukezhong 2020-10-14
lzzyok 2020-10-10
anchongnanzi 2020-09-21
clh0 2020-09-18
changcongying 2020-09-17
星辰大海的路上 2020-09-13
mzy000 2020-08-24
shenlanse 2020-08-18
zhujiangtaotaise 2020-08-18
xiemanR 2020-08-17