1. 程式人生 > >ndk 環境搭建

ndk 環境搭建

1.在安裝好的as,開啟:

配置ndk路徑,如果沒有下載在下面提示框中有選擇自動下載。

2.在專案的gradle.properties檔案中加上 android.useDeprecatedNdk = true (此項不同as版本好像可以不用新增)

3.為了方便生成標頭檔案和so檔案,我們可以在Android Studio → External Tools中設定兩個命令,分別來生成標頭檔案和生成.so檔案。

program:$JDKPath$/bin/javah

Arguments:-encoding UTF-8 -d ../jni -jni $FileClass$

Working directory:$SourcepathEntry$\..\java

program:E:\Android\ndk-bundle\build\ndk-build.cmd    (ndk-build.cmd所在資料夾的路徑)

Arguments:可以不用填

Working directory:$ModuleFileDir$\src\main  (這給路徑一定要填對,不然找不到需要編譯的C++原始檔)

4.寫測試類:

package com.example.williamwang.myapplication;

public class NdkTest {
    static {
        System.loadLibrary("JniTest");
    }

    public static native String getString();
}

5.右擊這個類選擇剛才寫的javah命令,就會生成標頭檔案。

6.根據標頭檔案寫一個測試的.cpp檔案

Android.mk檔案:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE := JniTest
LOCAL_SRC_FILES := com_example_williamwang_myapplication_NdkTest.cpp
include $(BUILD_SHARED_LIBRARY)

7.然後右擊jni資料夾選擇我們的命令ndk-build

生成了so檔案。

8.build.gradle新增配置

jniLibs.srcDirs是剛剛生成so的路徑,不能寫錯,不然so不會編譯進apk中。執行的時候會報錯。

9.新增呼叫測試。

10.執行結果: