Android 安卓-连接调试工具时故意使应用程序崩溃

Android 安卓-连接调试工具时故意使应用程序崩溃,android,crash,Android,Crash,我想检测是否有任何调试工具连接到android设备。我希望这个功能,以便没有人可以看到日志时,应用程序被释放给人们 问候 附言: 我甚至想在生产环境中写日志,因为它们可以帮助我微调我的应用程序,但不希望其他人看到它们 如果不是系统应用程序,则无法检测USB调试是否已连接或启用。但是,我们可以讨论如何解决您的问题。如果你不想让你的应用程序登录到你的官方市场发行版,有两种可以接受的方法 有条件地记录。像这样包装所有日志消息 if (DEBUG) Log.d(...); void d(String

我想检测是否有任何调试工具连接到android设备。我希望这个功能,以便没有人可以看到日志时,应用程序被释放给人们

问候

附言:


我甚至想在生产环境中写日志,因为它们可以帮助我微调我的应用程序,但不希望其他人看到它们

如果不是系统应用程序,则无法检测USB调试是否已连接或启用。但是,我们可以讨论如何解决您的问题。如果你不想让你的应用程序登录到你的官方市场发行版,有两种可以接受的方法

有条件地记录。像这样包装所有日志消息

if (DEBUG) Log.d(...);
void d(String msg) {
  if (DEBUG) Log.d(msg);
}
在构建正式市场APK之前,请在代码中将
DEBUG
设置为false。一个稍微好一点的方法是在android的logger周围添加一个包装器方法或类。e、 写一个这样的方法

if (DEBUG) Log.d(...);
void d(String msg) {
  if (DEBUG) Log.d(msg);
}
使用proguard。是一种在编译后处理字节码的工具。您可以使用它从代码中删除所有日志记录(以及其他内容)。proguard有一个安静的学习曲线,但它非常强大

这里有另一篇文章对这个话题进行了深入的讨论


请注意,即使不附加调试器,也可以读取logcat输出。例如,你可以下载并使用aLogcat应用程序。简言之,我应该停止传统的日志记录,把我需要的所有东西都写在其他地方,比如谷歌文档…不是真的。。。有很多方法可以在adb会话中检测它,因为没有真正的意图来隐藏正在发生的情况。但是这样做是没有意义的,因为它可以在没有连接的情况下连接到以后读取已经写入的日志?