-
jni开发的步骤
-
①写java代码 声明本地方法 用到native关键字 本地方法不用去实现
-
②项目根目录下创建jni文件夹
-
③在jni文件夹下创建.c文件
- 本地函数命名规则: Java_包名类名本地方法名
- JNIENV* env JNIEnv 是JniNativeInterface这个结构体的一级指针
- JniNativeInterface这个结构体定义了大量的函数指针
- env 就是结构体JniNativeInterface这个结构体的二级指针
- (*env)->调用结构体中的函数指针
- 第二个参数jobject 调用本地函数的java对象就是这个jobject
-
④ 导入<jni.h>
-
⑤ 创建Android.mk makefile 告诉编译器.c的源文件在什么地方,要生成的编译对象的名字是什么
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := hello #指定了生成的动态链接库的名字
LOCAL_SRC_FILES := hello.c #指定了C的源文件叫什么名字include $(BUILD_SHARED_LIBRARY)
-
⑥ 调用ndk-build编译c代码生成动态链接库.so文件 文件的位置 lib->armeabi->.so
-
⑦ 在java代码中加载动态链接库 System.loadlibrary("动态链接库的名字"); Android.mkLOCAL_MODULE所指定的名字
网友评论