JNI

转载 2013年12月05日 14:57:24

1、编写Java代码

首先我们需要编写自己的java代码

public class Hello {
    static{
        System.loadLibrary("hello-jni");
    }

    public native String sayHello();
}

2、把写好的类转换成.class文件,在src目录下运行

src>javac com/example/jnitest/Hello.java

会在com/example/jnitest/目录下生成Hello.class文件

3、把.class文件转换成头文件

src>javah com.example.jnitest.Hello

会在src/目录下生成com_example_jnitest_Hello.h文件

native方法名称转换详解:转换后的native方法全部以Java_为前缀,接着以类的全名标识(包名+类名),以下划线为分隔符(“_”),最后就是方法的名称

4、编写.c文件,包含第三步生成的.h文件,并实现里面的方法

#include "com_example_jnitest_Hello.h"
JNIEXPORT jstring JNICALL Java_com_example_jnitest_Hello_sayHello  (JNIEnv *env, jobject object)
  {
  		return (*env)->NewStringUTF(env, "JNITest Native String");
  }

5、安装NDK,其实就是找个地方解压。

6、编译.h和.c文件

在工程目录下建一个jni目录,将.h和.c文件都放到这目录下,再在jni目录下建一个android.mk文件

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := bigdata-jni
LOCAL_SRC_FILES := com_example_fullram_BigDataOccupy.c

include $(BUILD_SHARED_LIBRARY)

在工程目录下运行

JNITest>E:\android-ndk-r8\ndk-build.cmd

如果没有编译错误,会在libs/armeabi/目录下生成libbigdata-jni.so

7、在工程调用,新建Hello的实例,调用方法。

new Hello().sayHello()







相关文章推荐

Jni的基本详细使用

  • 2017年11月17日 11:09
  • 26.81MB
  • 下载

Android底层开发jni_ndk视频教程

  • 2017年10月30日 17:44
  • 126B
  • 下载

Android Studio NDK环境配置及JNI使用方法

Java通过JNI调用本地方法,而本地方法是以库文件的形式存放的(在Windows平台下是DLL文件形式,在UNIX机器上是SO文件形式)。通过调用本地的库文件的内部方法,使Java可以实现和本地机器...
  • Tongseng
  • Tongseng
  • 2016年11月02日 10:20
  • 16113

jni使用ndk-build的方式调用

  • 2017年05月16日 17:58
  • 20.03MB
  • 下载

android C++ 和 jni,根据JNIEnv的FindClass获取java类,包括多线程

c++ 代码 #include #include #include #include #include #include #include #incl...

android jni helloworld

  • 2016年03月04日 15:22
  • 2.42MB
  • 下载

常用JNI函数

  • 2016年11月01日 17:50
  • 36KB
  • 下载

Android的NDK开发(5)————Android JNI层实现文件的read、write与seek操作

/********************************************************************************************  * aut...
  • conowen
  • conowen
  • 2012年05月01日 16:46
  • 34814

JAVA JNI C++调用示例

  • 2016年10月26日 17:24
  • 41KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JNI
举报原因:
原因补充:

(最多只允许输入30个字)