再谈jni

这次jni模块的编写,有几个地方需要重点注意下的,也是我这次比较消耗时间的地方。

 

1.基本常识,不能直接使用jstring,使用GetStringUTFChars,并记得ReleaseStringUTFChars释放分配的空间.

 

2.如果java中需要得到jni中的数据结构,则必须定义类和相应的函数。

 

3.使用javap -s获取参数签名,内部类使用“.”来引用,GetMethodID使用该函数签名,构造函数使用"<init>".

 

4.FindClass对于内部类来说用$隔开,如com/john/maindesk/BookScanThread$HScanEntry.

 

5.NewObject中的最后的参数应与函数签名中的相匹配.

你可能感兴趣的:(再谈jni)