ProcessUtil
public
final
class
ProcessUtil
extends Object
java.lang.Object
|
😎 |
com.android.sts.common.ProcessUtil
|
Verschiedene Hilfsfunktionen zum Suchen, Warten und Beenden von Prozessen auf dem Gerät
Zusammenfassung
Öffentliche Methoden |
static
Optional<IFileEntry>
|
findFileLoadedByProcess(ITestDevice device, String process, String filenameSubstr)
Gibt den Dateieintrag der ersten Datei mit dem angegebenen Namen zurück, die durch den angegebenen Prozess geladen wurde
|
static
Optional<List<String>>
|
findFilesLoadedByProcess(ITestDevice device, int pid, Pattern filePattern)
Gibt Dateinamen der angegebenen Datei zurück, die durch den angegebenen Prozess geladen wurde.
|
static
Optional<String>
|
getProcessName(ITestDevice device, int pid)
Rufen Sie den Inhalt von /proc/pid/cmdline ab.
|
static
boolean
|
killAll(ITestDevice device, String pgrepRegex, long timeoutMs, boolean expectExist)
Senden Sie SIGKILL an alle Prozesse, die einem Muster entsprechen.
|
static
boolean
|
killAll(ITestDevice device, String pgrepRegex, long timeoutMs)
Senden Sie SIGKILL an alle Prozesse, die einem Muster entsprechen.
|
static
void
|
killPid(ITestDevice device, int pid, long timeoutMs)
Senden Sie SIGKILL an einen Prozess und warten Sie, bis er beendet wird.
|
static
void
|
killPid(ITestDevice device, int pid, int signal, long timeoutMs)
Signal an einen Prozess senden und warten, bis er beendet wird.
|
static
Optional<List<String>>
|
listOpenFiles(ITestDevice device, int pid)
Gibt die Namen der aktuell geöffneten Dateien des angegebenen Prozesses zurück.
|
static
Optional<Integer>
|
pidOf(ITestDevice device, String pgrepRegex)
Ruft eine einzelne PID ab, die einem an "pgrep" übergebenen Muster entspricht.
|
static
Optional<Map<Integer, String>>
|
pidsOf(ITestDevice device, String pgrepRegex)
Die PIDs abrufen, die einem an "pgrep" übergebenen Muster entsprechen.
|
static
void
|
waitPidExited(ITestDevice device, int pid)
Warten Sie, bis ein Prozess beendet wurde.
|
static
void
|
waitPidExited(ITestDevice device, int pid, long timeoutMs)
Warten Sie, bis ein Prozess beendet wurde.
|
static
Map<Integer, String>
|
waitProcessRunning(ITestDevice device, String pgrepRegex, long timeoutMs)
Warten Sie, bis ein laufender Prozess für einen bestimmten regulären Ausdruck gefunden wurde.
|
static
Map<Integer, String>
|
waitProcessRunning(ITestDevice device, String pgrepRegex)
Warten Sie, bis ein laufender Prozess für einen bestimmten regulären Ausdruck gefunden wurde.
|
static
AutoCloseable
|
withProcessKill(ITestDevice device, String pgrepRegex, Runnable beforeCloseKill, long timeoutMs)
Beenden Sie einen Prozess am Anfang und am Ende eines Tests.
|
static
AutoCloseable
|
withProcessKill(ITestDevice device, String pgrepRegex, Runnable beforeCloseKill)
Beenden Sie einen Prozess am Anfang und am Ende eines Tests.
|
Konstanten
PROZESS_POLL_PERIOD_MS
public static final long PROCESS_POLL_PERIOD_MS
Konstantenwert:
250
(0x00000000000000fa)
PROZESS_WARTE_TIMEOUT_MS
public static final long PROCESS_WAIT_TIMEOUT_MS
Konstantenwert:
10.000
(0x0000000000002710)
Öffentliche Methoden
findFileLoadedByProcess
public static Optional<IFileEntry> findFileLoadedByProcess (ITestDevice device,
String process,
String filenameSubstr)
Gibt den Dateieintrag der ersten Datei mit dem angegebenen Namen zurück, die durch den angegebenen Prozess geladen wurde
Parameter |
device |
ITestDevice : Gerät, auf dem ausgeführt werden soll |
process |
String : pgrep-Prozessmuster, nach dem gesucht werden soll |
filenameSubstr |
String : Teil des Dateinamens/-pfads, der vom Prozess geladen wird |
Returns |
Optional<IFileEntry> |
Ein Opotional von IFileEntry des Dateipfads auf dem Gerät, sofern vorhanden.
|
Ausgabe |
DeviceNotAvailableException |
|
findFilesLoadedByProcess
public static Optional<List<String>> findFilesLoadedByProcess (ITestDevice device,
int pid,
Pattern filePattern)
Gibt Dateinamen der angegebenen Datei zurück, die durch den angegebenen Prozess geladen wurde.
Parameter |
device |
ITestDevice : Gerät, auf dem ausgeführt werden soll |
pid |
int : die ID des zu suchenden Prozesses |
filePattern |
Pattern : ein Muster der zurückzugebenden Dateinamen |
Returns |
Optional<List<String>> |
ein Optional der gefilterten Dateien; leer, wenn der Prozess nicht gefunden wurde oder das offene
Dateien konnten nicht gelesen werden.
|
Ausgabe |
DeviceNotAvailableException |
|
getProcessName
public static Optional<String> getProcessName (ITestDevice device,
int pid)
Rufen Sie den Inhalt von /proc/pid/cmdline ab.
Parameter |
device |
ITestDevice : das zu verwendende Gerät |
pid |
int : die ID des Prozesses, für den der Name abgerufen werden soll |
Returns |
Optional<String> |
einen optionalen String des Inhalts von /proc/pid/cmdline; leer, wenn die PID nicht
gefunden werden
|
Ausgabe |
DeviceNotAvailableException |
|
killAll
public static boolean killAll (ITestDevice device,
String pgrepRegex,
long timeoutMs,
boolean expectExist)
Senden Sie SIGKILL an alle Prozesse, die einem Muster entsprechen.
Parameter |
device |
ITestDevice : das zu verwendende Gerät |
pgrepRegex |
String : String, der den regulären Ausdruck für pgrep darstellt |
timeoutMs |
long : Wartezeit, bevor eine TimeoutException ausgelöst wird |
expectExist |
boolean : ob eine Ausnahme ausgelöst werden soll, wenn keine Prozesse beendet wurden |
Returns |
boolean |
ob Prozesse beendet wurden
|
killAll
public static boolean killAll (ITestDevice device,
String pgrepRegex,
long timeoutMs)
Senden Sie SIGKILL an alle Prozesse, die einem Muster entsprechen.
Parameter |
device |
ITestDevice : das zu verwendende Gerät |
pgrepRegex |
String : String, der den regulären Ausdruck für pgrep darstellt |
timeoutMs |
long : Wartezeit, bevor eine TimeoutException ausgelöst wird |
Returns |
boolean |
ob Prozesse beendet wurden
|
KillPid
public static void killPid (ITestDevice device,
int pid,
long timeoutMs)
Senden Sie SIGKILL an einen Prozess und warten Sie, bis er beendet wird.
Parameter |
device |
ITestDevice : das zu verwendende Gerät |
pid |
int : die ID des Prozesses, der gewartet wird, bis er beendet wird |
timeoutMs |
long : Wartezeit, bevor eine TimeoutException ausgelöst wird
|
KillPid
public static void killPid (ITestDevice device,
int pid,
int signal,
long timeoutMs)
Signal an einen Prozess senden und warten, bis er beendet wird.
Parameter |
device |
ITestDevice : das zu verwendende Gerät |
pid |
int : die ID des Prozesses, der gewartet wird, bis er beendet wird |
signal |
int : das Signal, das an den Prozess gesendet werden soll |
timeoutMs |
long : Wartezeit, bevor eine TimeoutException ausgelöst wird
|
listOpenFiles (Dateien öffnen)
public static Optional<List<String>> listOpenFiles (ITestDevice device,
int pid)
Gibt die Namen der aktuell geöffneten Dateien des angegebenen Prozesses zurück.
Parameter |
device |
ITestDevice : Gerät, auf dem ausgeführt werden soll |
pid |
int : die ID des zu suchenden Prozesses |
Returns |
Optional<List<String>> |
ein Optional der geöffneten Dateien; leer, wenn der Prozess nicht gefunden wurde oder die geöffneten Dateien
konnte nicht gelesen werden.
|
Ausgabe |
DeviceNotAvailableException |
|
pidOf
public static Optional<Integer> pidOf (ITestDevice device,
String pgrepRegex)
Ruft eine einzelne PID ab, die einem an "pgrep" übergebenen Muster entspricht. Ein IllegalArgumentException
wird ausgelöst, wenn mehr als eine PID mit dem Muster übereinstimmt.
Parameter |
device |
ITestDevice : das zu verwendende Gerät |
pgrepRegex |
String : String, der den regulären Ausdruck für pgrep darstellt |
Returns |
Optional<Integer> |
Eine optionale Ganzzahl der pid; leer, wenn pgrep nicht EXIT_SUCCESS zurückgegeben hat
|
Ausgabe |
DeviceNotAvailableException |
|
IllegalArgumentException |
|
pidsOf
public static Optional<Map<Integer, String>> pidsOf (ITestDevice device,
String pgrepRegex)
Die PIDs abrufen, die einem an "pgrep" übergebenen Muster entsprechen. Da /proc/pid/comm abgeschnitten ist,
„pgrep“ wird mit „-f“ übergeben, um die vollständige Befehlszeile zu prüfen.
Parameter |
device |
ITestDevice : das zu verwendende Gerät |
pgrepRegex |
String : String, der den regulären Ausdruck für pgrep darstellt |
Returns |
Optional<Map<Integer, String>> |
eine optionale Zuordnung von pid zur Befehlszeile; leer, wenn pgrep nicht EXIT_SUCCESS zurückgegeben hat
|
Ausgabe |
DeviceNotAvailableException |
|
WaitPidExited (WartePidExited)
public static void waitPidExited (ITestDevice device,
int pid)
Warten Sie, bis ein Prozess beendet wurde. Es wird nicht darauf gewartet, dass sich etwas ändert,
nicht vorhanden. Es ist möglich, aber unwahrscheinlich, dass eine pid zwischen Abfragen wiederverwendet wird.
Parameter |
device |
ITestDevice : das zu verwendende Gerät |
pid |
int : die ID des Prozesses, der gewartet wird, bis er beendet wird
|
WaitPidExited (WartePidExited)
public static void waitPidExited (ITestDevice device,
int pid,
long timeoutMs)
Warten Sie, bis ein Prozess beendet wurde. Es wird nicht darauf gewartet, dass sich etwas ändert,
nicht vorhanden. Es ist möglich, aber unwahrscheinlich, dass eine pid zwischen Abfragen wiederverwendet wird.
Parameter |
device |
ITestDevice : das zu verwendende Gerät |
pid |
int : die ID des Prozesses, der gewartet wird, bis er beendet wird |
timeoutMs |
long : Wartezeit, bevor eine TimeoutException ausgelöst wird
|
WaitProcessRunning
public static Map<Integer, String> waitProcessRunning (ITestDevice device,
String pgrepRegex,
long timeoutMs)
Warten Sie, bis ein laufender Prozess für einen bestimmten regulären Ausdruck gefunden wurde.
Parameter |
device |
ITestDevice : das zu verwendende Gerät |
pgrepRegex |
String : String, der den regulären Ausdruck für pgrep darstellt |
timeoutMs |
long : Wartezeit, bevor eine TimeoutException ausgelöst wird |
Returns |
Map<Integer, String> |
die PID für die Befehlszuordnung von pidsOf(...)
|
Ausgabe |
TimeoutException |
|
DeviceNotAvailableException |
|
WaitProcessRunning
public static Map<Integer, String> waitProcessRunning (ITestDevice device,
String pgrepRegex)
Warten Sie, bis ein laufender Prozess für einen bestimmten regulären Ausdruck gefunden wurde.
Parameter |
device |
ITestDevice : das zu verwendende Gerät |
pgrepRegex |
String : String, der den regulären Ausdruck für pgrep darstellt |
Returns |
Map<Integer, String> |
die PID für die Befehlszuordnung von pidsOf(...)
|
Ausgabe |
TimeoutException |
|
DeviceNotAvailableException |
|
withProcessKill
public static AutoCloseable withProcessKill (ITestDevice device,
String pgrepRegex,
Runnable beforeCloseKill,
long timeoutMs)
Beenden Sie einen Prozess am Anfang und am Ende eines Tests.
Parameter |
device |
ITestDevice : das zu verwendende Gerät |
pgrepRegex |
String : das Namensmuster des Prozesses, der an pgrep übergeben werden soll |
beforeCloseKill |
Runnable : kann für alle Aktionen ausgeführt werden, die vor dem Beenden der
in einer normalen Umgebung. Kann null sein. |
timeoutMs |
long : wie lange in Millisekunden gewartet wird, bis der Prozess beendet ist |
Returns |
AutoCloseable |
Ein Objekt, das den Prozess wieder beendet, wenn er geschlossen wird
|
withProcessKill
public static AutoCloseable withProcessKill (ITestDevice device,
String pgrepRegex,
Runnable beforeCloseKill)
Beenden Sie einen Prozess am Anfang und am Ende eines Tests.
Parameter |
device |
ITestDevice : das zu verwendende Gerät |
pgrepRegex |
String : das Namensmuster des Prozesses, der an pgrep übergeben werden soll |
beforeCloseKill |
Runnable : kann für alle Aktionen ausgeführt werden, die vor dem Beenden der
in einer normalen Umgebung. Kann null sein. |
Returns |
AutoCloseable |
Ein Objekt, das den Prozess wieder beendet, wenn er geschlossen wird
|