android怎么在release版下不输出日志?

来源:互联网 发布:考勤软件叫什么 编辑:程序博客网 时间:2024/06/06 02:09
方法一:如果有做代码混淆,在配置文件中加入下面语句
-assumenosideeffects class android.util.Log {
    public static *** d(...);
    public static *** v(...);
    public static *** i(...);
}

方法二:对于没做代码混淆的,可以按照下面方法:
在manifest文件中加入android:debuggable="@bool/build_log"
<application
    android:name="MyApplication"
    android:icon="@drawable/gift"
    android:label="@string/app_name" android:debuggable="@bool/build_log">

定义一个日志类
public class Lol {


    public static final boolean ENABLE_LOG = true & MyApplication.sDebug;


    private static final boolean DEBUG = true & ENABLE_LOG;


    private static final boolean VERBOSE = true & ENABLE_LOG;


    private static final boolean TEMP = true & ENABLE_LOG;


    private static final boolean WARNING = true & ENABLE_LOG;


    private static final boolean INFO = true & ENABLE_LOG;


    private static final boolean ERROR = true & ENABLE_LOG;


    public static void obvious(String tag, String msg) {
        if (DEBUG) {
            msg = "*********************************\n" + msg
                    + "\n*********************************";
            Log.d(tag, msg);
        }
    }


    public static void d(String tag, String msg) {
        if (DEBUG)
            Log.d(tag, msg);
    }


    public static void d(boolean bool, String tag, String msg) {
        if (TEMP&bool)
            Log.d(tag, msg);
    }


    public static void i(String tag, String msg) {
        if (INFO)
            Log.i(tag, msg);
    }


    public static void e(String tag, String msg) {
        if (ERROR)
            Log.e(tag, msg);
    }


    public static void e(boolean bool, String tag, String msg) {
        if (TEMP&bool)
            Log.e(tag, msg);
    }


    public static void v(String tag, String msg) {
        if (VERBOSE)
            Log.v(tag, msg);
    }


    public static void w(String tag, String msg) {
        if (WARNING)
            Log.w(tag, msg);
    }


    public static String getStackTraceString(Exception e) {
        return Log.getStackTraceString(e);
    }


    public static void w(String tag, String msg, Exception e) {
        if (WARNING)
            Log.w(tag, msg,e);
    }
}
原创粉丝点击