我正试图弄清楚当Android应用程序因硬错误(特别是out_of_memory)崩溃时,如何(或者是否可能)通过adb shell接受“强制关闭”对话框。我希望基本上使用bash脚本循环应用程序,所以当它崩溃时我想再次启动它。这里缺少的一步是我无法模拟按下对话框中间显示的“强制关闭”按钮。
同时,这个过程似乎并没有真正运行(试图杀死PID不起作用),所以这有点奇怪,因为它似乎已经停止了,但是再次启动它(通过adb shell am ...)只是让我'当前的任务已经被带到了前面'。
任何想法都将不胜感激!
答案 0 :(得分:6)
但要杀死此过程,您应该使用 am :
am force-stop: force stop everything associated with <PACKAGE>.
am kill: Kill all processes associated with <PACKAGE>. Only kills.
processes that are safe to kill -- that is, will not impact the user
experience.
例如:
adb shell am force-stop <YOUR.PACKAGE.NAME>
答案 1 :(得分:3)
如果它是您自己的应用,您可以添加UncaughtExceptionHandler而不显示强制关闭对话框。如果没有,以下可能会有效。
您也可以从adb中删除该进程。 (Credit)
adb shell kill $(adb shell ps | grep YOUR.PACKAGE.NAME | awk '{ print $2 }')
之后,您可以使用adb shell am ...
重新生成该过程。