工程下載https://download.csdn.net/download/cnicfhnui/10422621
一、Android Studio 創建so庫,調用so庫
第一步
先下載NDK開發包,下載地址:https://developer.android.google.cn/ndk/downloads/
上面網址如果失效,直接百度“NDK下載”,找到谷歌開發者官網,NDK下載,選擇“NDK Revision History.”可以下載歷史版本,然後根據自己的系統選擇下載,我下載的是android-ndk-r14b版本。下載後解壓到英文目錄。打開android studio->file->project structure,選擇SDK Location->Android NDK location:選擇剛纔解壓到的目錄
在工程local.properties文件中添加
android.useDeprecatedNdk=true
創建一個新java類,JniTest
其中的方法與庫的名字後面都可以改的,先寫出你要的方法名就行了,我寫了兩個,一個加法返回,一個返回固定字符串。
然後根據這個類來生成JniTest.h
菜單->Build->Make Project,編譯完成後會生成JniTest.class
打開Android Studio中的Terminal終端,裏面cd 到你工程的java目錄,執行javah com.jnijartest.myapplication.JniTest
D:\WebServer\MyApplication>cd app/src/main/java
D:\WebServer\MyApplication\app\src\main\java>javah com.jnijartest.myapplication.JniTest
如果提示:錯誤: 編碼GBK的不可映射字符,把JniTest類中的註釋刪除掉
執行成功會生成com_jnijartest_myapplication_JniTest.h文件
在MyApplication\app\src\main目錄中新建文件夾jni,把com_jnijartest_myapplication_JniTest.h放進去,並且手動創建一個com_jnijartest_myapplication_JniTest.c
打開com_jnijartest_myapplication_JniTest.c,實現.h中的方法
在jni文件夾下新建Android.mk和Application.mk文件
Android.mk
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) TARGET_PLATFORM := android-3 LOCAL_MODULE := JniTest LOCAL_SRC_FILES := com_jnijartest_myapplication_JniTest.c LOCAL_LDLIBS := -llog include $(BUILD_SHARED_LIBRARY)
- 1
- 2
- 3
- 4
- 5
- 6
Application.mk
APP_ABI := arm64-v8a armeabi armeabi-v7a mips mips64 x86 x86_64 APP_PLATFORM := android-14打開build.gradle,在android中添加
sourceSets{ main{ jniLibs.srcDirs = ['libs'] } } externalNativeBuild { ndkBuild { path 'src/main/jni/Android.mk' } }
在終端中執行ndk-build會生成各個平臺的SO庫
最後就是調用啦
在MainActivity.java中實現+運行結果