ProcessUtil

public final class ProcessUtil
extends Object

java.lang.Object
com.android.sts.common.ProcessUtil


Vari aiutanti per trovare, attendere e terminare i processi sul dispositivo

Riepilogo

Classi nidificate

class ProcessUtil.KillException

Costanti

long PROCESS_POLL_PERIOD_MS

long PROCESS_WAIT_TIMEOUT_MS

Metodi pubblici

static Optional<IFileEntry> findFileLoadedByProcess (ITestDevice device, String process, String filenameSubstr)

Restituisce la voce del file del primo file caricato dal processo specificato con il nome specificato

static Optional<List<String>> findFilesLoadedByProcess (ITestDevice device, int pid, Pattern filePattern)

Restituisce i nomi dei file del file specificato, caricato dal processo specificato.

static Optional<String> getProcessName (ITestDevice device, int pid)

Ottieni il contenuto da /proc/pid/cmdline.

static boolean killAll (ITestDevice device, String pgrepRegex, long timeoutMs, boolean expectExist)

Invia SIGKILL a tutti i processi che corrispondono a un modello.

static boolean killAll (ITestDevice device, String pgrepRegex, long timeoutMs)

Invia SIGKILL a tutti i processi che corrispondono a un modello.

static void killPid (ITestDevice device, int pid, long timeoutMs)

Invia SIGKILL a un processo e attendi che venga chiuso.

static void killPid (ITestDevice device, int pid, int signal, long timeoutMs)

Invia un segnale a un processo e attendi che venga chiuso.

static Optional<List<String>> listOpenFiles (ITestDevice device, int pid)

Restituisce i nomi dei file attualmente aperti del processo specificato.

static Optional<Integer> pidOf (ITestDevice device, String pgrepRegex)

Ottieni un singolo pid corrispondente a un modello passato a `pgrep`.

static Optional<Map<Integer, String>> pidsOf (ITestDevice device, String pgrepRegex)

Ottieni i pid che corrispondono a un modello passato a `pgrep`.

static void waitPidExited (ITestDevice device, int pid)

Attendi l'uscita da un processo.

static void waitPidExited (ITestDevice device, int pid, long timeoutMs)

Attendi l'uscita da un processo.

static Map<Integer, String> waitProcessRunning (ITestDevice device, String pgrepRegex, long timeoutMs)

Attendi finché non viene trovato un processo in esecuzione per una determinata espressione regolare.

static Map<Integer, String> waitProcessRunning (ITestDevice device, String pgrepRegex)

Attendi finché non viene trovato un processo in esecuzione per una determinata espressione regolare.

static AutoCloseable withProcessKill (ITestDevice device, String pgrepRegex, Runnable beforeCloseKill, long timeoutMs)

Uccide un processo all'inizio e alla fine di un test.

static AutoCloseable withProcessKill (ITestDevice device, String pgrepRegex, Runnable beforeCloseKill)

Uccide un processo all'inizio e alla fine di un test.

Costanti

PROCESS_POLL_PERIOD_MS

public static final long PROCESS_POLL_PERIOD_MS

Valore costante: 250 (0x00000000000000fa)

PROCESS_WAIT_TIMEOUT_MS

public static final long PROCESS_WAIT_TIMEOUT_MS

Valore costante: 10000 (0x0000000000002710)

Metodi pubblici

findFileLoadedByProcess

public static Optional<IFileEntry> findFileLoadedByProcess (ITestDevice device, 
                String process, 
                String filenameSubstr)

Restituisce la voce del file del primo file caricato dal processo specificato con il nome specificato

Parametri
device ITestDevice : dispositivo su cui eseguire

process String : modello pgrep del processo da cercare

filenameSubstr String : parte del nome/percorso del file caricato dal processo

ritorna
Optional<IFileEntry> un Opzionale di IFileEntry del percorso del file sul dispositivo se esiste.

Lancia
DeviceNotAvailableException

findFilesLoadedByProcess

public static Optional<List<String>> findFilesLoadedByProcess (ITestDevice device, 
                int pid, 
                Pattern filePattern)

