Android Studio开发之JNI开发 ---- 使用cmake方式来完成之前的Android.mk和Application.mk的功能,方式1(基础版)

如题,现在就是要使用比较流行的cmake方式来完成so库开发,之前使用的是Andorid.mk和Application.mk的方式来生成so库的。方式比较老套,之前使用Andorid.mk和Application.mk的方式习惯了,现在将cmake的方式进行了部分修正,方便习惯自己的老思路。

1、在app/src/main/目录下,新建一个jni文件夹。里面存放一个JNI.cpp和一个CMakeLists.txt文件。如下截图:

分享我的源码,简单的很,就是抛砖引玉的作用,仅供参考:

CMakeLists.txt源码如下:

cmake_minimum_required(VERSION 3.4.1)

set(LOCAL_MODULE    DemoTest) # Specify the name of so that you will generate.

add_library(${LOCAL_MODULE}
             SHARED
             # Following , the same as LOCAL_SRC_FILES in Android.mk
             JNI.cpp )


target_link_libraries(${LOCAL_MODULE}
                       # Link the other so(dll).
                       log )

JNI.cpp源码:

#include <string>
using namespace std;

#include <jni.h>

extern "C"
JNIEXPORT jstring JNICALL
Java_com_terawins_www_demo001_1cmake_Java_1Interface_GetHell(JNIEnv *env, jobject instance) {

    // TODO
    string str = "Good afternoon, teacher.";
    return env->NewStringUTF(str.data());
}

2、配置一下app目录下的build.gradle文件:

externalNativeBuild {
        cmake {
            path 'src/main/jni/CMakeLists.txt'
        }
    }

添加位置:如下截图所示,

3、给出我的Java层JNI接口类声明方式,仅供参考:

package com.terawins.www.demo001_cmake;

public class Java_Interface {
    static {
        System.loadLibrary("DemoTest");
    }

    public native String GetHell();
}

 

---- The End.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章