ndk 开发基础一 Android调用c源码

注意:ndk 通信协议:

注意:ndk 通信标准:Java_包名_类名_方法名

// Created by Jasmine on 2020/9/14.

#include <jni.h>

JNIEXPORT jstring JNICALL

Java_com_example_tongxiaodemo_activity_WatchDogActivity_watchdog(JNIEnv *env, jobject thiz) {

return (*env)->NewStringUTF(env, "C");

}

一.ndk环境配置

        1.下载必要文件: NDK ; CMake

ndk 开发基础一 Android调用c源码

        2.配置ndk路径

ndk 开发基础一 Android调用c源码

 

二.cpp(jni)文件配置  

ndk 开发基础一 Android调用c源码

ndk 开发基础一 Android调用c源码

       1.watchdog.c

// Created by Jasmine on 2020/9/14.

#include <jni.h>

JNIEXPORT jstring JNICALL

Java_com_example_tongxiaodemo_activity_WatchDogActivity_watchdog(JNIEnv *env, jobject thiz) {

return (*env)->NewStringUTF(env, "C");

}

     2.CMakeLists.txt

# 设置构建native library所需的CMake最低版本。

cmake_minimum_required(VERSION 3.4.1)

#创建一个库(多次调用add_library即可创建多个库)

add_library( # 设置库的名称

demo-lib

# 将库设置为共享库(即so文件)

SHARED

# 指定源文件的相对路径

demo.cpp

)

add_library( # 设置库的名称

watchdog-lib

# 将库设置为共享库(即so文件)

SHARED

# 指定源文件的相对路径

watchdog.c

)

 三.配置gradle(app)文件

//    ndk配置
    externalNativeBuild {
        cmake {
            path file('src/main/jni/CMakeLists.txt')
        }
    }

四:android 代码调用c源文件

ndk 开发基础一 Android调用c源码