首页 > 其他 > 详细

JNI基础

时间:2015-12-04 22:47:16      阅读:312      评论:0      收藏:0      [点我收藏+]

1,JNI基本使用,

  (1)新建一个java类(com.example.jniparsedata.ParseData),专门用于和c进行交互

  (2)在java类中声明方法 public native String StringHellowFromC();

  (3)进入该类所在目录(../src),使用javah 指令,编译该类javah com.example.jniparsedata.ParseData,在Android工程中新建目录jni,将生成的com_example_jniparsedata_ParseData.h文件拷贝到jni目录下

  (4)在jni目录下新建一个hello.c文件,在hello.c中将文件头加上#include <stdio.h>    #include "com_example_jniparsedata_ParseData.h"

  (5)去com_example_jniparsedata_ParseData.h文件把下列方法名拷贝到hello.c文件中,要在该方法中加上参数

      JNIEXPORT jstring JNICALL Java_com_example_jniparsedata_ParseData_StringHellowFromC
          (JNIEnv * env, jobject jobject){
          //方法实现,返回一个字符串给java

        return (*env)->NewStringUTF(env,"hellofromc");
      }

  (6)在jni目录下创建Android.mk文件,内容如下

       LOCAL_PATH := $(call my-dir)

         include $(CLEAR_VARS)
          #文件被编译后对应的类库名称
         LOCAL_MODULE    := hello
         #要编译的文件
         LOCAL_SRC_FILES := hello.c

         include $(BUILD_SHARED_LIBRARY)

  (7)进入到jni 目录下,使用cygwin编译,使用指令ndk-build

  (8)在调用c方法的类中加入静态语句块,引入类库

        static{
                System.loadLibrary("hello");//在mk文件中写的
            }

  (8)刷新项目,项目目录下多出一个obj目录,可以运行程序了

JNI基础

原文:http://www.cnblogs.com/bxf123/p/5020628.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!