android 宏替换_android 模拟宏定义,实现Debug amp; Release 模式-一团网
以前在C/C++ 開發中,我們可以宏定義,Debug模式下,輸出日志,方便測試。Release模式下,無日志輸出。
使用Java時,Java 是解釋語言,無法編譯。就無模式之分了。有沒有辦法實現,Debug、Release版?
debug 輸出日志、調試信息。
release 發布版本,無輸出日志、調試信息。
辦法是人想出來的。
下面說說我的解決方案:
1 模擬C宏定義。
[java]
package cn.eben.hpc.define;
public final class BuildConfig {
public final static boolean isDebug = true;// 通過改變isDebug,實現Debug、Release版
}
2 重定義日志輸出類
[java]
package cn.eben.hpc.define;
import java.lang.reflect.Method;
import android.util.Log;
public class Trace {
public final static void e(String tag, String msg, Throwable tr) {
if (BuildConfig.isDebug)
Log.e(tag, msg, tr);
}
public final static void e(String tag, String msg) {
if (BuildConfig.isDebug)
Log.e(tag, msg);
}
public final static void e(String msg) {
if (BuildConfig.isDebug)
Log.e("", msg);
}
public final static void e(Throwable tr) {
if (BuildConfig.isDebug)
Log.e("", "", tr);
}
public final static void d(String tag, String msg) {
if (BuildConfig.isDebug)
Log.d(tag, msg);
}
public final static void d(String msg) {
if (BuildConfig.isDebug)
Log.d("", msg);
}
public final static void d(Throwable tr) {
if (BuildConfig.isDebug)
Log.d("", "", tr);
}
}
3 我們工程中使用:
原來使用
Log.i, Log.d, log.e ...
Log.i(TAG,“log”);
使用重定義的日志
Trace.i, Trace.d Trace.e...
Trace.i(“”, “”);
發布版本時,我們只需要將isDebug = false.即可。Release版就干干凈凈。無日志信息。
安畢。
是不是很簡單呀! :)
總結
以上是生活随笔為你收集整理的android 宏替换_android 模拟宏定义,实现Debug amp; Release 模式-一团网的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 升级bios_ThinkPad如何升级B
- 下一篇: npm安装不上nodemon_node.