最近搞加密,移植了一段加密算法,C语言的。在java上没有能实现了,
看到有人在弄JNI,觉得自己还是试试经过生成jni的h文件
做了jbytearray和byte【】的转换,测试OK
另外发现使用ndk-build编译默认为armeabi。
修改了Application.mk:
APP_ABI := armeabi armeabi-v7a
1.编写java部分的函数,使用关键字natvie
2.在bin/classes目录下执行javah -jni 包名.类名 生成头文件
3.根据得到的头文件调整现有的c文件
4.编写jbyteArray到C的转换:
C/C++的方法不一样
C:
(*env)->GetByteArrayElements(env, array, NULL);
(*env)->GetArrayLength(env, array);
C++的方法
env->GetByteArrayElements(array, 0);
以上仅作自己以后查阅,抽空再总结。想要学习,可以参考androidndk里面的samples