android-----JNI中的log打印

农村四月闲人少,勤学苦攻把名扬。这篇文章主要讲述android-----JNI中的log打印相关的知识,希望能为你提供帮助。
本文转载自:http://blog.csdn.net/zengraoli/article/details/11644815
1. 导入log头文件
在你使用的 .c/ .cpp 文件中
导入 log.h 头文件
  #include< android/log.h>
 
 
2.在Android.mk 中
加上
LOCAL_LDLIBS :=-llog
注意Android.mk里有一行include $(CLEAR_VARS)
必须把LOCAL_LDLIBS :=-llog放在它后面才有用,
否则相当于没写。
 
 
3. 定义LOG 函数
先定义一个全局变量,再定义一些输出的LOG函数:
[cpp]  view plaincopyprint?    

  1. #define  TAG  "myDemo-jni"  //  这个是自定义的LOG的标识     
  2. #define  LOGD(...)  __android_log_print(ANDROID_LOG_DEBUG,TAG  ,__VA_ARGS__)  //  定义LOGD类型     
  3. #define  LOGI(...)  __android_log_print(ANDROID_LOG_INFO,TAG  ,__VA_ARGS__)  //  定义LOGI类型     
  4. #define  LOGW(...)  __android_log_print(ANDROID_LOG_WARN,TAG  ,__VA_ARGS__)  //  定义LOGW类型     
  5. #define  LOGE(...)  __android_log_print(ANDROID_LOG_ERROR,TAG  ,__VA_ARGS__)  //  定义LOGE类型     
  6. #define  LOGF(...)  __android_log_print(ANDROID_LOG_FATAL,TAG  ,__VA_ARGS__)  //  定义LOGF类型     

上述代码中定义的函数 
分别对应于Android 的java代码中的
【android-----JNI中的log打印】  Log.d(), Log.i(), Log.w(),Log.e(), Log.f()等方法.
 
 
4.举例
 
[cpp]  view plaincopyprint?    
  1. #include  < jni.h>    
  2. #include  < string.h>    
  3. #include  < android/log.h>    
  4.    
  5. #define  TAG        "myhello-jni-test"  //  这个是自定义的LOG的标识   
  6. #define  LOGD(...)    __android_log_print(ANDROID_LOG_DEBUG,TAG,__VA_ARGS__)  //  定义LOGD类型   
  7.    
  8.   extern  "C"  {   
  9.           JNIEXPORT  jstring  JNICALL  Java_com_snail_helloworld_MainActivity_myhello(JNIEnv  *  env,  jobject  obj);    
  10.   };    
  11.    
  12.   JNIEXPORT  jstring  JNICALL  Java_com_snail_helloworld_MainActivity_myhello(JNIEnv  *  env,  jobject  obj)   
  13.   {   
  14.           int  i  =  0;    
  15.           LOGD("##########  i  =  %d",  i);    
  16.           return  env-> NewStringUTF("Hello  From  CPP");    
  17.   }   
 
 
Android.mk
 
[cpp]  view plaincopyprint?    
  1. LOCAL_PATH  :=  $(call  my-dir)   
  2.    
  3. include  $(CLEAR_VARS)   
  4.    
  5. LOCAL_MODULE        :=  hello   
  6. LOCAL_SRC_FILES  :=  hello.cpp   
  7. LOCAL_LDLIBS  :=-llog   
  8.    
  9. include  $(BUILD_SHARED_LIBRARY)   


 
android-----JNI中的log打印

文章图片
 
 

    推荐阅读