Android Studio 2.3安装配置NDK与JNI开发详解

一、安装NDK

1. 在菜单栏选择File -> Settings -> Appearance & Behavior -> System Settings -> Android SDK -> SDK Tools选中LLDBNDK,点击【Apply】按钮后,Android Studio会提示安装NDK。

2. 点击【OK】按钮安装NDK,( 如果第一次安装NDK失败,重复第一步就可以 )

3. NDK的默认安装路径:Android SDK 路径\ndk-bundle 文件夹

 

二、JNI项目建立

1. 新建一个工程File -> New -> New Project

2. 在main文件夹下新建一个jni目录File -> New -> Directory

3. 在jni目录下新建一个 hello-jni.c文件File -> New -> C/C++ Source File

4. 在hello-jni.c 中编写c代码

  #include <jni.h>
  //jstring: 返回值类型 String
  //规则: Java_包名_类名_方法名(jvm虚拟机的指针,调用者对象)
  jstring Java_com_tengmuz_jnidemo_MainActivity_hellojni(JNIEnv* env,jobject thiz)
  {
      return (*env)->NewStringUTF(env, "Hello,JNI. 你好,JNI !!!");
  }

5. 在jni目录下新建android.mk文件File -> New -> File,并添加以下内容:

  #指定编译的文件夹  指定当前文件目录
  LOCAL_PATH := $(call my-dir)
  #编译器会定义很多的临时变量,中间变量,最好清空所有的中间变量。
  include $(CLEAR_VARS)
  #编译出来模块的名称
  LOCAL_MODULE    := hello-jni
  # 编译的源代码的名称
  LOCAL_SRC_FILES := hello-jni.c
  #编译一个动态库,静态库
  #静态库 文件名.a   包含所有的函数并且函数运行的依赖,体积大,包含所有的API
  #动态库 文件名.so  包含函数,不包含函数运行的依赖,体积小,运行的时候,去操作系统寻找需要的API
  include $(BUILD_SHARED_LIBRARY)

6. 在build.gradle中配置

  externalNativeBuild {
      ndkBuild {
          path file("src\\main\\jni\\Android.mk")
      }
  }

7. 点击 Make Project(或Ctrl+F9) 即可生成.so文件(路径: app\build\intermediates\ndk-build)

 

三、 JAVA调用JNI

1. 在MainAvtivity加载JNI动态链接库,添加以下代码:

  static{
          //System.loadLibrary("库文件名称不带前缀,后缀名");
          System.loadLibrary("hello-jni");
  }

2. 声明native的方法

  public native String hellojni();

3. 调用native的方法,使用Toast来提示内容

  String str = hellojni();
  Toast.makeText(this,str,Toast.LENGTH_SHORT).show();

4. JNIDemo测试效果

5. JNI工程源代码

Download -> JNIDemo.zip

 

打赏 赞(0)
微信
支付宝
微信二维码图片

微信扫描二维码打赏

支付宝二维码图片

支付宝扫描二维码打赏

x

共有 4 条评论

  1. Meilican

    文章很用心,谢谢!

    1. 藤木z

      谢谢!

  2. samchan

    楼主写的很详细,赞

    1. 藤木z

      谢谢

Top