JNINativeMethod,定义如下:
typedef struct {
        const char* name;
        const char* signature;
        void* fnPtr;
} JNINativeMethod;

第一个变量name是Java中函数的名字;第二个变量signature,用字符串是描述了函数的参数和返回值;第三个变量fnPtr是函数指针,指向C函数。其中比较难以理解的是第二个参数,例如
"()V"
"(II)V" 
实际上这些字符是与函数的参数类型一一对应的。"()" 中的字符表示参数,后面的则代表返回值。例如"()V" 就表示void Func();"(II)V" 表示 void Func(int, int);

        具体的每一个字符的对应关系如下:
 
字符 Java类型 C类型
V      void            void
Z       jboolean     boolean
I        jint              int
J       jlong            long
D      jdouble       double
F      jfloat            float
B      jbyte            byte
C      jchar           char
S      jshort          short 
数组则以"["开始,用两个字符表示 
[I       jintArray      int[]
[F     jfloatArray    float[]
[B     jbyteArray    byte[]
[C    jcharArray    char[]
[S    jshortArray   short[]
[D    jdoubleArray double[]
[J     jlongArray     long[]
[Z    jbooleanArray boolean[]

上面的都是基本类型。如果Java函数的参数是class,则以"L"开头,以";"结尾中间是用"/" 隔开的包及类名。

Ljava/lang/String; jstring 

更多相关文章

  1. Android7.1 Presentation双屏异显 DEMO 样例
  2. android_5 修改一个textview中的字符串的颜色
  3. 关于 android 的JNI的java 调用 C和 C 调用JAVA(2)
  4. 展讯android LEDS模块分析----各种关系
  5. android 事件传递机制 【转】
  6. SurfaceTexture,TextureView,GLsurfaceview的区别与联系详解
  7. Android(java)回调函数经典示例
  8. android下libgdx 中文字符显示初探
  9. Android(安卓)登录密码RSA加密

随机推荐

  1. 怎样成为一名Android开发者
  2. Android基于XMPP Smack Openfire开发IM(5)
  3. Mars视频跟踪之android中的Thread
  4. Android(安卓)Resource学习总结
  5. Android开发我音乐App
  6. Android自定义属性时TypedArray的使用方
  7. 关于EditText的一点深入的了解
  8. Android滑动到顶部和底部时出现的阴影如
  9. Android读取assets目录下文件数据内容
  10. Android(安卓)创建与解析XML(一)—— 概述