Util de proceso

public final class ProcessUtil
extends Object

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


Varios ayudantes para buscar, esperar y eliminar procesos en el dispositivo

Resumen

clases anidadas

class ProcessUtil.KillException

Constantes

long PROCESS_POLL_PERIOD_MS

long PROCESS_WAIT_TIMEOUT_MS

Métodos públicos

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

Devuelve la entrada del primer archivo cargado por el proceso especificado con el nombre especificado

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

Devuelve los nombres de archivo del archivo especificado, cargado por el proceso especificado.

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

Obtenga el contenido de /proc/pid/cmdline.

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

Envíe SIGKILL a todos los procesos que coincidan con un patrón.

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

Envíe SIGKILL a todos los procesos que coincidan con un patrón.

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

Envíe SIGKILL a un proceso y espere a que salga.

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

Envía una señal a un proceso y espera a que salga.

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

Devuelve los nombres de archivos actualmente abiertos del proceso especificado.

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

Obtenga un único pid que coincida con un patrón pasado a `pgrep`.

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

Obtenga los pids que coincidan con un patrón pasado a `pgrep`.

static void waitPidExited (ITestDevice device, int pid)

Espere a que se cierre un proceso.

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

Espere a que se cierre un proceso.

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

Espere hasta que se encuentre un proceso en ejecución para una expresión regular determinada.

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

Espere hasta que se encuentre un proceso en ejecución para una expresión regular determinada.

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

Mata un proceso al principio y al final de una prueba.

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

Mata un proceso al principio y al final de una prueba.

Constantes

PROCESS_POLL_PERIOD_MS

public static final long PROCESS_POLL_PERIOD_MS

Valor constante: 250 (0x00000000000000fa)

PROCESS_WAIT_TIMEOUT_MS

public static final long PROCESS_WAIT_TIMEOUT_MS

Valor constante: 10000 (0x0000000000002710)

Métodos públicos

encontrar archivo cargado por proceso

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

Devuelve la entrada del primer archivo cargado por el proceso especificado con el nombre especificado

Parámetros
device ITestDevice : dispositivo en el que se ejecutará

process String : patrón pgrep del proceso a buscar

filenameSubstr String : parte del nombre del archivo/ruta cargada por el proceso

Devoluciones
Optional<IFileEntry> Opcional de IFileEntry de la ruta del archivo en el dispositivo, si existe.

Lanza
DeviceNotAvailableException

encontrar archivos cargados por proceso

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

Devuelve los nombres de archivo del archivo especificado, cargado por el proceso especificado.

Parámetros
device ITestDevice : dispositivo en el que se ejecutará

pid int : la identificación del proceso a buscar

filePattern Pattern : un patrón de los nombres de archivos a devolver

Devoluciones
Optional<List<String>> un Opcional de los archivos filtrados; vacío si no se encontró el proceso o no se pudieron leer los archivos abiertos.

Lanza
DeviceNotAvailableException

obtener nombre del proceso

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

Obtenga el contenido de /proc/pid/cmdline.

Parámetros
device ITestDevice : el dispositivo a utilizar

pid int : la identificación del proceso para obtener el nombre

Devoluciones
Optional<String> una cadena opcional del contenido de /proc/pid/cmdline; vacío si no se pudo encontrar el pid

Lanza
DeviceNotAvailableException

Mátalos a todos

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

Envíe SIGKILL a todos los procesos que coincidan con un patrón.

Parámetros
device ITestDevice : el dispositivo a utilizar

pgrepRegex String : una cadena que representa la expresión regular de pgrep

timeoutMs long : cuánto tiempo esperar antes de lanzar una TimeoutException

expectExist boolean : si se debe lanzar una excepción cuando no se canceló ningún proceso

Devoluciones
boolean si algún proceso fue eliminado

Lanza
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

Mátalos a todos

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

Envíe SIGKILL a todos los procesos que coincidan con un patrón.

Parámetros
device ITestDevice : el dispositivo a utilizar

pgrepRegex String : una cadena que representa la expresión regular de pgrep

timeoutMs long : cuánto tiempo esperar antes de lanzar una TimeoutException

Devoluciones
boolean si algún proceso fue eliminado

Lanza
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

matarPid

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

Envíe SIGKILL a un proceso y espere a que salga.

Parámetros
device ITestDevice : el dispositivo a utilizar

pid int : la identificación del proceso a esperar hasta que salga

timeoutMs long : cuánto tiempo esperar antes de lanzar una TimeoutException

Lanza
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

matarPid

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

Envía una señal a un proceso y espera a que salga.

Parámetros
device ITestDevice : el dispositivo a utilizar

pid int : la identificación del proceso a esperar hasta que salga

