ProcessUtil

public final class ProcessUtil
extends Object

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


Varios ayudantes para encontrar, 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 de archivo 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ía SIGKILL a todos los procesos que coincidan con un patrón.

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

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

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

Envía SIGKILL a un proceso y espera a que finalice.

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

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

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

Devuelve los nombres de archivo actualmente abiertos del proceso especificado.

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

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

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

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

static void waitPidExited (ITestDevice device, int pid)

Esperar a que se salga de un proceso.

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

Esperar a que se salga de 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 dada.

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

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

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

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

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

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

constantes

PROCESO_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

findFileLoadedByProcess

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

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

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

process String : pgrep patrón de proceso a buscar

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

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

Lanza
DeviceNotAvailableException

findFilesLoadedByProcess

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 : el id del proceso a buscar

filePattern Pattern : un patrón de los nombres de archivo para 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

getProcessName

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ía 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 para pgrep

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

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

Devoluciones
boolean si se mató algún proceso

Lanza
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

Mátalos a todos

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

Envía 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 para pgrep

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

Devoluciones
boolean si se mató algún proceso

Lanza
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

matarPid

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

Envía SIGKILL a un proceso y espera a que finalice.

Parámetros
device ITestDevice : el dispositivo a utilizar

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

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

Parámetros
device ITestDevice : el dispositivo a utilizar

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

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

listOpenFiles

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

Devuelve los nombres de archivo actualmente abiertos del proceso especificado.

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

pid int : el id 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

pidOf

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

Obtenga un solo pid que coincida con un patrón pasado a `pgrep`. Lance una IllegalArgumentException cuando haya más de un PID que coincida con el patrón.

Parámetros
device ITestDevice : el dispositivo a utilizar

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

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

Lanza
DeviceNotAvailableException
IllegalArgumentException

pidsOf

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

Obtenga los pid 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 para pgrep

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

Lanza
DeviceNotAvailableException

esperarPidExited

public static void waitPidExited (ITestDevice device, 
                int pid)

Esperar a que se salga de un proceso. Esto no es esperar a que cambie, sino simplemente que sea 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 salir

Lanza
TimeoutException
DeviceNotAvailableException
ProcessUtil.KillException

esperarPidExited

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

Esperar a que se salga de un proceso. Esto no es esperar a que cambie, sino simplemente que sea 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 salir

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

Lanza
TimeoutException
DeviceNotAvailableException
ProcessUtil.KillException

esperaProcesoEn ejecución

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

Parámetros
device ITestDevice : el dispositivo a utilizar

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

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

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

Lanza
TimeoutException
DeviceNotAvailableException

esperaProcesoEn ejecución

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

Parámetros
device ITestDevice : el dispositivo a utilizar

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

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

Lanza
TimeoutException
DeviceNotAvailableException

withProcessKill

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

Matar 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 para matar para dar 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 esperar a que el proceso finalice

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

Lanza
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

withProcessKill

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

Matar 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 para matar para dar 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