NDK 开发之 Android log 输出的工具类封装

一、背景介绍

    由于在 JNI 层没办法直接使用 Java 的类,当我们想要在 JNI 代码中输出一些 Android log 时,就需要通过 头文件的相关方法来打印 log。
    一般我们开发会对这个 log 输出功能做一个简单的封装,便于控制和管理。


二、log.hpp 工具类

#ifndef LOG_HPP
#define LOG_HPP

#include <android/log.h>

#define TAG "FaceAPI"
static bool debug = true;

void setDebug(bool isDebug) {
    debug = isDebug;
}

#define LOGV(...) if (debug) __android_log_print(ANDROID_LOG_VERBOSE,TAG ,__VA_ARGS__)
#define LOGD(...) if (debug) __android_log_print(ANDROID_LOG_DEBUG,TAG ,__VA_ARGS__)
#define LOGI(...) if (debug) __android_log_print(ANDROID_LOG_INFO,TAG ,__VA_ARGS__)
#define LOGW(...) if (debug) __android_log_print(ANDROID_LOG_WARN,TAG ,__VA_ARGS__)
#define LOGE(...) if (debug) __android_log_print(ANDROID_LOG_ERROR,TAG ,__VA_ARGS__)

#endif //LOG_HPP

    这里添加了一个 debug 变量,可以动态的控制打开和关闭输出 log 的功能。

    使用示例:

LOGD("num: %d", num);

猜你喜欢

转载自blog.csdn.net/afei__/article/details/81030373