首页 行业资讯 宠物日常 宠物养护 宠物健康 宠物故事

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

发布网友

我来回答

1个回答

热心网友

在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, 在该文件中找这个方法的实现即可。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com