zoukankan      html  css  js  c++  java
  • [Android Pro] Android studio jni中调用Log输出调试信息

    reference to : http://www.linuxidc.com/Linux/2014-02/96341.htm

    Android 开发中,java 可以方便的使用调试信息Log.i, Log.d ...,Jni层可否使用呢?答案是肯定的。

    1 为方便使用,先进行宏定义:

    eben_hpc_log.h内容如下:

    #ifndef _Included_hpc_Log
    #define _Included_hpc_Log
    #ifdef __cplusplus
    extern "C" {
    #endif
    #include <android/log.h>
    // 宏定义类似java 层的定义,不同级别的Log LOGI, LOGD, LOGW, LOGE, LOGF。 对就Java中的 Log.i log.d
    #define LOG_TAG    "hpc -- JNILOG" // 这个是自定义的LOG的标识
    //#undef LOG // 取消默认的LOG
    #define LOGI(...)  __android_log_print(ANDROID_LOG_INFO,LOG_TAG, __VA_ARGS__)
    #define LOGD(...)  __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG, __VA_ARGS__)
    #define LOGW(...)  __android_log_print(ANDROID_LOG_WARN,LOG_TAG, __VA_ARGS__)
    #define LOGE(...)  __android_log_print(ANDROID_LOG_ERROR,LOG_TAG, __VA_ARGS__)
    #define LOGF(...)  __android_log_print(ANDROID_LOG_FATAL,LOG_TAG, __VA_ARGS__)

    #ifdef __cplusplus
    }
    #endif
    #endif

    2 代码中使用:

    //demo.c

    #include <jni.h>
    #include "eben_hpc_log.h"

    JNIEXPORT  jint JNICALL Java_cn_hpc_cai_jni_JniLogDemo_test(JNIEnv* env,jobject jobj)
    {
    LOGD("log.d 这是Jni中的log: Java_cn_hpc_cai_jni_JniLogDemo_test()");
    LOGI("Log.i 这是Jni中的log: Java_cn_hpc_cai_jni_JniLogDemo_test()");

    return 0;
    }

    3 app/build.gradle 中

    defaultConfig {
            ndk {
                ldLibs "log"
                moduleName "xal"         //生成的so名字
                abiFilters "armeabi"  //输出指定三种abi体系结构下的so库。目前可有可无。
                //abiFilters "armeabi", "armeabi-v7a", "x86"  //输出指定三种abi体系结构下的so库。目前可有可无。
            }
        }
    

    接下来就是 Java层的调用:

    4 java 调用

    public static final String libName = "xal";
    static {
    System.loadLibrary(libName);
    }

    {
    JniLogDemo demo = new JniLogDemo();
    demo.test();
    }

    完毕。

  • 相关阅读:
    火狐下button标签子元素无法点击
    js里面的this指向
    (转载)http协议的Request Payload 和 Form Data 的区别
    (转载)http压缩 Content-Encoding: gzip
    函数的length属性
    Expires
    Etag 和 If-None-Match
    Mac下升级node到最新版本
    高级函数之函数绑定
    Java数据结构和算法day01 稀疏数组与队列
  • 原文地址:https://www.cnblogs.com/0616--ataozhijia/p/5628291.html
Copyright © 2011-2022 走看看