美文网首页
AndroidStudio编写JNI文件

AndroidStudio编写JNI文件

作者: Smile丶微笑 | 来源:发表于2017-03-23 15:41 被阅读0次

    JNI---Java Native Inerface

    1、编写 .java类

    packagecom.vione.utils;

    public class TestUtil {

    static{

    System.loadLibrary("testUtil");

    }

    public native String stringTest(String str);

    }

    2、根据.java类生产.h文件

    (1)进入java目录 cd D:\AndroidStudioProjects\vione\app\src\main\java

    (2)执行 javah -d ../jni com.vione.utils.TestUtil

    com_vione_utils_TestUtil.h

    3.编写.c文件

    com_vione_utils_TestUtil.c

    #include

    JNIEXPORT jstring JNICALL Java_com_vione_utils_TestUtil_stringTest

    (JNIEnv *env,jobject obj,jstring string) {

    return string;

    };

    4.在jni目录下添加Android.mk文件(必须是这个名称Android.mk)文件

    LOCAL_PATH := $(call my-dir)

    include $(CLEAR_VARS)

    LOCAL_MODULE := demo //要生成的so库的名称,但实际为libdemo.so

    LOCAL_SRC_FILES := demo.c //要使用的文件,刚才编写的demo.c文件

    include $(BUILD_SHARED_LIBRARY)

    5.编译so文件(必须配置ndk环境变量)

    执行命令ndk-build

    两个必要设置

    1、在local.properties中设置NDK路径,也可以AndroidStudio中设置,我的NDK示例如下:

    2、在app的build.gradle的android节点下设置:

    这两处必要的地方该修改完毕后就可以调用我们生成的so文件了。

    6.使用so文件

    (1)可以拷贝到相应的引用文件中

    (2)在TestUtil.java 文件loadLibrary方法

    7、其他

    在gradle.properties中添加 Android.useDeprecatedNdk=true

    在build.gradle(app)中添加

    sourceSets {

    main{

    jniLibs.srcDirs= ['libs']

    jni.srcDirs= []

    }

    }

    相关文章

      网友评论

          本文标题:AndroidStudio编写JNI文件

          本文链接:https://www.haomeiwen.com/subject/gqvxuttx.html