其他分享
首页 > 其他分享> > 240,安卓最牛教材

240,安卓最牛教材

作者:互联网

打开 Android Studio 的 Terminal 到 移动到 app/src/main/java 目录下执行命令:javah -jni com.ldw.jnitest.JniDataUtil,

执行以后在java路径下生成com_ldw_jnitest_JniDataUtil.h

在app/src/main目录下创建一个jni的目录,然后将com_ldw_jnitest_JniDataUtil.h移动到jni的目录下,同时在 jni 目录下创建一个 c/c++ resource 文件 test.cpp,

#include<jni.h>

//导入我们创建的头文件

#include “com_ldw_jnitest_JniDataUtil.h”

#ifdef __cplusplus

extern “C” {

#endif

/*

*/

JNIEXPORT jstring JNICALL Java_com_ldw_jnitest_JniDataUtil_get

(JNIEnv * env, jclass obj)

{

return env->NewStringUTF(“This is my NDK Application”);

}

#ifdef __cplusplus

}

#endif

下面的这个方法使我们从头文件中复制过来的,头文件是自动生成的com_ldw_jnitest_JniDataUtil.h

/* DO NOT EDIT THIS FILE - it is machine generated */

#include <jni.h>

/* Header for class com_ldw_jnitest_JniDataUtil */

#ifndef _Included_com_ldw_jnitest_JniDataUtil

#define _Included_com_ldw_jnitest_JniDataUtil

#ifdef __cplusplus

extern “C” {

#endif

/*

*/

JNIEXPORT jstring JNICALL Java_com_ldw_jnitest_JniDataUtil_get

(JNIEnv *, jclass);

#ifdef __cplusplus

}

#endif

#endif

然后我们在 jni 目录下创建两个 .mk 文件:

一个 Android.mk:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := JNITest

LOCAL_SRC_FILES := test.cpp

include $(BUILD_SHARED_LIBRARY)

一个是 Application.mk:

APP_ABI := all

Android.mk参考

LOCAL_PATH:=$(call my-dir)

include $(CLEAR_VARS)

#libtestjni.so //生成so的名字

LOCAL_MODULE := testjni //生成模块的规则,生成的so的名字testjni

LOCAL_SRC_FILES := test.cpp //生成模块的规则,so依赖的cpp文件可以有多个

LOCAL_LDLIBS := -llog //生成模块的规则,当前so依赖的so

include $(BUILD_SHARED_LIBRARY) //生成尾缀是so的文件

然后我们需要生成 so 库:

打开 Terminal,到 app/src/main/jni 目录下,使用 ndk-build 命令生成 so 库:

接着打开 app/src/main/libs 就可以看见我们生成的 so 库了。

5.为了防止 so 库兼容错误,在 gradle.properties 最后一行添加:

android.useDeprecatedNdk=true

结语

有需要的小伙伴可以私信我免费分享给你或者点击下面链接自行领取

Android学习PDF+架构视频+面试文档+源码笔记

](https://github.com/a120464/Android-P7/blob/master/Android%E5%BC%80%E5%8F%91%E4%B8%8D%E4%BC%9A%E8%BF%99%E4%BA%9B%EF%BC%9F%E5%A6%82%E4%BD%95%E9%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md)

[外链图片转存中…(img-qGO5eD3v-1643941442669)]

标签:jnitest,安卓,so,ldw,240,JniDataUtil,最牛,jni,com
来源: https://blog.csdn.net/m0_66145060/article/details/122781440