包含调试代码的最佳方式?

2022-09-01 01:12:01

我正在编写Android应用程序,这里最好的方法可能与Java相同,也可能不同。

我只是希望能够设置一个调试标志,该标志仅在设置为true时执行代码的某些部分 - 相当于C++设置预处理器#define DEBUG并使用#ifdef DEBUG。

有没有一种被接受的或最好的方法来在Java中实现这一目标?

现在,我只是要在我的应用程序对象中设置一个变量,但我不认为这是最好的方法。


答案 1

您可以使用 ADT 自动设置的标志,而不是使用自己的标志,如下所示:

final static int appFlags = context.getApplicationInfo().flags;
final static boolean isDebug = (appFlags & ApplicationInfo.FLAG_DEBUGGABLE) != 0

该位会自动设置为 true 或 false,具体取决于应用程序的“可调试”属性(在 AndroidManifest 中设置.xml)。最新版本的 ADT(版本 8)会在不导出已签名的包时自动为您设置此属性。FLAG_DEBUGGABLE

因此,您不必记住设置/重置自己的自定义标志。

您可以在此线程中阅读更多内容。


答案 2

我就是这样做的:

// in some.class.with.Constants
public static final boolean DEV_MODE = true;

// in some other class
import static some.class.with.Constants.DEV_MODE;

if(DEV_MODE){
    Log.d('sometag', 'somemessage');
}