Restituisce i nomi dei file del file specificato, caricato dal processo specificato.

Parametri
device ITestDevice : dispositivo su cui eseguire

pid int : l'id del processo da cercare

filePattern Pattern : un modello dei nomi dei file da restituire

ritorna
Optional<List<String>> un Opzionale dei file filtrati; vuoto se il processo non è stato trovato o non è stato possibile leggere i file aperti.

Lancia
DeviceNotAvailableException

getProcessName

public static Optional<String> getProcessName (ITestDevice device, 
                int pid)

Ottieni il contenuto da /proc/pid/cmdline.

Parametri
device ITestDevice : il dispositivo da utilizzare

pid int : l'id del processo per cui ottenere il nome

ritorna
Optional<String> una Stringa Opzionale del contenuto di /proc/pid/cmdline; vuoto se non è stato possibile trovare il pid

Lancia
DeviceNotAvailableException

uccidi tutti

public static boolean killAll (ITestDevice device, 
                String pgrepRegex, 
                long timeoutMs, 
                boolean expectExist)

Invia SIGKILL a tutti i processi che corrispondono a un modello.

Parametri
device ITestDevice : il dispositivo da utilizzare

pgrepRegex String : una stringa che rappresenta la regex per pgrep

timeoutMs long : quanto tempo attendere prima di lanciare una TimeoutException

expectExist boolean : se deve essere lanciata un'eccezione quando nessun processo è stato terminato

ritorna
boolean se qualche processo è stato ucciso

Lancia
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

uccidi tutti

public static boolean killAll (ITestDevice device, 
                String pgrepRegex, 
                long timeoutMs)

Invia SIGKILL a tutti i processi che corrispondono a un modello.

Parametri
device ITestDevice : il dispositivo da utilizzare

pgrepRegex String : una stringa che rappresenta la regex per pgrep

timeoutMs long : quanto tempo attendere prima di lanciare una TimeoutException

ritorna
boolean se qualche processo è stato ucciso

Lancia
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

killPid

public static void killPid (ITestDevice device, 
                int pid, 
                long timeoutMs)

Invia SIGKILL a un processo e attendi che venga chiuso.

Parametri
device ITestDevice : il dispositivo da utilizzare

pid int : l'id del processo da attendere fino all'uscita

timeoutMs long : quanto tempo attendere prima di lanciare una TimeoutException

Lancia
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

killPid

public static void killPid (ITestDevice device, 
                int pid, 
                int signal, 
                long timeoutMs)

Invia un segnale a un processo e attendi che venga chiuso.

Parametri
device ITestDevice : il dispositivo da utilizzare

pid int : l'id del processo da attendere fino all'uscita

signal int : il segnale da inviare al processo

timeoutMs long : quanto tempo attendere prima di lanciare una TimeoutException

Lancia
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

listOpenFiles

public static Optional<List<String>> listOpenFiles (ITestDevice device, 
                int pid)

Restituisce i nomi dei file attualmente aperti del processo specificato.

Parametri
device ITestDevice : dispositivo su cui eseguire

pid int : l'id del processo da cercare

ritorna
Optional<List<String>> un Opzionale dei file aperti; vuoto se il processo non è stato trovato o non è stato possibile leggere i file aperti.

Lancia
DeviceNotAvailableException

pidOf

public static Optional<Integer> pidOf (ITestDevice device, 
                String pgrepRegex)

Ottieni un singolo pid corrispondente a un modello passato a `pgrep`. Genera un'eccezione IllegalArgumentException quando è presente più di un PID corrispondente al modello.

Parametri
device ITestDevice : il dispositivo da utilizzare

pgrepRegex String : una stringa che rappresenta la regex per pgrep

ritorna
Optional<Integer> un intero facoltativo del pid; vuoto se pgrep non ha restituito EXIT_SUCCESS

Lancia
DeviceNotAvailableException
IllegalArgumentException

pidsOf

public static Optional<Map<Integer, String>> pidsOf (ITestDevice device, 
                String pgrepRegex)

