Я хочу знать, работает ли служба медиаплеера (регистрируется с помощью media.player при загрузке устройства) или нет с помощью оболочки adb. Возможно ли это?
Я попробовал запустить команду ps, но не успел.
Я хочу знать, работает ли служба медиаплеера (регистрируется с помощью media.player при загрузке устройства) или нет с помощью оболочки adb. Возможно ли это?
Я попробовал запустить команду ps, но не успел.
Попробуйте выполнить командную строку
adb shell service list
Я получаю список имен служб и их имена пакетов.
Как уже упоминалось, 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
находясь внутри вашей оболочки.
Чтобы проверить, работает ли определенная служба, используйте:
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
. Это включает информацию о намерениях, время создания, время последней активности, привязки и т.д. И т.д. Вы можете перенаправить вывод, если хотите сохранить его для последующего просмотра/поиска. Он обычно довольно длительный.
Чтобы узнать, работает ли процесс приложения или нет (фон или передний план):
adb shell pidof <package.name>
Он вернет пустую строку, если процесс не работает иначе, чем pid.