隐藏来自logcat的敏感数据

时间:2015-09-01 11:24:00

标签: android

this is my logcat view 正在开发一个Android应用程序,在编译完apk后它会在logcat中显示我的服务器的http url!如何隐藏来自logcat的敏感数据

AuthFactoryProvider这就是它显示链接的方式

2 个答案:

答案 0 :(得分:2)

您必须在显示

等日志时进行一些检查

创建显示错误日志的方法

boolean isShowLog = true;

public showErrorLog(String message)
{
if(isShowLog)
Logs.e("tag", message)
}

当你发布你的apk然后把它弄错

还有另一种检查日志的方法

在Log

之前添加BuildConfig.DEBUG

喜欢

public showErrorLog(String message)
    {
    if(BuildConfig.DEBUG)
    Logs.e("tag", message)
    }

这会在你的apk处于发布模式时禁用日志,而在调试模式下你可以看到日志。

答案 1 :(得分:2)

对于生产版本,请使用proguard并将此行添加到proguard配置文件中:

# for remove Logging
-assumenosideeffects class android.util.Log {
  public static boolean isLoggable(java.lang.String, int);
  public static int v(...);
  public static int i(...);
  public static int w(...);
  public static int d(...);
  public static int e(...);
}

并且不要忘记将minifyEnabled设置为你的gradle构建文件(如下所示):

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"
    defaultConfig {
        applicationId "asg.mojtaba.myapplication"
        minSdkVersion 14
        targetSdkVersion 21
        versionCode 1
        versionName "0.1.3"
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

因此您可以在调试版本上使用logcat的好处,并确保您没有任何登录生产版本。