zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    表空间的改变
    特殊字符转换
    oracle下创建临时表
    约束
    删除数据库记录的同时删除磁盘文件
    数据文件
    级联删除case
    oracle net连接方式

    在Oracle服务器端配置监听器
  • 原文地址:https://www.cnblogs.com/H-BolinBlog/p/5869184.html
Copyright © 2011-2022 走看看