Je veux savoir si le service de lecteur multimédia (s’inscrit auprès de media.player au démarrage de l’appareil) est en cours d’exécution ou n’utilise pas adb Shell. C'est possible?
J'ai essayé d'exécuter la commande ps mais sans succès.
Essayez la ligne de commande
adb Shell service list
Je reçois aussi une liste de noms de services et leurs noms de paquets.
Comme déjà mentionné, adb Shell service list
ne listera que les services système.
Comme expliqué dans Émulateur Android: Comment puis-je obtenir une liste des services en cours d'exécution , vous pouvez rechercher des services créés par des applications à l'aide de
// List all services
adb Shell dumpsys activity services
// List all services containing "myservice" in its name
adb Shell dumpsys activity services myservice
S'il renvoie quelque chose, cela signifie que le service est installé. Pour savoir si le service est actuellement démarré ou arrêté, recherchez app=ProcessRecord(...)
ou app=null
respectivement.
Vous pouvez aussi le faire sous Linux avec un simple
ps | grep myservice
à l'intérieur de votre coquille.
Pour vérifier simplement si un service spécifique est en cours d'exécution, utilisez:
adb Shell service check <service>
Par exemple, adb Shell service check media.player
donne Service media.player: found
s'il est en cours d'exécution et Service media.player: not found
sinon.
Si vous avez besoin de plus de détails, essayez dumpsys <service>
. Par exemple, adb Shell dumpsys media.player
renvoie des informations sur les clients de media.player
, les fichiers ouverts, etc.
Enfin, si vous avez vraiment besoin de détails sérieux pour le débogage, essayez adb Shell dumpsys activity services
qui montre ce qui se passe du point de vue de ActivityManager
. Cela inclut des informations sur les intentions, les heures de création, l'heure de la dernière activité, les liaisons, etc., etc. Vous pouvez rediriger la sortie si vous souhaitez la stocker pour une visualisation/recherche ultérieure. C'est généralement assez long.
Pour savoir si un processus d'application est en cours d'exécution ou non (arrière-plan ou avant-plan):
adb Shell pidof <package.name>
Il retournera une chaîne vide si le processus n'exécute pas son pid.