android studio NDK使用,編譯c生成.so實踐記錄
阿新 • • 發佈:2019-01-04
開發環境,android studio 2.1.2,SDK環境和NDK環境
SDK不說了,NDK環境配置網上也有很多,這裡就簡單記錄下:
1 下載NDK並安裝到電腦 D:\android\android-ndk-r11c
2 android studio中右鍵專案進入選單配置NDK
3 在專案的gradle.properties檔案中加上 android.useDeprecatedNdk = true
為了方便生成標頭檔案和so檔案,我們可以在Android Studio → External Tools中設定兩個命令,分別來生成標頭檔案和生成.so檔案
Program:
$JDKPath$/bin/javah
Parameters:
-encoding UTF-8 -d ../jni -jni $FileClass$
Working
directory: $SourcepathEntry$\..\java
Program:
D:\android\android-ndk-r11c\build\ndk-build.cmd
Parameters:
NDK_LIBS_OUT=$ModuleFileDir$/src/main/jniLibs
Working
directory: $ModuleFileDir$\src\main
(注意:NDK_LIBS_OUT=$ModuleFileDir$/src/main/jniLibs
這個含義是將生成的so檔案放在jniLibs這個檔案下,
如果不寫這句話,什麼都不填,則為預設的資料夾)
寫一個測試類
右擊這個類選擇剛才寫的javac命令,就會生成標頭檔案
根據標頭檔案寫一個測試的.c檔案
注意:打紅框的地方要和標頭檔案的名稱和方法命名一樣
寫一個Android.mk檔案
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := JniTest LOCAL_SRC_FILES := TestJni.c include $(BUILD_SHARED_LIBRARY)
然後右擊jni資料夾選擇我們的命令ndk-build
則生成了
build.gradle的配置
最後so已經生成,呼叫