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.

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