1. 程式人生 > >Android Studio中so庫的建立與使用、jar庫(jar呼叫so庫)的建立與使用(一)

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中實現+執行結果