it-swarm.com.de

Erkennen der laufenden App mithilfe des ADB-Befehls

Ich habe ein Android Gerät mit Jelly Bean OS.

Gibt es eine Möglichkeit zu erkennen, ob der Prozess ausgeführt wird oder nicht, indem der Befehl ADB verwendet wird, wenn ich den Paketnamen kenne?

48
Rinkal Bhanderi

Grep muss nicht verwendet werden. ps in Android kann nach COMM Wert filtern (die letzten 15 Zeichen des Paketnamens bei Java App)

Angenommen, wir möchten überprüfen, ob com.Android.phone läuft:

adb Shell ps m.Android.phone
USER     PID   PPID  VSIZE  RSS     WCHAN    PC         NAME
radio     1389  277   515960 33964 ffffffff 4024c270 S com.Android.phone

Filtern nach COMM Wertoption wurde entfernt von ps in Android 7.0. Überprüfen eines laufenden Prozesses anhand des Namens in = Android 7.0 können Sie pidof Befehl verwenden:

adb Shell pidof com.Android.phone

Es gibt die PID zurück, wenn ein solcher Prozess gefunden wurde, oder eine leere Zeichenfolge, wenn dies nicht der Fall ist.

66
Alex P.

Sie können verwenden

adb Shell ps | grep apps | awk '{print $9}'

um eine Ausgabe zu erzeugen wie:

com.google.process.gapps
com.google.Android.apps.uploader
com.google.Android.apps.plus
com.google.Android.apps.maps
com.google.Android.apps.maps:GoogleLocationService
com.google.Android.apps.maps:FriendService
com.google.Android.apps.maps:LocationFriendService

adb Shell ps gibt eine Liste aller laufenden Prozesse auf dem Android Gerät zurück, grep apps sucht nach einer Zeile mit "apps", wie Sie oben sehen können, handelt es sich bei allen um com.google.Android. APPS oder GAPPS, awk extrahiert die 9. Spalte, die in diesem Fall der Paketname ist.

Um nach einem bestimmten Paket zu suchen, verwenden Sie

adb Shell ps | grep PACKAGE.NAME.HERE | awk '{print $9}'

d.h. adb Shell ps | grep com.we7.player | awk '{print $9}'

Wenn es läuft, wird der Name angezeigt, wenn nicht, wird kein Ergebnis zurückgegeben.

31
o0rebelious0o

Wenn Sie den Paketnamen der aktuellen App direkt im Fokus haben möchten, verwenden Sie diesen Befehl:

adb Shell dumpsys window windows | grep -E 'mFocusedApp'| cut -d / -f 1 | cut -d " " -f 7

Zusätzliche Informationen aus dem Ergebnis des Befehls adb werden mit dem Befehl cut entfernt. Originallösung von hier .

11
abhiank

Ich habe gerade bemerkt, dass top in adb verfügbar ist, so dass Sie Dinge wie tun können

  adb Shell
  top -m 5

um die fünf wichtigsten CPU-Hogging-Prozesse zu überwachen.

Oder

  adb Shell top -m 5 -s cpu -n 20 |tee top.log

um dies eine Minute lang aufzuzeichnen und die Ausgabe in einer Datei auf Ihrem Computer zu sammeln.

9
StefanQ

Versuchen:

adb Shell pidof <myPackageName>

Die Standardausgabe ist leer, wenn die Anwendung nicht ausgeführt wird. Andernfalls wird die PID ausgegeben.

5
Chris Sears

Alternativ können Sie auch pgrep oder Process Grep verwenden. (Busybox wird benötigt)

Sie könnten einen adb Shell pgrep com.example.app Eingeben, der nur die Prozess-ID anzeigt.

Da Android Linux ist, können Sie die meisten grundlegenden Linux-Befehle mit adb Shell Verwenden, um zu navigieren/zu steuern.: D

3
deubaka