Можно ли принудительно остановить приложение, которое я отлаживаю, используя adb в терминале? - PullRequest
5 голосов
/ 08 июля 2011

Я занимаюсь разработкой приложения, и для отладки определенных действий при первой установке я обнаружил, что с помощью команды терминала:

./adb uninstall <package-name>

было намного быстрее, чем переход к настройкам, приложениям, ожидание загрузки приложений, поиск вашего приложения и его удаление. Я настоятельно рекомендую его всем, кто еще не использует его для отладки.

Теперь я пытаюсь поработать над принудительно закрывающейся частью моего приложения, и я не могу найти в документации для Android инструкции о том, как принудительно закрыть приложение с помощью команды adb.

Возможно ли это?

Ответы [ 5 ]

22 голосов
/ 29 декабря 2012
am force-stop YOUR.PACKAGE.NAME

Эта команда сработала для меня.Надеюсь, это поможет и вам.

17 голосов
/ 16 января 2012

Вы можете использовать adb shell kill, чтобы завершить процесс, но сначала вам нужно найти идентификатор процесса. Для этого вы можете использовать adb shell ps и проанализировать вывод. Вот пример (при условии, что ваш ПК для разработки Unix):

adb shell kill $(adb shell ps | grep YOUR.PACKAGE.NAME | awk '{ print $2 }')
6 голосов
/ 08 июля 2011

Вы можете закрыть его по его pid, используя

adb shell kill <PID>

, но я не уверен, что сделаю это с именем пакета.

3 голосов
/ 25 августа 2012
adb killall YOUR.PACKAGE.NAME

Я создал пакетный скрипт для запуска этой команды.

0 голосов
/ 19 января 2014

Если по какой-то причине вы не можете использовать awk (в моем случае это не полная установка cygwin), может сработать следующее:

adb shell ps | grep YOUR.PACKAGE.NAME | sed 's/\s\s*/ /g' | cut -d ' ' -f 2 | adb shell kill

Объяснение: Во-первых, ps перечисляет запущенные процессы. Из вывода grep получает строку, содержащую YOUR.PACKAGE.NAME. sed усекает последовательные пробелы в один, чтобы помочь cut получить часть имени пакета в этой строке. Наконец, идентификатор процесса передается по каналу kill.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...