美文网首页
android jni 配置介绍

android jni 配置介绍

作者: XX杰 | 来源:发表于2018-11-29 16:44 被阅读0次

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

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

    jni代码

    #include <jni.h>
    #include <string>
    #include <android/log.h>
    
    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 配置介绍

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