为了性能,有些人建议使用以下方法,例如
public class MyActivity extends Activity {
private static final String TAG = "MyApp";
private static final boolean D = true;
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(D) Log.e(TAG, "MyActivity.onCreate debug message"); }
Run Code Online (Sandbox Code Playgroud)
但是当处理大型项目时,这是非精明的,因为在调试时,您需要为debug标志更新许多文件,有没有更好的方法?
您可以在BuildConfig中检查DEBUG布尔值:
if (BuildConfig.DEBUG) {
// Do what you need
}
Run Code Online (Sandbox Code Playgroud)
或者,您可以拥有一个调试变量,而是将其保存在每个活动中,在Application类中声明它,并在需要时检查它的值.
如果您对该变量的目的是用于日志记录,那么将您的日志包装到另一个类中是一个很好的做法,该类检查DEBUG变量:
public class LogUtils {
public static void LOGD(final String tag, String message) {
if (BuildConfig.DEBUG) {
Log.d(tag, message);
}
}
public static void LOGV(final String tag, String message) {
if (BuildConfig.DEBUG) {
Log.v(tag, message);
}
}
public static void LOGI(final String tag, String message) {
if (BuildConfig.DEBUG) {
Log.i(tag, message);
}
}
public static void LOGW(final String tag, String message) {
if (BuildConfig.DEBUG) {
Log.w(tag, message);
}
}
public static void LOGE(final String tag, String message) {
if (BuildConfig.DEBUG) {
Log.e(tag, message);
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后,对此类进行日志调用:
LogUtils.LOGD(TAG, "MyActivity.onCreate debug message");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6556 次 |
| 最近记录: |