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中实现+运行结果




猜你喜欢

转载自blog.csdn.net/cnicfhnui/article/details/80360221