禁用Android生产版本上的jni日志记录

时间:2015-06-29 14:00:01

标签: android c++ c java-native-interface android-log

我创建了一个logger.h文件,并在我的c ++代码中包含并使用它:

#ifndef LOG_TAG
#define  LOG_TAG    "jni"
#include <android/log.h>
#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__)
#endif // LOG_TAG

在我的java应用程序文件中,我使用以下代码来检测调试模式:

private boolean inDebugMode() {
    boolean inDebugMode = false;
    try {
        PackageInfo packageInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
        int flags = packageInfo.applicationInfo.flags;
        inDebugMode = (flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0;
    } catch (NameNotFoundException e) {
        e.printStackTrace();
    }
    // GlobalData.DEBUG_MODE = inDebugMode;
    return inDebugMode;
}

如何在本机代码上执行此操作?

代码示例将不胜感激......

0 个答案:

没有答案