AndroidStudio编写JNI文件

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= []

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容