1、

在创建一个JNI动态库的工程时应该将工程的输出目标设置为动态连接库(Windows下为.dll,Unix-like系统下为.so,OS X下为.dylib)

2、类型对应关系 (Java与C/C++)

  ZC:jni.h 中可以查看定义

JAVA类型    本地类型         JNI定义的别名
 int        long             jint/jsize
 long       __int64          jlong
 byte       singed char      jbyte
 boolean    unsigned char    jboolean
 char       unsigned short   jchar
 short      short            jshort
 float      float            jfloat
 double     double           jdouble
 Object     _jobject*        jobject

3、JNI中的函数名 命名规则:

  Java_包名_类名_函数名

4、

参数:"JNIEnv* env" 的解释:
  JNIEnv类型实际上代表了Java环境,通过这个JNIEnv* 指针,就可以对Java端的代码进行操作。
    例如,创建Jaa类中的对象,调用Java对象的方法,获取Java对象中的属性等等。
  JNIEnv的指针会被JNI传入到本地方法的实现函数中来对Java端的代码进行操作。

  JNIEnv类中有很多函数可以用:
    NewObject:创建Java类中的对象
    NewString:创建Java类中的String对象
    New<Type>Array:创建类型为Type的数组对象
    Get<Type>Field:获取类型为Type的字段
    Set<Type>Field:设置类型为Type的字段的值
    GetStatic<Type>Field:获取类型为Type的static的字段
    SetStatic<Type>Field:设置类型为Type的static的字段的值
    Call<Type>Method:调用返回类型为Type的方法
    CallStatic<Type>Method:调用返回值类型为Type的static方法
   等许多的函数,具体的可以查看jni.h文件中的函数名称。

参数:"jobject obj" 的解释:
  如果native方法不是static的话,这个obj就代表这个native方法的类实例
  如果native方法是static的话,这个obj就代表这个native方法的类的class对象实例
    (static方法不需要类实例的,所以就代表这个类的class对象)

5、反射中 构造函数的 函数名 为"<init>"

  得到 默认构造函数的method id :

    jmethodID = (JNIEnv*)->GetMethodID(clazz??, "<init>", "()V");

6、Java和C/C++中字符串的区别:

  (1)、在Java中,使用的字符串String对象是Unicode(UTF-16)码,即每个字符不论是中文还是英文还是符号,一个字符总是占两个字节

  (2)、Java通过JNI接口可以将Java的字符串转换到C/C++中的宽字符串(wchar_t *),或是传回一个UTF-8的字符串(char*)到C/C++,反过来,C/C++可以通过一个宽字符串,或是一个UTF-8编码的字符串来创建一个Java端的String对象

7、

8、

9、

优质内容筛选与推荐>>
1、mysql error:You can't specify target table for update in FROM clause
2、bzoj 3961: [WF2011]Chips Challenge【最小费用最大流】
3、电脑任务栏闪烁以及任务栏图标闪烁解决办法
4、HDU4188:RealPhobia (连分数的运用之一)
5、Valid Parentheses


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号