android jni 配置介绍

本文是最基本的配置介绍。可以使用。没有其他说明。
java 代码

    static {
        System.loadLibrary("maincpp-lib");
    }
    public native void init(String objPath);
    public native void resize(int width, int height);

jni代码

#include 
#include 
#include 

extern "C"
JNIEXPORT void JNICALL
Java_com_yang_testapp_jiege_nativefile_GLESNative_resize(JNIEnv *env, jobject instance, jint width,
                                                         jint height) {
    rendererES2->resize(width, height);
    // TODO

}

gradle说明
设置ndk的路径。在local.properties中设置
gradle文件声明 ndk的配置

defaultConfig {
 ndk {
// 声明生成的so库的名字 
            moduleName 'maincpp-lib'  //需要跟java中的名字对应
            abiFilters 'armeabi-v7a'   // 编译的规则和适应的平台
        }
        sourceSets {
            main {
                jniLibs.srcDirs = ['src/main/jni']
            }
        }
//  在app文件下的externalNativeBuild文件中的设置cmake的声明
        externalNativeBuild {
            cmake {
                cppFlags "-frtti -fexceptions"
                abiFilters 'x86', 'x86_64', 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'mips', 'mips64'
            }
        }
}

externalNativeBuild {
        cmake {
            path 'CMakeLists.txt'
        }
    }

cMake 说明

cmake_minimum_required(VERSION 3.4.1)

add_library( 
             maincpp-lib
             SHARED
             src/main/jni/maincpp-lib.cpp
             src/main/jni/RenderGLes.cpp
             src/main/jni/Obj3Ddata.cpp)
target_link_libraries(
            maincpp-lib
            # native_app_glue
            EGL
            GLESv2
            log)

你可能感兴趣的:(android jni 配置介绍)