如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
,但是debug
和release
是必需的。如果当前选择的构建类型为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/