1. 程式人生 > >android studio NDK使用,編譯c生成.so實踐記錄

android studio NDK使用,編譯c生成.so實踐記錄

開發環境,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已經生成,呼叫