NDK之打印调试信息Log

第一步:gradle配置ndk

  ndk {
            moduleName "Iso8583Lib"
            ldLibs "log", "z", "m"
            abiFilters "armeabi", "armeabi-v7a", "x86" //输出指定三种abi体系结构下的so库,目前可有可无。
        }

第二步:在需要的C文件加载头

#include <android/log.h>

第三步:定义打印方便使用的函数

#define LOG_TAG  "C_TAG"
#define LOGD(...)  __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)

第四步:测试使用

#include <jni.h>
#include <com_example_lanhe_android_jnistringdemo_jni_HelloWorld.h>
#include <android/log.h>
#define LOG_TAG  "C_TAG"
#define LOGD(...)  __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)

JNIEXPORT jstring JNICALL Java_com_example_lanhe_1android_jnistringdemo_jni_HelloWorld_getHelloWorld
  (JNIEnv *env, jobject thiz){
  jstring hello = (*env)->NewStringUTF(env, "Hello Jni");
  int helloLen=(*env) -> GetStringLength(env,hello);
  LOGD("hello.length=%d",helloLen);
  return hello;
}

结果如下:

 

 

额外:使用 __android_log_write 也是可以的。

 

备注: 

调用其中的日志打印:

int __android_log_write(int prio, const char *tag, const char *text);

第一个参数为打印级别,为以下枚举之一:

typedef enum android_LogPriority {
    ANDROID_LOG_UNKNOWN = 0,
    ANDROID_LOG_DEFAULT,    /* only for SetMinPriority() */
    ANDROID_LOG_VERBOSE,
    ANDROID_LOG_DEBUG,
    ANDROID_LOG_INFO,
    ANDROID_LOG_WARN,
    ANDROID_LOG_ERROR,
    ANDROID_LOG_FATAL,
    ANDROID_LOG_SILENT,     /* only for SetMinPriority(); must be last */
} android_LogPriority;

 参考资料:

http://blog.csdn.net/h183288132/article/details/50379450

 

转载于:https://www.cnblogs.com/H-BolinBlog/p/5869184.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值