判断Android 应用是否处于Debug模式的2种方法
我们有时想在代码中,判断应用是否是调试版本,以此来屏蔽或者做一些特殊处理,例如,1. 打印日志;2. 如果是 Debug 模式下的崩溃信息,我们要特殊标记出来等。
那么如何判断 Debug 模式呢?
使用 BuildConfig.DEBUG 判断
最简单的方式:
BuildConfig.DEBUG
使用 BuildConfig.DEBUG 可以很方便的判断,当前是 Debug 包还是 Release 包,以此来进行逻辑处理。
但是,当我们的项目是一个 SDK 时,这个方法就不可以了,我们发版的 SDK 中的 BuildConfig.DEBUG 都是 Release 包,BuildConfig.DEBUG 一直都是 false。
那么如何来判断 SDK 所在的包,是否是 Debug 的?
使用 android:debuggable 判断
我们可以使用 android:debuggable 来判断应用是否处于可调试状态,它对应的标志位是 ApplicationInfo.FLAG_DEBUGGABLE:
if (0 != (getContext().getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE)){
//Debug 模式是打开状态
}
它可以在 build.gradle 中进行设置:
debug {
debuggable true
}
二者区别
BuildConfig.DEBUG
BuildConfig.DEBUG 表示当前编译的 APP 是否是 Debug包,它是由编译器自动生成并设置的。
android:debuggable
android:debuggable 表示是否可以调试应用(即使在处于用户模式的设备上运行时)。如果可以调试,则设为 “true”,否则设为 “false”。默认值为 “false”。
android:debuggable 标签,最终会被设置在 AndroidManifest 中的 application 标签中:
<application android:debuggable=["true" | "false"]
. . .
它代表了 APP 的可调式状态。
两者的联系
BuildConfig.DEBUG 和 android:debuggable 有一定的关联:如果设置 android:debuggable 为 false,则不管 APP 是否是 Debug 包,BuildConfig.DEBUG 将一直是 false。
设置:文章来源:https://www.toymoban.com/news/detail-481486.html
debug {
debuggable true
}
之后,BuildConfig.DEBUG 的值一直都是 false。文章来源地址https://www.toymoban.com/news/detail-481486.html
到了这里,关于判断Android 应用是否处于Debug模式的2种方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!