Android JNI环境搭建

来源:互联网 发布:only淘宝有几家店 编辑:程序博客网 时间:2024/06/06 23:51

环境工具

ubuntu,android studio,ndk

步骤

  1. 新建项目TestJNI

  2. 配置ndk目录Ctrl+Alt+Shift+S打开Project structure,点选SDK location,配置Android NDK location。将ndk根目录配置到该项中

  3. app module的 build.gradle 文件中 配置(module name,生成的so文件的名字,例如,moduleName=”test” 那生成的so名字就是libtest.so,modulename 配置的名字
    不需要加上lib前缀;ldLibs则定义了链接时使用到的库, log指liblog.so,是 程序中用到android/log.h需要引入; z-libz,压缩库 ; m-libm 数学运算,不配置ldLibs时,只会链接标准库libc。这三个不是必须,依赖于项目需要,还可以添加或者去掉并不需要的库;
    abiFilters 则定义了支持的ABIs; 在defaultConfig中还可以添加其他一些设置,不多赘述

defaultConfig {     ndk {            moduleName = "×××"            ldLibs "log", "z", "m"            abiFilters "armeabi", "armeabi-v7a", "x86"     }}
  1. 项目中package下新建class,例如在com.test包下面新建NativeUtils.java 文件,我们在这个类里面定义native方法方便调用。
    首先在该类中加载我们的so文件
static{        System.loadLibrary("libtest");    }

定义 native方法,跟普通方法一样,但是需要加上native关键字,表明是native方法:

    public static void **native** testJNI();

5.open terminal,切换到项目目录下

javah -d 生成的jni目录 -classpath 生成对应.h文件的class目录 -jni class全包名类名
例如:我们cd 到项目根目录下面(TestJNI)

cd TestJNIjavah -d ./src/main/jni/  -classpath ./build/intermediates/classes/debug/ -jni   com.test.NativeUtils

-d ./src/main/jni/表明生成的.h头文件在src/main/jni/ 文件夹
-classpath ./build/intermediates/classes/debug/ 该class文件在这个目录
-jni com.test.NativeUtils` 该class全名

这时,切换到src/main/jni/ 目录下面就可以看到生成的对应的.h文件

6.编写自己的c文件,然后打包app测试

0 0
原创粉丝点击