1. 编写带有native声明的方法的java类
2. 使用javac命令编译所编写的java类
3. 使用javah -jni java类名生成扩展名为h的头文件
4. 使用C/C++实现本地方法
5. 将C/C++编写的文件生成动态链接库
示例:
EncryptionHelper.java
/**
*@author FJC
*
*/
public class EncryptionHelper {
private EncryptionHelper(){
}
/**
* Encode.
*/
public static byte[] simpleEncode(byte[] clearText){
byte[] retVal=new byte[clearText.length];
for(int i=0;i
JNIEXPORT jbyteArray JNICALL Java_EncryptionHelper_encode
(JNIEnv *env, jclass c, jbyteArray ja)
{
int i;
jbyte *buf;
jsize len=(*env)->GetArrayLength(env,ja);
buf=(jbyte*)malloc(len*sizeof(jbyte));
(*env)->GetByteArrayRegion(env, ja, 0, len, buf);
for(i=0;i
SetByteArrayRegion(env, ja, 0, len, buf);
free(buf);
return ja;
}