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

Verschachtelte Klassen

class ProcessUtil.KillException

 

Konstanten

long PROCESS_POLL_PERIOD_MS

long PROCESS_WAIT_TIMEOUT_MS

Ö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

Ausgabe
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

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

Ausgabe
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

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

Ausgabe
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

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

Ausgabe
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

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

Ausgabe
TimeoutException
DeviceNotAvailableException
ProcessUtil.KillException

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

Ausgabe
TimeoutException
DeviceNotAvailableException
ProcessUtil.KillException

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

Ausgabe
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

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

Ausgabe
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException