1. 程式人生 > >AS3.0上開發NDK演示DEMO步驟

AS3.0上開發NDK演示DEMO步驟

Step1 建立NDK專案

注意勾選include C++ support

在這裡插入圖片描述

然後都是預設選項

Step2 建立本地JNI測試類

/**
 * @auther:HWQ
 * @description:
 * @date:2018-09-25
 * @time:22:04
 */
//建立JNI類
public class JNITest {
    //載入類庫名稱    稍後生成的so檔案與此處命名有關聯
    static {
        System.loadLibrary("MyNDK");
    }

    //寫一個測試JNI類的native方法    這裡就寫一個求和方法    最開始建立時報紅是正常的
    public native int getSum(int a, int b);
}

在這裡插入圖片描述

Step3 生成C++標頭檔案

進入到JNITest類下,然後輸入javah JNI類全路徑生成C++的標頭檔案。生成後需要稍等片刻才可以看見生成的標頭檔案。

在這裡插入圖片描述 在這裡插入圖片描述

Step4 將生成的標頭檔案複製到CPP資料夾下並改名。

在這裡插入圖片描述

例如改名為JNITest.h

在這裡插入圖片描述

然後建立cpp檔案JNITest.cpp,並補全cpp檔案中測試程式碼。然後刪除最初生成的標頭檔案com_ndk_archermind_myndk_JNITest.h。

在這裡插入圖片描述

//匯入jni.h標頭檔案
#include <jni.h>
//匯入JNI本地類生成的JNITest.h標頭檔案   注意此處不能使用include <JNITest.h>   而要使用include "JNITest.h"這樣引入   不然會報錯
#include "JNITest.h"

JNIEXPORT jint JNICALL Java_com_ndk_archermind_myndk_JNITest_getSum
        (JNIEnv *, jobject, jint a, jint b) {
    return a + b;
};

然後同步程式碼,此時再看JNITest類native方法已經不再報紅,變成灰色在這裡插入圖片描述

Step5配置CMakeLists檔案和Moudle下的build.gradle檔案

CMakeLists檔案修正如下 注意在CMakeLists下備註要在備註的前面加#符號

加//會不識別備註而報錯

在這裡插入圖片描述

其中類庫名稱是來自於JNITest這個本地類中的載入庫程式碼來的,兩者需要保持一致,即與下圖中的命名要一致

在這裡插入圖片描述

Moudle下的build.gradle檔案如下

在這裡插入圖片描述

Step6 在MainActivity中新增測試JNITest類程式碼

在這裡插入圖片描述

效果圖如下

在這裡插入圖片描述 動態

如果在安裝時發生下圖錯誤

在這裡插入圖片描述

請直接在Moudle的build.gradle檔案中ndk配置改為對應支援生成的類庫型別即可

在這裡插入圖片描述