永发信息网

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

答案:2  悬赏:0  手机版
解决时间 2021-01-01 19:17
如何在Android源码里查找Java中native方法对应的C++实现
最佳答案
知道方法名就知道C++里的函数名了,native方法的函数名是 Java_包名_类名_函数名 开头的,包名要把.换成_。比如com.xxx.yyy.ClassA.methodB在C++那边找Java_com_xxx_yyy_ClassA_methodB就行了
全部回答
在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, 在该文件中找这个方法的实现即可。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
清泉老师,急~~~~~
xbox one手柄过保修期了是不是就基本GG了
怎样才能在周杰伦演唱会上 点上歌呀
学校学生打架死人学校校长免职吗
第一节完形填空(共10小题;每小题2分,满分2
请问,问一个历史性的问题,爱新觉罗的后代现在
浅灰色裤子搭配什么鞋子 上衣合适?
中国两条著名大河是什么
在职员工 是什么意思
JavaScript+css怎么设计侧栏收起
2016年3月7日至10月1日保质期为六个月方便面
乘车安全注意事项应注意什么???? 10分
重庆邮电大学是211,985吗
正字行楷怎么写好看
高层电梯哪个牌子好
推荐资讯
简单的c语言题
doformmyform和domymenu.mpr区别是什么
以夫妻名义买房,查档需要夫妻两人都到场吗 5
安什么什么的成语
上海数讯数据中心的工作环境、工资待遇、成长
旁者自清的意思是什么
word2013里面怎样单独删除页眉
才买的砂锅怎么清洗
什么叫微商?他是一种什么经营形式
城区街光明社区劳动保障工作站地址在什么地方
李小龙的力气有多少公斤呢
司机如何找到一手货源
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?