ProcessUtil

public final class ProcessUtil
extends Object

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


Varios asistentes 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)

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)

Muestra los nombres de archivo del archivo especificado, cargados por 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)

Enviar una señal a un proceso y esperar a que se cierre.

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

Muestra los nombres de archivo 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)

Obtiene los pids que coinciden 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

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: 10,000 (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: Es el dispositivo en el que se ejecutará.

process String: Es el patrón pgrep del proceso que se debe buscar.

filenameSubstr String: Es la parte del nombre o la ruta del archivo que carga el proceso.

Muestra
Optional<IFileEntry> Una opción 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)

Muestra los nombres de archivo del archivo especificado, cargados por el proceso especificado.

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

pid int: Es el ID del proceso en el que se realizará la búsqueda.

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

Muestra
Optional<List<String>> una opción de los archivos filtrados; vacío si el proceso no se encontró o si la ventana no se pudieron leer los archivos.

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 el que se obtendrá el nombre.

Muestra
Optional<String> una cadena opcional del contenido de /proc/pid/cmdline vacío si el PID no podía que lo encuentren

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 arrojar una excepción cuando no se eliminó ningún proceso.

Muestra
boolean si algún proceso se eliminó

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 algún proceso se eliminó

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 debe esperar 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)

Enviar una señal a un proceso y esperar a que se cierre.

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

pid int: Es el ID del proceso que se debe esperar 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 archivo abiertos actualmente del proceso especificado.

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

pid int: Es el ID del proceso en el que se realizará la búsqueda.

Muestra
Optional<List<String>> una opción de los archivos abiertos; vacío si no se encontró el proceso o si los archivos abiertos no se pudo leer.

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". Se arroja una IllegalArgumentException cuando hay más de un PID que coincide 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> un número entero opcional del pid; vacío si pgrep no mostró EXIT_SUCCESS

Arroja
DeviceNotAvailableException
IllegalArgumentException

pidsOf

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

Obtiene los pids que coinciden con un patrón pasado a "pgrep". Como /proc/pid/comm está truncado, “pgrep” se pasa 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>> un mapa opcional de PID a la línea de comandos vacío si pgrep no mostró 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, inexistente. Es posible, pero poco probable, que un pid se reutilice entre encuestas

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

pid int: Es el ID del proceso que se debe esperar 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, inexistente. Es posible, pero poco probable, que un pid se reutilice entre encuestas

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

pid int: Es el ID del proceso que se debe esperar 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 pid para asignar comandos a map desde 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 pid para asignar comandos a map desde 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 borrará para darle a pgrep.

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

timeoutMs long: Es la cantidad de tiempo en milisegundos que se debe esperar a que finalice el proceso.

Muestra
AutoCloseable Un objeto que cerrará 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 borrará para darle a pgrep.

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

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

Arroja
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException