JNI,java native interface ,Java本地开发接口,实现在安卓中JAVA和C语言之间的相互调用
通常高级点的app会把加密逻辑使用c做,而java层没有加密逻辑从而增加破解难度
创建一个新项目
JNI开发:Native C++
- 创建出项目来后,会带一个java调用c的小案例
- 一些配置帮咱们配置完成
- 在固定位置写代码即可
这个SDK版本选个合适的即可-->下一步默认-->Finish
PS:如果有报错,就把清空缓存重新试试
第一步:在cpp目录下,新建c文件(注意选择c结尾)
第二步:编写Java,新建一个Java类,编写静态方法
MainActivity同级目录下创建Utils.java
第三步:在java类中,引入静态文件
public class utils {
//引入静态文件
static {
System.loadLibrary("utils");
}
}
第四步:在CMakeLists.txt中加入编写的c文件
add_library(
utils
SHARED
utils.c)
target_link_libraries(
s11day13
utils
${log-lib})
第五步:在Utils.java中写JNI方法(Native方法)
5 写jni方法--Native方法--->只是声明一个接口,具体由c实现
public static native int v1(int a1,int a2);
# 5
# 6 第六步:utils.c 具体实现java中声明的v1方法
#include <jni.h>
JNIEXPORT jint
JNICALL
Java_com_justin_s11day13_Utils_v1(JNIEnv *env, jclass clazz, jint a1, jint a2) {
return a1+a2+100;
}
# 7 第七步:MainActivity中
tv.setText(String.valueOf(Utils.v1(3,4)));