ProcessUtil
public
final
class
ProcessUtil
extends Object
java.lang.Object
|
↳ |
com.android.sts.common.ProcessUtil
|
Verschiedene Hilfsprogramme 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 zurück, die vom angegebenen Prozess mit dem angegebenen Namen geladen wurde.
|
static
Optional<List<String>>
|
findFilesLoadedByProcess(ITestDevice device, int pid, Pattern filePattern)
Gibt die Dateinamen der angegebenen Datei zurück, die vom 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)
Sendet SIGKILL an alle Prozesse, die einem Muster entsprechen.
|
static
boolean
|
killAll(ITestDevice device, String pgrepRegex, long timeoutMs)
Sendet 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)
Senden Sie ein Signal an einen Prozess und warten Sie, 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)
Eine einzelne PID abrufen, die mit einem Muster übereinstimmt, das an `pgrep` übergeben wurde.
|
static
Optional<Map<Integer, String>>
|
pidsOf(ITestDevice device, String pgrepRegex)
Ruft die Prozess-IDs ab, die mit einem Muster übereinstimmen, das an „pgrep“ übergeben wurde.
|
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, bis ein laufender Prozess für einen bestimmten regulären Ausdruck gefunden wird.
|
static
Map<Integer, String>
|
waitProcessRunning(ITestDevice device, String pgrepRegex)
Warten, bis ein laufender Prozess für einen bestimmten regulären Ausdruck gefunden wird.
|
static
AutoCloseable
|
withProcessKill(ITestDevice device, String pgrepRegex, Runnable beforeCloseKill, long timeoutMs)
Prozesse am Anfang und Ende eines Tests beenden.
|
static
AutoCloseable
|
withProcessKill(ITestDevice device, String pgrepRegex, Runnable beforeCloseKill)
Prozesse am Anfang und Ende eines Tests beenden.
|
Konstanten
PROCESS_POLL_PERIOD_MS
public static final long PROCESS_POLL_PERIOD_MS
Konstanter Wert:
250
(0x00000000000000fa)
PROCESS_WAIT_TIMEOUT_MS
public static final long PROCESS_WAIT_TIMEOUT_MS
Konstanter Wert:
10.000
(0x0000000000002710)
Öffentliche Methoden
findFileLoadedByProcess
public static Optional<IFileEntry> findFileLoadedByProcess (ITestDevice device,
String process,
String filenameSubstr)
Gibt den Dateieintrag der ersten Datei zurück, die vom angegebenen Prozess mit dem angegebenen Namen geladen wurde.
Parameter |
device |
ITestDevice : Gerät, auf dem die Ausführung erfolgen soll |
process |
String : pgrep-Muster des zu suchenden Prozesses |
filenameSubstr |
String : Teil des Dateinamens/Pfads, der vom Prozess geladen wird |
Returns |
Optional<IFileEntry> |
Optionaler IFileEntry-Pfad der Datei auf dem Gerät, falls vorhanden.
|
Ausgabe |
DeviceNotAvailableException |
|
findFilesLoadedByProcess
public static Optional<List<String>> findFilesLoadedByProcess (ITestDevice device,
int pid,
Pattern filePattern)
Gibt die Dateinamen der angegebenen Datei zurück, die vom angegebenen Prozess geladen wurde.
Parameter |
device |
ITestDevice : Gerät, auf dem die Ausführung erfolgen soll |
pid |
int : ID des zu durchsuchenden Prozesses |
filePattern |
Pattern : ein Muster für die zurückzugebenden Dateinamen |
Returns |
Optional<List<String>> |
Optionaler Parameter der gefilterten Dateien. Leeres Feld, wenn der Prozess nicht gefunden wurde oder die geöffneten Dateien nicht gelesen werden konnten.
|
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 : ID des Prozesses, für den der Name abgerufen werden soll |
Returns |
Optional<String> |
Optionaler String mit dem Inhalt von /proc/pid/cmdline; leer, wenn die PID nicht gefunden werden konnte
|
Ausgabe |
DeviceNotAvailableException |
|
killAll
public static boolean killAll (ITestDevice device,
String pgrepRegex,
long timeoutMs,
boolean expectExist)
Sendet SIGKILL an alle Prozesse, die einem Muster entsprechen.
Parameter |
device |
ITestDevice : das zu verwendende Gerät |
pgrepRegex |
String : ein String, der den regulären Ausdruck für pgrep darstellt |
timeoutMs |
long : wie lange gewartet werden soll, bevor eine TimeoutException geworfen 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)
Sendet SIGKILL an alle Prozesse, die einem Muster entsprechen.
Parameter |
device |
ITestDevice : das zu verwendende Gerät |
pgrepRegex |
String : ein String, der den regulären Ausdruck für pgrep darstellt |
timeoutMs |
long : wie lange gewartet werden soll, bevor eine TimeoutException geworfen 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 : ID des Prozesses, auf dessen Beendigung gewartet werden soll |
timeoutMs |
long : wie lange gewartet werden soll, bevor eine TimeoutException geworfen wird
|
killPid
public static void killPid (ITestDevice device,
int pid,
int signal,
long timeoutMs)
Senden Sie ein Signal an einen Prozess und warten Sie, bis er beendet wird.
Parameter |
device |
ITestDevice : das zu verwendende Gerät |
pid |
int : ID des Prozesses, auf dessen Beendigung gewartet werden soll |
signal |
int : das Signal, das an den Prozess gesendet werden soll |
timeoutMs |
long : wie lange gewartet werden soll, bevor eine TimeoutException geworfen wird
|
listOpenFiles
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 die Ausführung erfolgen soll |
pid |
int : ID des zu durchsuchenden Prozesses |
Returns |
Optional<List<String>> |
Optionaler Parameter für die geöffneten Dateien; leer, wenn der Prozess nicht gefunden wurde oder die geöffneten Dateien nicht gelesen werden konnten.
|
Ausgabe |
DeviceNotAvailableException |
|
pidOf
public static Optional<Integer> pidOf (ITestDevice device,
String pgrepRegex)
Eine einzelne PID abrufen, die mit einem Muster übereinstimmt, das an „pgrep“ übergeben wird. Wenn mehr als eine PID mit dem Muster übereinstimmt, wird IllegalArgumentException
ausgegeben.
Parameter |
device |
ITestDevice : das zu verwendende Gerät |
pgrepRegex |
String : ein String, der den regulären Ausdruck für pgrep darstellt |
Returns |
Optional<Integer> |
Optionale Ganzzahl der Prozess-ID; leer, wenn pgrep nicht EXIT_SUCCESS zurückgegeben hat
|
Ausgabe |
DeviceNotAvailableException |
|
IllegalArgumentException |
|
pidsOf
public static Optional<Map<Integer, String>> pidsOf (ITestDevice device,
String pgrepRegex)
Ruft die PIDs ab, die einem Muster entsprechen, das an „pgrep“ übergeben wird. Da „/proc/pid/comm“ abgeschnitten ist, wird „pgrep“ mit „-f“ übergeben, um die vollständige Befehlszeile zu prüfen.
Parameter |
device |
ITestDevice : das zu verwendende Gerät |
pgrepRegex |
String : ein String, der den regulären Ausdruck für pgrep darstellt |
Returns |
Optional<Map<Integer, String>> |
Optionale Zuordnung der Prozess-ID zur Befehlszeile; leer, wenn pgrep nicht EXIT_SUCCESS zurückgegeben hat
|
Ausgabe |
DeviceNotAvailableException |
|
waitPidExited
public static void waitPidExited (ITestDevice device,
int pid)
Warten Sie, bis ein Prozess beendet wurde. Es geht nicht darum, darauf zu warten, dass sich etwas ändert, sondern darum, dass es einfach nicht existiert. Es ist möglich, aber unwahrscheinlich, dass eine PID zwischen den Abfragen wiederverwendet wird.
Parameter |
device |
ITestDevice : das zu verwendende Gerät |
pid |
int : Die ID des Prozesses, auf dessen Beendigung gewartet werden soll
|
waitPidExited
public static void waitPidExited (ITestDevice device,
int pid,
long timeoutMs)
Warten Sie, bis ein Prozess beendet wurde. Es geht nicht darum, darauf zu warten, dass sich etwas ändert, sondern darum, dass es einfach nicht existiert. Es ist möglich, aber unwahrscheinlich, dass eine PID zwischen den Abfragen wiederverwendet wird.
Parameter |
device |
ITestDevice : das zu verwendende Gerät |
pid |
int : ID des Prozesses, auf dessen Beendigung gewartet werden soll |
timeoutMs |
long : wie lange gewartet werden soll, bevor eine TimeoutException geworfen wird
|
waitProcessRunning
public static Map<Integer, String> waitProcessRunning (ITestDevice device,
String pgrepRegex,
long timeoutMs)
Warten, bis ein laufender Prozess für einen bestimmten regulären Ausdruck gefunden wird.
Parameter |
device |
ITestDevice : das zu verwendende Gerät |
pgrepRegex |
String : ein String, der den regulären Ausdruck für pgrep darstellt |
timeoutMs |
long : wie lange gewartet werden soll, bevor eine TimeoutException geworfen wird |
Returns |
Map<Integer, String> |
die Zuordnung von PIDs zu Befehlen aus pidsOf(...)
|
Ausgabe |
TimeoutException |
|
DeviceNotAvailableException |
|
waitProcessRunning
public static Map<Integer, String> waitProcessRunning (ITestDevice device,
String pgrepRegex)
Warten, bis ein laufender Prozess für einen bestimmten regulären Ausdruck gefunden wird.
Parameter |
device |
ITestDevice : das zu verwendende Gerät |
pgrepRegex |
String : ein String, der den regulären Ausdruck für pgrep darstellt |
Returns |
Map<Integer, String> |
die Zuordnung von PIDs zu Befehlen aus pidsOf(...)
|
Ausgabe |
TimeoutException |
|
DeviceNotAvailableException |
|
withProcessKill
public static AutoCloseable withProcessKill (ITestDevice device,
String pgrepRegex,
Runnable beforeCloseKill,
long timeoutMs)
Prozesse am Anfang und Ende eines Tests beenden.
Parameter |
device |
ITestDevice : das zu verwendende Gerät |
pgrepRegex |
String : Das Namensmuster des Prozesses, der beendet werden soll, und das an pgrep übergeben wird |
beforeCloseKill |
Runnable : ein ausführbares Programm für alle Aktionen, die vor dem Beenden des Prozesses in einer normalen Umgebung am Ende des Tests ausgeführt werden müssen. Kann null sein. |
timeoutMs |
long : Dauer in Millisekunden, die gewartet wird, bis der Prozess beendet wird |
Returns |
AutoCloseable |
Ein Objekt, das den Prozess wieder beendet, wenn es geschlossen wird
|
withProcessKill
public static AutoCloseable withProcessKill (ITestDevice device,
String pgrepRegex,
Runnable beforeCloseKill)
Prozesse am Anfang und Ende eines Tests beenden.
Parameter |
device |
ITestDevice : das zu verwendende Gerät |
pgrepRegex |
String : Das Namensmuster des Prozesses, der beendet werden soll, und das an pgrep übergeben wird |
beforeCloseKill |
Runnable : ein ausführbares Programm für alle Aktionen, die vor dem Beenden des Prozesses in einer normalen Umgebung am Ende des Tests ausgeführt werden müssen. Kann null sein. |
Returns |
AutoCloseable |
Ein Objekt, das den Prozess wieder beendet, wenn es geschlossen wird
|