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

标签 android crash

我想检测 Android 设备上是否附加了任何调试工具。我想要此功能,以便当应用程序发布给人们时没有人可以看到日志。

问候。

附注:

即使在生产环境中,我也想编写日志,因为它们会帮助我微调我的应用程序,但不希望其他人看到它们。

最佳答案

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

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

if (DEBUG) Log.d(...);

在构建官方市场 APK 之前,请在代码中将 DEBUG 设置为 false。一个稍微好一点的方法是在 android 的记录器周围添加一个包装方法或类。例如,编写这样的方法,

void d(String msg) {
  if (DEBUG) Log.d(msg);
}

使用混淆器。 proguard是编译后操作字节码的工具。您可以使用它从代码中删除所有日志记录(除其他外)。使用 proguard 的学习曲线很安静,但它非常强大。

这是另一篇文章,对该主题进行了深入讨论。

How do I enable/disable log levels in Android?

关于Android - 连接调试工具时故意使应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11702780/

相关文章:

Android UINavigationController-like 功能

android - 从 Visual Studio : Google Play option disabled in Select Channel 发布 Android 应用程序

multithreading - QThread使程序崩溃?

android - 在 ImageView 中设置 Vector Drawable 导致应用程序在旧 SDK 中崩溃

java - 服务崩溃并重新启动

crash - 如何使用 [[UIApplication sharedApplication] valueForKey : @"statusBar"] on ios13? 获取 wifi 信号强度

Android Studio 在提交更改对话框中显示未更改的文件

Android:如何从资源文件夹运行视频

java - android Activity类不存在

objective-c - 在线程崩溃中调用NSPathControl对象