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
- Android Jni开发之eclipse中创建Jni程序和打印log
- Android Jni开发之Android Studio中创建Jni程序
- JNI开发之c代码中LOG打印调试信息
- Android jni 开发中C/C++层打印Log信息
- android jni打印log
- Android JNI打印Log
- JNI 中打印Log
- 11.Android之JNI实现函数中LOG打印
- Android开发在Jni中的log打印
- NDK开发中JNI打印log信息
- jni开发中打印log信息
- Android Stuido Ndk-Jni 开发(二):Jni中打印log信息
- JNI编程之打印log
- Android NDK JNI LOG 打印
- android-----JNI中的log打印
- android-----JNI中的log打印
- android-----JNI中的log打印
- android-----JNI中的log打印
- Mac OS X的内存
- Cannot create TypedQuery for query with more than one return using requested result type
- 导出EXCEL时科学计数法问题
- Android studio app:clean...unable to delete file: ... appcompat-v7\23.11\jar\classes.jar
- find 必杀技巧
- Android Jni开发之eclipse中创建Jni程序和打印log
- 在shell下批量管理redis数据
- 追女孩啥时候该表白
- programming in lua 之 lua api函数
- 文本分析之中文分词
- Oracle笔试题
- 简单的网络入侵法
- Android 开发技巧集合
- 【kali Linux】live u盘的persistence