2016-09-09 2 views
-1

Я пытаюсь выполнить adb взаимодействия через код python. У меня есть бесконечный исполняемый файл на устройстве Android, который я хотел бы начать, и через 10 секунд его убейте. прямо сейчас, я могу запустить программу, но не могу ее убить другим, вручную нажав ctrl + c.работает adb с python: выполнение программы и ее завершение

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.

ответ

0

Вы просто убиваете сессию оболочки adb, которая не будет убивать запущенное приложение. Если вы хотите убить запущенное приложение для Android, вам нужно остановить приложение поверх оболочки adb. Для получения дополнительной информации см. Это stackoverflow answer.

+0

Hi Phidelux, спасибо за быстрый ответ. после запуска «adb shell» и «бесконечной программы» выходы программы запускаются через окно cmd. Таким образом, у меня нет доступа к каким-либо командам adb, пока я не сделаю ctrl + c. поэтому даже этот сеанс оболочки adb не завершается. Я достаточно ясно? – TamirE

+0

Невозможно запустить вторую оболочку, чтобы убить процесс, блокирующий первый? – Phidelux

+0

hmmmm ... интересный. Я попробую – TamirE

Смежные вопросы