运行 adb with python: 执行一个程序并结束它

running adb with python: executing a program and ending it

我正在尝试通过 python 代码执行 adb 交互。 我在 android 设备上有一个无穷无尽的可执行文件,我想启动它并在 10 秒后将其终止。 现在,我可以让程序启动,但不能通过手动按下 ctrl+c 来终止它。

procID = subprocess.Popen(["adb", "shell"], stdin=subprocess.PIPE,)
procID.communicate('su\n endless_program data/test 5\n')
time.sleep(5)
os.kill(procID, signal.SIGINT)
procID.kill()

我尝试用 os.kill 或 procID.kill 杀死它,但两者似乎都不起作用。

我也尝试过使用 pexpect,但由于某些原因我无法将其发送到 运行 adb。

您只是终止了 adb shell 会话,它不会终止 运行 应用程序。如果您想终止 运行 Android 应用程序,您必须通过 adb shell 停止该应用程序。有关详细信息,请查看此 Whosebug answer.