Android Studio中so庫的創建與使用、jar庫(jar調用so庫)的創建與使用(一)

工程下載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中實現+運行結果




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章