Ottieni i pid che corrispondono a un modello passato a `pgrep`. Poiché /proc/pid/comm viene troncato, `pgrep` viene passato con `-f` per controllare l'intera riga di comando.

Parametri
device ITestDevice : il dispositivo da utilizzare

pgrepRegex String : una stringa che rappresenta la regex per pgrep

ritorna
Optional<Map<Integer, String>> una mappa opzionale di pid alla riga di comando; vuoto se pgrep non ha restituito EXIT_SUCCESS

Lancia
DeviceNotAvailableException

waitPidExited

public static void waitPidExited (ITestDevice device, 
                int pid)

Attendi l'uscita da un processo. Questo non aspetta che cambi, ma semplicemente che sia inesistente. È possibile, ma improbabile, che un pid venga riutilizzato tra i sondaggi

Parametri
device ITestDevice : il dispositivo da utilizzare

pid int : l'id del processo da attendere fino all'uscita

Lancia
TimeoutException
DeviceNotAvailableException
ProcessUtil.KillException

waitPidExited

public static void waitPidExited (ITestDevice device, 
                int pid, 
                long timeoutMs)

Attendi l'uscita da un processo. Questo non aspetta che cambi, ma semplicemente che sia inesistente. È possibile, ma improbabile, che un pid venga riutilizzato tra i sondaggi

Parametri
device ITestDevice : il dispositivo da utilizzare

pid int : l'id del processo da attendere fino all'uscita

timeoutMs long : quanto tempo attendere prima di lanciare una TimeoutException

Lancia
TimeoutException
DeviceNotAvailableException
ProcessUtil.KillException

waitProcessRunning

public static Map<Integer, String> waitProcessRunning (ITestDevice device, 
                String pgrepRegex, 
                long timeoutMs)

Attendi finché non viene trovato un processo in esecuzione per una determinata espressione regolare.

Parametri
device ITestDevice : il dispositivo da utilizzare

pgrepRegex String : una stringa che rappresenta la regex per pgrep

timeoutMs long : quanto tempo attendere prima di lanciare una TimeoutException

ritorna
Map<Integer, String> il pid per comandare la mappa da pidsOf(...)

Lancia
TimeoutException
DeviceNotAvailableException

waitProcessRunning

public static Map<Integer, String> waitProcessRunning (ITestDevice device, 
                String pgrepRegex)

Attendi finché non viene trovato un processo in esecuzione per una determinata espressione regolare.

Parametri
device ITestDevice : il dispositivo da utilizzare

pgrepRegex String : una stringa che rappresenta la regex per pgrep

ritorna
Map<Integer, String> il pid per comandare la mappa da pidsOf(...)

Lancia
TimeoutException
DeviceNotAvailableException

con ProcessKill

public static AutoCloseable withProcessKill (ITestDevice device, 
                String pgrepRegex, 
                Runnable beforeCloseKill, 
                long timeoutMs)

Uccide un processo all'inizio e alla fine di un test.

Parametri
device ITestDevice : il dispositivo da utilizzare

pgrepRegex String : il modello del nome del processo da uccidere da dare a pgrep

beforeCloseKill Runnable : un eseguibile per qualsiasi azione che necessita di pulizia prima di terminare il processo in un ambiente normale alla fine del test. Può essere nullo.

timeoutMs long : quanto tempo in millisecondi attendere affinché il processo venga terminato

ritorna
AutoCloseable Un oggetto che interromperà nuovamente il processo quando verrà chiuso

Lancia
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

con ProcessKill

public static AutoCloseable withProcessKill (ITestDevice device, 
                String pgrepRegex, 
                Runnable beforeCloseKill)

Uccide un processo all'inizio e alla fine di un test.

Parametri
device ITestDevice : il dispositivo da utilizzare

pgrepRegex String : il modello del nome del processo da uccidere da dare a pgrep

beforeCloseKill Runnable : un eseguibile per qualsiasi azione che necessita di pulizia prima di terminare il processo in un ambiente normale alla fine del test. Può essere nullo.

ritorna
AutoCloseable Un oggetto che interromperà nuovamente il processo quando verrà chiuso

Lancia
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException