在android jni中使用log
来源:互联网 发布:官方数据透露大秘密 编辑:程序博客网 时间:2024/05/18 02:43
开发环境:
ubuntu 10.10 + eclipse + adt +android ndk + android sdk
1、新建简单项目:JNIDemo,
设计jni到java类:
- package com.lt.jni
- public class JNI {
- /**
- * call the native printf method to print
- */
- public native void print();
- public native String sayHello();
- }
2、在android到bin目录下,执行命令:
javah -jni com.lt.jni.JNI 来生成头文件:com_lt_jni_JNI.h
- /* DO NOT EDIT THIS FILE - it is machine generated */
- #include <jni.h>
- /* Header for class com_lt_jni_JNI */
- #ifndef _Included_com_lt_jni_JNI
- #define _Included_com_lt_jni_JNI
- #ifdef __cplusplus
- extern "C" {
- #endif
- /*
- * Class: com_lt_jni_JNI
- * Method: print
- * Signature: ()V
- */
- JNIEXPORT void JNICALL Java_com_lt_jni_JNI_print
- (JNIEnv *, jobject);
- /*
- * Class: com_lt_jni_JNI
- * Method: sayHello
- * Signature: ()Ljava/lang/String;
- */
- JNIEXPORT jstring JNICALL Java_com_lt_jni_JNI_sayHello
- (JNIEnv *, jobject);
- #ifdef __cplusplus
- }
- #endif
- #endif
3、在项目目录下,新建jni目录,并新建c源文件com_lt_jni_JNI.c:
- #include <jni.h>
- #include <stdio.h>
- #include <string.h>
- #include <android/log.h>
- #include "com_lt_jni_JNI.h"
- /*
- * Class: com_lt_jni_JNI
- * Method: print
- * Signature: ()V
- */
- JNIEXPORT void JNICALL Java_com_lt_jni_JNI_print
- (JNIEnv *env, jobject obj)
- {
- __android_log_print(ANDROID_LOG_INFO,"JNI","Java_com_lt_jni_JNI_print");
- printf("Hello world!\n");
- return ;
- }
- JNIEXPORT jstring JNICALL Java_com_lt_jni_JNI_sayHello
- (JNIEnv *env, jobject obj)
- {
- __android_log_print(ANDROID_LOG_INFO,"JNI","Java_com_lt_jni_JNI_sayHello");
- return (*env)->NewStringUTF(env,"Hello JNI");
- }
关键代码:#include <android/log.h>
__android_log_print(ANDROID_LOG_INFO,"TAG","log info");
4、在jni目录下新建Android.mk文件:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES:=\
com_lt_jni_JNI.c
LOCAL_CFLAGS := -O2 -g
#LOCAL_CFLAGS += -D__FAVOR_BSD
#LOCAL_C_INCLUDES += \
# bionic/libc/include\
# external/libpcap
LOCAL_C_INCLUDES := \
$(JNI_H_INCLUDE)
#LOCAL_STATIC_LIBRARIES += libpcap
#LOCAL_SHARED_LIBRARIES += libssl libcrypto
LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog
LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)
#LOCAL_MODULE_TAGS := eng
LOCAL_MODULE := helloworld
include $(BUILD_SHARED_LIBRARY)
- 在android jni中使用log
- 在android jni中使用log
- Android在JNI中输出输出LOG
- Android在JNI中输出Log
- [JNI]如何在ANDROID JNI 的C++中打Log
- 在 Android 中 使用JNI
- 如何在ANDROID JNI 的C++中打Log
- 如何在ANDROID JNI 的C++中打Log
- 如何在ANDROID JNI 的C++中打Log
- 如何在ANDROID JNI 的C++中打Log
- 如何在ANDROID JNI 的C++中打Log
- 如何在ANDROID JNI 的C++中打Log
- 如何在ANDROID JNI 的C++中打Log
- 如何在ANDROID JNI 的C++中打Log
- 如何在Android jni 的c/c++中打Log
- 如何在ANDROID JNI 的C++中打Log
- 如何在ANDROID JNI 的C++中打Log
- 在android jni中添加输出日志Log
- ORACLE 锁机制
- ubuntu 相关命令
- 关于jni里面回调的使用
- ubuntu 11.10汉化
- 《深入Spring 2:轻量级J2EE开发框架原理与实践》第二章 Spring概述及入门 .
- 在android jni中使用log
- 计划
- 关于mysql中中文乱码的问题
- ViewFlipper
- Android XML解析
- 转载:ant编译时抛出OutOfMemoryError
- 整数因子分解问题
- free
- oracle设置客户端字符集并导出