ProcessUtil

public final class ProcessUtil
extends Object

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


Varias ayudas para encontrar, esperar y finalizar 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)

Muestra 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 los archivos del archivo especificado que cargó el proceso especificado.

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

Obtén 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 se cierre.

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

Envía un indicador a un proceso y espera a que se cierre.

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

Muestra los nombres de los archivos abiertos actualmente del proceso especificado.

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

Obtén un solo pid que coincida con un patrón pasado a "pgrep".

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

Obtén los pids que coincidan con un patrón pasado a "pgrep".

static void waitPidExited(ITestDevice device, int pid)

Espera a que se cierre un proceso.

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

Espera a que se cierre un proceso.

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

Espera hasta que se encuentre un proceso en ejecución para una regex determinada.

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

Espera hasta que se encuentre un proceso en ejecución para una regex determinada.

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

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

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

Finaliza 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

findFileLoadedByProcess

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

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

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

process String: Es el patrón de pgrep del proceso que se busca.

filenameSubstr String: Es la parte del nombre o la ruta de acceso del archivo que cargó el proceso.

Muestra
Optional<IFileEntry> Un elemento opcional de IFileEntry de la ruta de acceso del archivo en el dispositivo, si existe.

Arroja
DeviceNotAvailableException

findFilesLoadedByProcess

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

Devuelve los nombres de los archivos del archivo especificado que cargó el proceso especificado.

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

pid int: Es el ID del proceso que se buscará.

filePattern Pattern: Es un patrón de los nombres de los archivos que se mostrarán.

Muestra
Optional<List<String>> Es un elemento opcional de los archivos filtrados; está vacío si no se encontró el proceso o si no se pudieron leer los archivos abiertos.

Arroja
DeviceNotAvailableException

getProcessName

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

Obtén el contenido de /proc/pid/cmdline.

Parámetros
device ITestDevice: Es el dispositivo que se usará.

pid int: Es el ID del proceso para obtener el nombre.

Muestra
Optional<String> Es una cadena opcional del contenido de /proc/pid/cmdline; está vacía si no se pudo encontrar el pid.

Arroja
DeviceNotAvailableException

killAll

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: Es el dispositivo que se usará.

pgrepRegex String: Es una cadena que representa la regex de pgrep.

timeoutMs long: Es la cantidad de tiempo que se debe esperar antes de arrojar una TimeoutException.

expectExist boolean: Indica si se debe generar una excepción cuando no se hayan cerrado procesos.

Muestra
boolean si se cerraron procesos

Arroja
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

killAll

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: Es el dispositivo que se usará.

pgrepRegex String: Es una cadena que representa la regex de pgrep.

timeoutMs long: Es la cantidad de tiempo que se debe esperar antes de arrojar una TimeoutException.

Muestra
boolean si se cerraron procesos

Arroja
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

killPid

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

Envía SIGKILL a un proceso y espera a que se cierre.

Parámetros
device ITestDevice: Es el dispositivo que se usará.

pid int: Es el ID del proceso que se espera hasta que se cierre.

timeoutMs long: Es la cantidad de tiempo que se debe esperar antes de arrojar una TimeoutException.

Arroja
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

killPid

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

Envía un indicador a un proceso y espera a que se cierre.

Parámetros
device ITestDevice: Es el dispositivo que se usará.

pid int: Es el ID del proceso que se espera hasta que se cierre.

signal int: Es el indicador que se enviará al proceso.

timeoutMs long: Es la cantidad de tiempo que se debe esperar antes de arrojar una TimeoutException.

Arroja
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

listOpenFiles

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

Muestra los nombres de los archivos abiertos actualmente del proceso especificado.

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

pid int: Es el ID del proceso que se buscará.

Muestra
Optional<List<String>> Es un elemento opcional de los archivos abiertos; está vacío si no se encontró el proceso o si no se pudieron leer los archivos abiertos.

Arroja
DeviceNotAvailableException

pidOf

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

Obtén un solo PID que coincida con un patrón pasado a "pgrep". Lanza un IllegalArgumentException cuando haya más de un PID que coincida con el patrón.

Parámetros
device ITestDevice: Es el dispositivo que se usará.

pgrepRegex String: Es una cadena que representa la regex de pgrep.

Muestra
Optional<Integer> Es un número entero opcional del pid; está vacío si pgrep no muestra EXIT_SUCCESS.

Arroja
DeviceNotAvailableException
IllegalArgumentException

pidsOf

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

Obtén los pids que coincidan con un patrón pasado a "pgrep". Debido a que /proc/pid/comm se trunca, se pasa "pgrep" con "-f" para verificar la línea de comandos completa.

Parámetros
device ITestDevice: Es el dispositivo que se usará.

pgrepRegex String: Es una cadena que representa la regex de pgrep.

Muestra
Optional<Map<Integer, String>> Es un mapa opcional de pid a la línea de comandos; está vacío si pgrep no muestra EXIT_SUCCESS.

Arroja
DeviceNotAvailableException

waitPidExited

public static void waitPidExited (ITestDevice device, 
                int pid)

Espera a que se cierre un proceso. Esto no significa esperar a que cambie, sino que simplemente no existe. Es posible, pero poco probable, que se vuelva a usar un pid entre encuestas.

Parámetros
device ITestDevice: Es el dispositivo que se usará.

pid int: Es el ID del proceso que se espera hasta que se cierre.

Arroja
TimeoutException
DeviceNotAvailableException
ProcessUtil.KillException

waitPidExited

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

Espera a que se cierre un proceso. Esto no significa esperar a que cambie, sino que simplemente no existe. Es posible, pero poco probable, que se vuelva a usar un pid entre encuestas.

Parámetros
device ITestDevice: Es el dispositivo que se usará.

pid int: Es el ID del proceso que se espera hasta que se cierre.

timeoutMs long: Es la cantidad de tiempo que se debe esperar antes de arrojar una TimeoutException.

Arroja
TimeoutException
DeviceNotAvailableException
ProcessUtil.KillException

waitProcessRunning

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

Espera hasta que se encuentre un proceso en ejecución para una regex determinada.

Parámetros
device ITestDevice: Es el dispositivo que se usará.

pgrepRegex String: Es una cadena que representa la regex de pgrep.

timeoutMs long: Es la cantidad de tiempo que se debe esperar antes de arrojar una TimeoutException.

Muestra
Map<Integer, String> el mapa de pid a comando de pidsOf(...)

Arroja
TimeoutException
DeviceNotAvailableException

waitProcessRunning

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

Espera hasta que se encuentre un proceso en ejecución para una regex determinada.

Parámetros
device ITestDevice: Es el dispositivo que se usará.

pgrepRegex String: Es una cadena que representa la regex de pgrep.

Muestra
Map<Integer, String> el mapa de pid a comando de pidsOf(...)

Arroja
TimeoutException
DeviceNotAvailableException

withProcessKill

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

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

Parámetros
device ITestDevice: Es el dispositivo que se usará.

pgrepRegex String: Es el patrón de nombre del proceso que se finalizará para darle a pgrep.

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

timeoutMs long: Es la cantidad de tiempo en milisegundos que se esperará para que se cancele el proceso.

Muestra
AutoCloseable Un objeto que finalizará el proceso nuevamente cuando se cierre

Arroja
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

withProcessKill

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

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

Parámetros
device ITestDevice: Es el dispositivo que se usará.

pgrepRegex String: Es el patrón de nombre del proceso que se finalizará para darle a pgrep.

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

Muestra
AutoCloseable Un objeto que finalizará el proceso nuevamente cuando se cierre

Arroja
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException