最简单明了的NDK开发以及生成.so库

  • 首先下载NDK插件,然后选中app右键打开open module setting,设置NDK路径目录下的ndk-bundle就ok啦!
    最简单明了的NDK开发以及生成.so库

1、在我们的项目中的gradle.properties文件中加上 android.useDeprecatedNdk = true

2、怎么生成头文件.h文件,首先新建一个写native方法的类:
最简单明了的NDK开发以及生成.so库

3、类写好了,然后点击锤子make 一下项目,然后复制 app、build、intermediates、classes下的debug目录路径,打开Terminal输入 cd 复制的debug目录
最简单明了的NDK开发以及生成.so库
然后在debug目录下输入:javah -jni 包名+类名(也就是刚才写的NdkTest类路径),回车你就可以在denbug目录下看见.h文件了。

4、接着在main目录下创建jni目录,把刚才生成的头文件.h剪切到jni下,再在jni目录下新建一个.c文件:
最简单明了的NDK开发以及生成.so库

把.h文件的方法直接负责到c文件中,记得引入.h
最简单明了的NDK开发以及生成.so库,照着写就没有错!

写一个Android.mk文件

LOCAL_PATH := (callmydir)include(CLEAR_VARS)

LOCAL_MODULE := JniTest
LOCAL_SRC_FILES := TestJni.c
include $(BUILD_SHARED_LIBRARY)

然后右击jni文件夹选择我们的命令ndk-build
最简单明了的NDK开发以及生成.so库

为了方便生成so文件,我们可以在Android Studio → External Tools中设置命令,来生成.so文件

最简单明了的NDK开发以及生成.so库

最简单明了的NDK开发以及生成.so库

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这个文件下,

如果不写这句话,什么都不填,则为默认的文件夹)

然后右击jni文件夹选择我们的命令ndk-build

最简单明了的NDK开发以及生成.so库

这样就生成.so文件了:

最简单明了的NDK开发以及生成.so库

build.gradle的配置

最简单明了的NDK开发以及生成.so库

调用:

最简单明了的NDK开发以及生成.so库