Android Studio—— jni初体验(一)

Android 中使用JNI是干啥的?

具体原理不是很清楚,只知道JNI允许Java语言和c/c++语言进行交互。

项目当中如何实现?

1> 使用源码

2> 使用.so库

项目中如何使用源码?

1.1:在main目录下创建 jni folder

1.2:src目录下创建实现native方法的类

1.3:需要配置Ndk,File --> Project Structure --> Android Ndk Location中选择Ndk路径,解压选择到ndk-bundle目录

1.4:选择Build-->ReBuild Project后,在build -->intermediates --> classes --> debug 中找到.h头文件并拷贝到已创建的jni文件夹下

1.5:已创建好的jni文件夹下新建.c文件include 头文件,实现native方法,注意方法名是以 Java_包名_类名_方法名这样命名的,不可有误,否则找不到此方法

1.6:打开app下的gradle文件,defaultConfig下添加ndk{moduleName "so库名字" abiFilters "armeabi"..}

1.7: gradle.properties 文件中添加 android.useDeprecatedNdk=true

1.8: Activity中使用时,需要先加载 static{System.loadLibrary("so库名字");} 后再调用

项目中如何使用so库

2.1:so库也是源码编译生成,将so库导入到libs下对应的类型中,gradle文件中进行配置:

ndk{
    abiFilters "armeabi"
}
2.2:src目录下创建实现native方法的类
2.3:Activity中使用时同上需要先加载
 
根据以上步骤,已实现与c语言交互的功能
因是初次使用,有问题的地方希望多包含并讨论。

你可能感兴趣的:(Android,JNI)