Android Studio NDK 開發 記錄在Android Studio中NDK簡單開發的步驟 用到的Android Studio版本為3.5。 配置NDK 下載NDK 一般在SDK下已經有自帶的ndk文件夾,如sdk目錄下的ndk bundle文件夾。 如果沒有,可以在SDK Manager ...
Android Studio NDK 開發
記錄在Android Studio中NDK簡單開發的步驟
用到的Android Studio版本為3.5。
配置NDK
下載NDK
一般在SDK下已經有自帶的ndk文件夾,如sdk目錄下的ndk-bundle文件夾。
如果沒有,可以在SDK Manager中下載
下載LLDB、NDK兩項
下載完成後,可以在sdk目錄下看到ndk的文件夾
配置環境變數
我的電腦-屬性-高級系統設置-環境變數
新建一個ANDROID_NDK變數,配置上ndk文件夾的位置(在這個文件夾下可以看ndk-build.cmd等文件)
然後將這個變數加入到path變數中
生成SO庫
新建一個Hello.java文件,裡面增加一個本地方法
public static native String hi();
執行Build-Make Project,在app\build\intermediates\javac\debug\classes目錄下執行以下cmd命令生成頭文件:
javah -jni com.wangyz.ndk.Hello
在該目錄下,可以看到生成的com_wangyz_ndk_Hello.h文件。
在app/src/main/目錄下新建jni目錄,將生成的頭文件複製到jni目錄下。
在jni目錄下新建com_wangyz_ndk_Hello.c文件,編寫C語言實現代碼:
#include "com_wangyz_ndk_Hello.h"
JNIEXPORT jstring JNICALL Java_com_wangyz_ndk_Hello_hi
(JNIEnv *env, jclass clazz){
return (*env)->NewStringUTF(env,"Hello");
}
在jni目錄下新建Android.mk文件,內容如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := Hello
LOCAL_SRC_FILES := com_wangyz_ndk_Hello.c
include $(BUILD_SHARED_LIBRARY)
在jni目錄下新建Application.mk文件,內容如下:
APP_ABI := all
在該目錄下執行cmd命令:
ndk-build
執行後生成所需的so文件。
引用SO庫
在app/src/main目錄下新建目錄jniLibs,將對應的so複製到該目錄下:
在Activity中引入:
static {
System.loadLibrary("Hello");
}
使用SO庫中的方法
String hi = Hello.hi();
Toast.makeText(getApplicationContext(), hi, Toast.LENGTH_SHORT).show();
Android Studio中NDK的簡單開發到此結束。