我有一个关于查找应用程序是否处于发布模式或调试的问题。 我需要找到一种方法来自动检测应用程序模式的功能。现在我使用一种简单的方法来声明boolean
,每次我必须更改true/false
。但有时我或其他开发者可能会忘记改变它。其实我需要这个,因为我在我的应用程序中使用了一个错误处理程序,它正在向我们的服务器发送未捕获的异常。我不想在调试模式下执行此操作。Android调试/发布版本的应用程序
那么有没有什么办法可以检测到我的应用会自动执行的一些功能,而不使用像我这样的变量?
我有一个关于查找应用程序是否处于发布模式或调试的问题。 我需要找到一种方法来自动检测应用程序模式的功能。现在我使用一种简单的方法来声明boolean
,每次我必须更改true/false
。但有时我或其他开发者可能会忘记改变它。其实我需要这个,因为我在我的应用程序中使用了一个错误处理程序,它正在向我们的服务器发送未捕获的异常。我不想在调试模式下执行此操作。Android调试/发布版本的应用程序
那么有没有什么办法可以检测到我的应用会自动执行的一些功能,而不使用像我这样的变量?
没有通用的解决方案,但您可以使用isDebuggerConnected。
但是如果您的用户将手机连接到PC并使用ddms,该解决方案也会触发/显示调试功能。
也许你与前人的精力支票阿莱克斯摹提出的一个结合这一点,并在每提醒您禁用调试;-)
为什么不利用这个开始弹出一个烤面包的消息?
if (BuildConfig.DEBUG) {
// what shall happen in debug version
} else {
// release version
}
我不认为你可以简单地做到这一点。您可以尝试从清单中检索应用程序的'android:debuggable'属性,但这又不是100%确定的。 – 2012-01-27 14:00:47
另一种方法是从apk中检索签名的哈希,并将其与用于签名应用程序的已知调试/发布签名进行比较。 – 2012-01-27 14:01:18
所以我必须坚持使用布尔变量 – 2012-01-27 14:07:52