Getting "debuggable" value of androidManifest from code?所引用的,有两种检查构建是否可调试的选项:

1.)BuildConfig.DEBUG标志

 if (BuildConfig.DEBUG)`

2.)ApplicationInfo.FLAG_DEBUGGABLE
 if (0 != (getContext().getApplicationInfo().flags &
     ApplicationInfo.FLAG_DEBUGGABLE))

它们是两个相同还是不同?什么时候使用什么?

最佳答案

它们是不相同的。

可能有许多buildType,但是debugrelease是必需的。如果当前选择的构建类型为BuildConfig.DEBUG,则true将为debug,否则为false(请参见下面的排除情况)。
ApplicationInfo.FLAG_DEBUGGABLE对应于以下内容:
buildTypes { debug { debuggable true } ... }
现在,ApplicationInfo.FLAG_DEBUGGABLE将是true

因此,您可以得出结论,可以执行以下操作:
buildTypes { debug { debuggable false } ... }
有趣的是,尽管您使用的是debug构建类型,但BuildConfig.DEBUG将变为false

关于java - BuildConfig.DEBUG与ApplicationInfo.FLAG_DEBUGGABLE,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45637524/

10-09 06:52