Подтвердить что ты не робот

Как узнать, работает ли служба с помощью оболочки adb в android

Я хочу знать, работает ли служба медиаплеера (регистрируется с помощью media.player при загрузке устройства) или нет с помощью оболочки adb. Возможно ли это?

Я попробовал запустить команду ps, но не успел.

4b9b3361

Ответ 1

Попробуйте выполнить командную строку

adb shell service list

Я получаю список имен служб и их имена пакетов.

Ответ 2

Как уже упоминалось, adb shell service list будет отображать только системные службы.

Как объяснено в Android Emulator: как я могу получить список служб, которые работают, вы можете искать службы, созданные приложениями, используя

// List all services
adb shell dumpsys activity services

// List all services containing "myservice" in its name
adb shell dumpsys activity services myservice

Если он что-то возвращает, значит, служба установлена. Чтобы узнать, запущена или остановлена ​​служба, найдите app=ProcessRecord(...) или app=null соответственно.

Вы также можете сделать это в стиле Linux с помощью простого

ps | grep myservice

находясь внутри вашей оболочки.

Ответ 3

Чтобы проверить, работает ли определенная служба, используйте:

adb shell service check <service>

Например, adb shell service check media.player дает Service media.player: found, если он работает, и Service media.player: not found в противном случае.

Если вам нужно больше деталей, попробуйте dumpsys <service>. Например, adb shell dumpsys media.player возвращает информацию о клиентах media.player, открывает файлы и т.д.

Наконец, если вам действительно нужны серьезные детали для отладки, попробуйте adb shell dumpsys activity services, который показывает, что происходит с точки зрения ActivityManager. Это включает информацию о намерениях, время создания, время последней активности, привязки и т.д. И т.д. Вы можете перенаправить вывод, если хотите сохранить его для последующего просмотра/поиска. Он обычно довольно длительный.

Ответ 4

Чтобы узнать, работает ли процесс приложения или нет (фон или передний план):

adb shell pidof <package.name>

Он вернет пустую строку, если процесс не работает иначе, чем pid.