ProcessUtil

public final class ProcessUtil
extends Object

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


Vari helper 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 specificati, caricati dal processo specificato.

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

Recupera i contenuti da /proc/pid/cmdline.

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

Invia SIGKILL a tutti i processi corrispondenti a un pattern.

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

Invia SIGKILL a tutti i processi corrispondenti a un pattern.

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)

Recupera un singolo pid corrispondente a un pattern passato a "pgrep".

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

Recupera i pid corrispondenti a un pattern 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 fino a quando non viene trovato un processo in esecuzione per una determinata regex.

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

Attendi fino a quando non viene trovato un processo in esecuzione per una determinata regex.

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

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

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

Uccidere 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 il comando

process String: pattern pgrep del processo da cercare

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

Ritorni
Optional<IFileEntry> Un elemento facoltativo di IFileEntry del percorso del file sul dispositivo, se esistente.

Lanci
DeviceNotAvailableException

findFilesLoadedByProcess

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

Restituisce i nomi dei file specificati, caricati dal processo specificato.

Parametri
device ITestDevice: dispositivo su cui eseguire il comando

pid int: l'ID del processo da cercare

filePattern Pattern: un pattern dei nomi dei file da restituire

Ritorni
Optional<List<String>> Un valore facoltativo dei file filtrati; vuoto se il processo non è stato trovato o se non è stato possibile leggere i file aperti.

Lanci
DeviceNotAvailableException

getProcessName

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

Recupera i contenuti da /proc/pid/cmdline.

Parametri
device ITestDevice: il dispositivo da utilizzare

pid int: l'ID del processo di cui recuperare il nome

Ritorni
Optional<String> Una stringa facoltativa dei contenuti di /proc/pid/cmdline; vuota se non è stato possibile trovare il pid

Lanci
DeviceNotAvailableException

killAll

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

Invia SIGKILL a tutti i processi corrispondenti a un pattern.

Parametri
device ITestDevice: il dispositivo da utilizzare

pgrepRegex String: una stringa che rappresenta l'espressione regolare per pgrep

timeoutMs long: il tempo di attesa prima di lanciare un'eccezione TimeoutException

expectExist boolean: indica se deve essere lanciata un'eccezione quando non sono stati interrotti processi

Ritorni
boolean se sono stati interrotti processi

Lanci
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

killAll

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

Invia SIGKILL a tutti i processi corrispondenti a un pattern.

Parametri
device ITestDevice: il dispositivo da utilizzare

pgrepRegex String: una stringa che rappresenta l'espressione regolare per pgrep

timeoutMs long: il tempo di attesa prima di lanciare un'eccezione TimeoutException

Ritorni
boolean se sono stati interrotti processi

Lanci
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 in attesa dell'uscita

timeoutMs long: il tempo di attesa prima di lanciare un'eccezione TimeoutException

Lanci
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 in attesa dell'uscita

signal int: l'indicatore da inviare al processo

timeoutMs long: il tempo di attesa prima di lanciare un'eccezione TimeoutException

Lanci
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 il comando

pid int: l'ID del processo da cercare

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

Lanci
DeviceNotAvailableException

pidOf

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

Recupera un singolo pid corrispondente a un pattern passato a "pgrep". Genera un IllegalArgumentException quando sono presenti più PID corrispondenti al pattern.

Parametri
device ITestDevice: il dispositivo da utilizzare

pgrepRegex String: una stringa che rappresenta l'espressione regolare per pgrep

Ritorni
Optional<Integer> Un numero intero facoltativo del pid; vuoto se pgrep non ha restituito EXIT_SUCCESS

Lanci
DeviceNotAvailableException
IllegalArgumentException

pidsOf

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

Recupera i pid corrispondenti a un pattern passato a "pgrep". Poiché /proc/pid/comm è troncato, "pgrep" viene passato con "-f" per controllare la riga di comando completa.

Parametri
device ITestDevice: il dispositivo da utilizzare

pgrepRegex String: una stringa che rappresenta l'espressione regolare per pgrep

Ritorni
Optional<Map<Integer, String>> una mappa facoltativa del pid alla riga di comando; vuota se pgrep non ha restituito EXIT_SUCCESS

Lanci
DeviceNotAvailableException

waitPidExited

public static void waitPidExited (ITestDevice device, 
                int pid)

Attendi l'uscita da un processo. Non si tratta di aspettare che cambi, ma semplicemente di non essere presente. È possibile, ma improbabile, che un pid venga riutilizzato tra un sondaggio e l'altro

Parametri
device ITestDevice: il dispositivo da utilizzare

pid int: l'ID del processo in attesa dell'uscita

Lanci
TimeoutException
DeviceNotAvailableException
ProcessUtil.KillException

waitPidExited

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

Attendi l'uscita da un processo. Non si tratta di aspettare che cambi, ma semplicemente di non essere presente. È possibile, ma improbabile, che un pid venga riutilizzato tra un sondaggio e l'altro

Parametri
device ITestDevice: il dispositivo da utilizzare

pid int: l'ID del processo in attesa dell'uscita

timeoutMs long: il tempo di attesa prima di lanciare un'eccezione TimeoutException

Lanci
TimeoutException
DeviceNotAvailableException
ProcessUtil.KillException

waitProcessRunning

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

Attendi fino a quando non viene trovato un processo in esecuzione per una determinata regex.

Parametri
device ITestDevice: il dispositivo da utilizzare

pgrepRegex String: una stringa che rappresenta l'espressione regolare per pgrep

timeoutMs long: il tempo di attesa prima di lanciare un'eccezione TimeoutException

Ritorni
Map<Integer, String> la mappa del pid al comando da pidsOf(...)

Lanci
TimeoutException
DeviceNotAvailableException

waitProcessRunning

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

Attendi fino a quando non viene trovato un processo in esecuzione per una determinata regex.

Parametri
device ITestDevice: il dispositivo da utilizzare

pgrepRegex String: una stringa che rappresenta l'espressione regolare per pgrep

Ritorni
Map<Integer, String> la mappa del pid al comando da pidsOf(...)

Lanci
TimeoutException
DeviceNotAvailableException

withProcessKill

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

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

Parametri
device ITestDevice: il dispositivo da utilizzare

pgrepRegex String: il pattern del nome del processo da uccidere da passare a pgrep

beforeCloseKill Runnable: un file eseguibile per tutte le azioni che devono essere eseguite prima di interrompere il processo in un ambiente normale al termine del test. Può essere null.

timeoutMs long: il tempo in millisecondi da attendere per l'interruzione del processo

Ritorni
AutoCloseable Un oggetto che ucciderà di nuovo il processo quando viene chiuso

Lanci
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

withProcessKill

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

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

Parametri
device ITestDevice: il dispositivo da utilizzare

pgrepRegex String: il pattern del nome del processo da uccidere da passare a pgrep

beforeCloseKill Runnable: un file eseguibile per tutte le azioni che devono essere eseguite prima di interrompere il processo in un ambiente normale al termine del test. Può essere null.

Ritorni
AutoCloseable Un oggetto che ucciderà di nuovo il processo quando viene chiuso

Lanci
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException