我正试图弄清楚当安卓应用程序因硬错误(特别是out_of_memory)崩溃时,如何(或者是否可能)通过adb shell接受"强制关闭"对话框。我希望基本上用bash脚本循环一个应用程序,所以当它崩溃时,我想让它重新运行。这里缺少的一步是,我无法模拟按下对话框中间显示的"强制关闭"按钮。
同时,这个进程似乎并没有真正运行(试图杀死PID不起作用),所以这是一个有点奇怪的情况,因为它似乎已经停止了,但再次启动它(通过adb shell am…)只会让我"当前任务已经被提到了最前面"。
任何想法都将不胜感激!
+1到DarkXphenomon。
但是,要终止进程,您应该使用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>
如果是您自己的应用程序,您可以添加UnaughtException Handler,而不显示强制关闭对话框。如果没有,以下可能会起作用。
你也可以从adb中终止进程。(信用)
adb shell kill $(adb shell ps | grep YOUR.PACKAGE.NAME | awk '{ print $2 }')
之后,您可以使用adb shell am ...
重新启动该过程。