gpt4 book ai didi

android - 如何以编程方式判断我的应用程序是否正在调试?

转载 作者:搜寻专家 更新时间:2023-11-01 09:22:32 24 4
gpt4 key购买 nike

我正在寻找一种方法来判断我的应用程序是在调试器下运行还是在 Android Studio 下“正常”运行..

这两种情况是
1. 单击“运行应用”按钮(绿色箭头)运行应用
2. 单击“调试应用”按钮(齿轮图标)运行应用

我想在调试时输出更详细的诊断信息(使用 Log.*)。
我尝试检查 BuildConfig.DEBUG,但在任何一种情况下都是 TRUE。我怀疑这是因为 Android Studio 在这两种情况下都使用调试证书 对应用程序进行了签名。

有谁知道如何在运行时区分这两种情况?

最佳答案

通常会检查 BuildConfig.DEBUG(或保存它的 boolean 变量),然后记录:

if(BuildConfig.DEBUG) {Log.d("SomeActivity", "debug message");}

参见 documentation ...与调试最相关的是 build-config debuggable true/false

run 按钮不启动调试器;无论构建配置如何(它只是跳过所有断点)。

在多模块项目中,应该检查:

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

为了区分它们,需要配置两种构建类型:

android {
...
buildTypes {
debug {
...
renderscriptDebuggable true
jniDebuggable true
debuggable true
}
release {
...
renderscriptDebuggable false
jniDebuggable false
debuggable false
}
}
}

为了准确回答这个问题,甚至有一种方法叫做 isDebuggerConnected() ,在点击 run 按钮时总是返回 false(无论构建配置如何)。

关于android - 如何以编程方式判断我的应用程序是否正在调试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53560750/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com