Quote=引用 1 楼  的回复:]
不是很明白你要的什么意思!?
[/Quote]比如说我现在在看SystemProperties类的实现,安卓中他的源码如下:-_-|源码复制不上,不晓得怎么搞得,这个类中调用了native方法,但只有对native方法的声明,用go to definition也不管用,因为是c/c++代码编译成动态库的原因吧,那么我怎么查看这个native方法的定义呢?

解决方案 »

  1.   

    android不是开源的么?他应该只是编译成了动态库,但代码应该还在啊
      

  2.   

    把包含native函数的类名,在整个工程里搜文件名,文件名找不到就遍历所有C或C++文件内容,如果再找不到,那就是没有了。。
      

  3.   

    native方法是不可能直接看到源码的。
      

  4.   

    android源码中native方法的使用并不是你所想的那样,能够去查看的它的具体定义。其实它的具体的定义是在库(比如lib/hello-jni.c或者.cpp文件)中实现的。比如在package\app下有个ServiceMenu,它里面有相应的.cpp文件,用native方法修饰的函数就是在该.cpp文件中具体实现的,举个例子:
    定义一个hello-jni.c文件,它里面的一个函数定义为:Java_cn_com_ndk_Main_stringFromJNI(JNIEnv*env,jobject thiz){ },那么我们相应的定义的native方法就是:public native string stringFromJNI();进而获取Java_cn_com_ndk_Main_stringFromJNI(JNIEnv*env,jobject thiz)函数中的对应的string。这也是我在一个文档上面看到的,希望有帮助,谢谢。