如何以编程方式检查应用程序是否在debugging模式下运行?

我必须在我的应用程序中的某个地方确定,无论我的应用程序是以debugging模式还是以实时模式运行。 有没有任何function或一段代码可用来检查。 在任何一种情况下都会返回true / false。 如果是的话,请帮助我。 提前致谢。

@ ImOrtality提供的答案是正确的:

boolean isDebuggable = ( 0 != ( getApplicationInfo().flags &= ApplicationInfo.FLAG_DEBUGGABLE ) ); 

(从这个Google博客文章 )

更新 :在上面的expression式中,可能&=应该只是& ,尽pipe&=是Google在其博客文章中的内容)

感谢合作,但对我来说不起作用

我很抱歉听到这个消息。 当然,由于解释了“不适合我的情况”是你select跳过的东西,我不能再帮你了。

debugging模式是指:

  1. 该应用程序是否可debugging
  2. 无论该应用程序目前是否正在debugging(例如通过ADB)

第一个是CommonsWare的答案 :

 boolean isDebuggable = 0 != (getApplicationInfo().flags &= ApplicationInfo.FLAG_DEBUGGABLE); 

第二个是:

 boolean isBeingDebugged = android.os.Debug.isDebuggerConnected() 

https://developer.android.com/reference/android/os/Debug.html#isDebuggerConnected();

如果您使用的是“实时模式”,表示您在Play商店中使用,您可以通过检查BuildConfig.DEBUG的值来区分这两种状态。 Google 在这里展示了一个关于它的video

 if (BuildConfig.DEBUG) { // here be thine debug statement } 

在eclipse和Android Studio中工作得非常好。

在这里提到的其他人经常会为我引发运行时exception