即使在设备重启后也保持 Android 调试器处于活动状态

Keep Android debugger alive even after device restart

我在 DeviceBootReceiver(处理 android.intent.action.BOOT_COMPLETED 意图)中调试某些代码时遇到问题。我想调试这一点,但是当设备重新启动时,如何让调试器保持活动状态?有没有人为此遇到过任何黑客攻击?

我想做什么 :

  1. 通过 Android Studio
  2. 开始调试应用程序
  3. 关闭设备
  4. 启动设备
  5. 当我的应用程序开始处理 android.intent.action.BOOT_COMPLETED intent
  6. 时,仍然 能够将调试器附加到我的应用程序

有什么想法吗?

在您的设备可以进行交互后,android.intent.action.BOOT_COMPLETED 大约需要 30 秒才能广播。您有足够的时间启动您的应用程序并手动进入调试模式

您可能希望在收到 android.intent.action.BOOT_COMPLETED 意图时向您的 logcat 打印一个时间戳,以便您更好地了解所有这些发生的时间

  1. 打开您的设备 "developer options" 设置;
  2. 向下滚动到 "select debug app" 并确保您的应用已被选中;
  3. 勾选选项"wait for debugger"。

这将确保当您的应用程序被执行时,例如当它接收到 BOOT_COMPLETED 广播时,调试器首先被附加。

希望对您有所帮助。

您可以通过 adb 自行重新广播意图 shell:

$ adb shell am broadcast -a android.intent.action.BOOT_COMPLETED