Android Jni开发之eclipse中创建Jni程序和打印log

来源:互联网 发布:asp.net编程软件 编辑:程序博客网 时间:2024/05/23 13:27

运行环境:eclipse

一般创建jni程序需要如下几个步骤

一、创建JNI目录

在src目录下新建一个Jni的子目录

二、编写native java层方法

在java层编写响应的native方法,代码如下

public static native String getStringFromNative();

三、又分成以下几步

1、生成jni头文件,进入项目目录下,通过javah生成.h文件,如下图所示

                              

产生响应的的.h文件,代码如下

JNIEXPORT jint JNICALL Java_com_lin_myjin_MyJniMethod_getadd  (JNIEnv *, jobject, jint);

2、编写 java Native 代码,新建一个对应的.c文件,实现该方法,代码如下

#include "stdio.h"#include "com_vince_jnidemo_MainActivity.h"JNIEXPORT jstring JNICALL Java_com_vince_jnidemo_MainActivity_getStringFromNative  (JNIEnv *env, jclass jclas){return (*env)->NewStringUTF(env,"hello Jni");}

3、配置android.mk文件,代码如下

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE    := jnidemoLOCAL_SRC_FILES := com_vince_jnidemo_MainActivity.cinclude $(BUILD_SHARED_LIBRARY)
4、进入项目目录下编译,生成.so文件,如下图所示

                              

5、在我们的类中添加如下代码,把生成的响应的.so文件加载到项目中

static {System.loadLibrary("jnidemo");}

至此,一个jni小项目完成了。

jniDemo:http://download.csdn.net/detail/u012350993/9425564


Ok,上面主要是介绍了如何在项目中使用jni,下面看下如何在c文件中打印log,其实这些都不要记,只需要知道如何是用就可以,我们可以找到对应ndk文件夹下samples打开里面的native-media,查看里面是怎样打印log的,我们可以直接拿过来用就可以了。

我们发现只需要做一下两点就可以了,

首先,修改mk文件加入,

# for loggingLOCAL_LDLIBS    += -llog
其次,在.c文件中加入

#include <android/log.h>#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, TAG, __VA_ARGS__)
至此,我们就可以在我们的代码中使用了,代码如下

LOGV("hello Jni %s","log success");
运行之后,我们可以log中看到对应的信息


其实我们可以再ndk中找到如下路径的文件:E:\java\android-ndk-r9d\platforms\android-14\arch-arm\usr\include\android\log.h其实我们引用的就是这个文件,打开文件之后,我们可以采用不同定义,打印不同的信息。

源代码如下(注:该代码是在上面的基础上添加的):

http://download.csdn.net/detail/u012350993/9425781



0 0
原创粉丝点击