您的位置:首页 > 移动开发 > Android开发

android jni 开发入门

2016-04-17 21:37 447 查看
JNI是什么?

JNI: java native interface (java本地接口)

ndk : native develop kits 本地开发工具集(交叉编译工具链)

JNI开发的步骤

在java代码里面声明一个native的方法.

public native String helloFromC();

在工程目录下面创建一个jni的文件夹.

在jni文件夹里面编写c代码

//env是虚拟机的环境 obj调用者对象

jstring Java_包名类名方法名(JNIEnv* env,jobject obj){

}

实现c代码

使用env环境指向的结构体,有自带的函数,利用jvm的函数进行操作

return (*(*env)).NewStringUTF(env,arr);

return (*env)->NewStringUTF(env,arr);

编译c代码

配置c代码编译的脚本文件 –即创建Android.mk文件,写入一下内容

LOCAL_PATH := (callmy−dir)include(CLEAR_VARS)

LOCAL_MODULE := hello //编译后的模块名

LOCAL_SRC_FILES := Hello.c //编译的源文件的名称

调用ndk-build.cmd指令编译c代码 (在jni的文件目录编译,之后会在libs中生成相应的so文件)

注意配置环境变量

生成一个.so的文件 ( c代码编译出来的二进制可执行文件)

在java代码里面写静态代码块,加载so文件

static{

System.loadLibrary(“hello”); //即模块名(mk文件中写的)

}

像使用一般java方法一样调用native的方法.

以上仅限于在arm中调用,若想在其他模拟器中调用,需要如下:

1.在jni文件夹下建Application.mk文件,在其中编写APP_ABI := all
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  androidjni