signal int : la señal a enviar al proceso

timeoutMs long : cuánto tiempo esperar antes de lanzar una TimeoutException

Lanza
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

lista de archivos abiertos

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

Devuelve los nombres de archivos actualmente abiertos del proceso especificado.

Parámetros
device ITestDevice : dispositivo en el que se ejecutará

pid int : la identificación del proceso a buscar

Devoluciones
Optional<List<String>> un Opcional de los archivos abiertos; vacío si no se encontró el proceso o no se pudieron leer los archivos abiertos.

Lanza
DeviceNotAvailableException

pidDe

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

Obtenga un único pid que coincida con un patrón pasado a `pgrep`. Lanza una IllegalArgumentException cuando hay más de un PID que coincide con el patrón.

Parámetros
device ITestDevice : el dispositivo a utilizar

pgrepRegex String : una cadena que representa la expresión regular de pgrep

Devoluciones
Optional<Integer> un entero opcional del pid; vacío si pgrep no devolvió EXIT_SUCCESS

Lanza
DeviceNotAvailableException
IllegalArgumentException

pidsDe

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

Obtenga los pids que coincidan con un patrón pasado a `pgrep`. Debido a que /proc/pid/comm está truncado, `pgrep` se pasa con `-f` para verificar la línea de comando completa.

Parámetros
device ITestDevice : el dispositivo a utilizar

pgrepRegex String : una cadena que representa la expresión regular de pgrep

Devoluciones
Optional<Map<Integer, String>> un mapa opcional de pid a la línea de comando; vacío si pgrep no devolvió EXIT_SUCCESS

Lanza
DeviceNotAvailableException

esperarPidSalido

public static void waitPidExited (ITestDevice device, 
                int pid)

Espere a que se cierre un proceso. Esto no es esperar a que cambie, sino simplemente ser inexistente. Es posible, pero poco probable, que un pid se reutilice entre encuestas.

Parámetros
device ITestDevice : el dispositivo a utilizar

pid int : la identificación del proceso a esperar hasta que salga

Lanza
TimeoutException
DeviceNotAvailableException
ProcessUtil.KillException

esperarPidSalido

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

Espere a que se cierre un proceso. Esto no es esperar a que cambie, sino simplemente ser inexistente. Es posible, pero poco probable, que un pid se reutilice entre encuestas.

Parámetros
device ITestDevice : el dispositivo a utilizar

pid int : la identificación del proceso a esperar hasta que salga

timeoutMs long : cuánto tiempo esperar antes de lanzar una TimeoutException

Lanza
TimeoutException
DeviceNotAvailableException
ProcessUtil.KillException

esperarProcesoEjecutando

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

Espere hasta que se encuentre un proceso en ejecución para una expresión regular determinada.

Parámetros
device ITestDevice : el dispositivo a utilizar

pgrepRegex String : una cadena que representa la expresión regular de pgrep

timeoutMs long : cuánto tiempo esperar antes de lanzar una TimeoutException

Devoluciones
Map<Integer, String> el pid al mapa de comandos desde pidsOf(...)

Lanza
TimeoutException
DeviceNotAvailableException

esperarProcesoEjecutando

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

Espere hasta que se encuentre un proceso en ejecución para una expresión regular determinada.

Parámetros
device ITestDevice : el dispositivo a utilizar

pgrepRegex String : una cadena que representa la expresión regular de pgrep

Devoluciones
Map<Integer, String> el pid al mapa de comandos desde pidsOf(...)

Lanza
TimeoutException
DeviceNotAvailableException

conProcessKill

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

Mata un proceso al principio y al final de una prueba.

Parámetros
device ITestDevice : el dispositivo a utilizar

pgrepRegex String : el patrón de nombre del proceso a matar para dárselo a pgrep

beforeCloseKill Runnable : un ejecutable para cualquier acción que necesite limpieza antes de finalizar el proceso en un entorno normal al final de la prueba. Puede ser nulo.

timeoutMs long : cuánto tiempo en milisegundos se debe esperar hasta que finalice el proceso

Devoluciones
AutoCloseable Un objeto que matará el proceso nuevamente cuando se cierre.

Lanza
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

conProcessKill

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

Mata un proceso al principio y al final de una prueba.

Parámetros
device ITestDevice : el dispositivo a utilizar

pgrepRegex String : el patrón de nombre del proceso a matar para dárselo a pgrep

beforeCloseKill Runnable : un ejecutable para cualquier acción que necesite limpieza antes de finalizar el proceso en un entorno normal al final de la prueba. Puede ser nulo.

Devoluciones
AutoCloseable Un objeto que matará el proceso nuevamente cuando se cierre.

Lanza
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException