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
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|