Intereting Posts
Держите вибратор в спящем режиме `RenamingDelegatingContext` устарел. Как проверить SQLite db сейчас? Использовать атрибуты в селекторе – Android Android AppWidget Configuration – запуск новой задачи Как я могу сделать слайд страницы, когда пользователь скользит пальцем по экрану? Управление музыкальным плеером по умолчанию для Android или любого другого музыкального проигрывателя Синхронизировать PoolingClientConnectionManager или нет. Можно ли отправлять файлы cookie в Android DownloadManager Принудительный выход звука на внутренний динамик, когда наушники подключены Приложение уже развернуто. Нет необходимости переустанавливать Время простоя приложения Фрагмент: вызов обратного вызова при нажатии кнопки возврата и его настройка Загрузить фотографию на диск без сжатия Небезопасная реализация интерфейса X509TrustManager – Службы Google Play Как объединить несколько spannable объектов?

Adb: найти PID из оболочки adb

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

adb shell ps | grep android.process.acore | sed 's/\s\s*/ /g' | cut -d ' ' -f 2 

ИЛИ

 adb shell ps | grep android.process.acore | awk '{ print $2 }' 

Я получаю PID (числовое число – второе поле в ps | grep android.process.acore ).

Однако, если я запускаю вышеуказанные команды внутри оболочки Android (после выполнения adb shell ), я получаю /system/bin/sh: sed: not found и /system/bin/sh: awk: not found ошибки соответственно. Это означает, что эти команды недоступны внутри оболочки adb. Однако grep работает.

Выход ps | grep android.process.acore ps | grep android.process.acore внутри adb shell :

 XXX_x21 11826 441 502296 39028 ffffffff 4010ff6c S android.process.acore 

Я ищу номер 11826. Как я могу извлечь его внутри adb shell ?

Также, пожалуйста, помогите, если есть прямой способ получить PID внутри оболочки adb.

С уважением, Румит

Не уверен, что вы можете получить PID напрямую, но вы можете попробовать следующее

 Set `ps | grep android.process.acore`
 Эхо $ 2

Это влияет на установку вывода команды ps в переменные $ 1, $ 2, $ 3 и т. Д. Значение PID находится в $ 2

Android версии, начиная с 6.0, уже включают утилиту pidof :

 usage: pidof [-s] [-o omitpid[,omitpid...]] [NAME]... Print the PIDs of all processes with the given names. -s single shot, only return one pid. -o omit PID(s) 

Я попробовал это и, похоже, работает:

 adb shell "set "ps | grep android.process.media"; kill -9 $2"