ProcessUtil

public final class ProcessUtil
extends Object

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


Vários auxiliares para encontrar, aguardar e encerrar processos no dispositivo

Resumo

Classes aninhadas

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)

Retorna a entrada do arquivo do primeiro arquivo carregado pelo processo especificado com o nome especificado

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

Retorna os nomes dos arquivos carregados pelo processo especificado.

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

Receba o conteúdo de /proc/pid/cmdline.

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

Enviar SIGKILL para todos os processos que correspondem a um padrão.

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

Enviar SIGKILL para todos os processos que correspondem a um padrão.

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

Enviar SIGKILL para um processo e aguardar a saída dele.

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

Enviar um sinal para um processo e aguardar a saída dele.

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

Retorna os nomes de arquivos abertos do processo especificado.

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

Recebe um único pid que corresponde a um padrão transmitido para "pgrep".

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

Recebe os pids que correspondem a um padrão transmitido para o `pgrep`.

static void waitPidExited(ITestDevice device, int pid)

Aguarde a saída de um processo.

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

Aguarde a saída de um processo.

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

Aguarde até que um processo em execução seja encontrado para uma determinada regex.

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

Aguarde até que um processo em execução seja encontrado para uma determinada regex.

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

Encerrar um processo no início e no fim de um teste.

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

Encerrar um processo no início e no fim de um teste.

Constantes

PROCESS_POLL_PERIOD_MS

public static final long PROCESS_POLL_PERIOD_MS

Valor da constante: 250 (0x00000000000000FA)

PROCESS_WAIT_TIMEOUT_MS

public static final long PROCESS_WAIT_TIMEOUT_MS

Valor da constante: 10000 (0x0000000000002710)

Métodos públicos

findFileLoadedByProcess

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

Retorna a entrada do arquivo do primeiro arquivo carregado pelo processo especificado com o nome especificado

Parâmetros
device ITestDevice: dispositivo em que será executado

process String: padrão de pgrep do processo a ser procurado

filenameSubstr String: parte do nome/caminho do arquivo carregado pelo processo

Retorna
Optional<IFileEntry> Um opcional de IFileEntry do caminho do arquivo no dispositivo, se ele existir.

Gera
DeviceNotAvailableException

findFilesLoadedByProcess

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

Retorna os nomes dos arquivos carregados pelo processo especificado.

Parâmetros
device ITestDevice: dispositivo em que será executado

pid int: o ID do processo a ser pesquisado

filePattern Pattern: um padrão dos nomes de arquivos a serem retornados

Retorna
Optional<List<String>> Um opcional dos arquivos filtrados. Vazia se o processo não foi encontrado ou se os arquivos abertos não puderam ser lidos.

Gera
DeviceNotAvailableException

getProcessName

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

Receba o conteúdo de /proc/pid/cmdline.

Parâmetros
device ITestDevice: o dispositivo a ser usado

pid int: o ID do processo para extrair o nome

Retorna
Optional<String> Uma string opcional do conteúdo de /proc/pid/cmdline; vazia se o pid não puder ser encontrado

Gera
DeviceNotAvailableException

killAll

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

Enviar SIGKILL para todos os processos que correspondem a um padrão.

Parâmetros
device ITestDevice: o dispositivo a ser usado

pgrepRegex String: uma string que representa a regex para pgrep

timeoutMs long: o tempo de espera antes de gerar uma TimeoutException

expectExist boolean: se uma exceção precisa ser gerada quando nenhum processo foi encerrado

Retorna
boolean se algum processo foi encerrado

Gera
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

killAll

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

Enviar SIGKILL para todos os processos que correspondem a um padrão.

Parâmetros
device ITestDevice: o dispositivo a ser usado

pgrepRegex String: uma string que representa a regex para pgrep

timeoutMs long: o tempo de espera antes de gerar uma TimeoutException

Retorna
boolean se algum processo foi encerrado

Gera
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

killPid

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

Enviar SIGKILL para um processo e aguardar a saída dele.

Parâmetros
device ITestDevice: o dispositivo a ser usado

pid int: o ID do processo a ser aguardando até a saída

timeoutMs long: o tempo de espera antes de gerar uma TimeoutException

Gera
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

killPid

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

Enviar um sinal para um processo e aguardar a saída dele.

Parâmetros
device ITestDevice: o dispositivo a ser usado

pid int: o ID do processo a ser aguardando até a saída

signal int: o sinal a ser enviado para o processo

timeoutMs long: o tempo de espera antes de gerar uma TimeoutException

Gera
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

listOpenFiles

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

Retorna os nomes de arquivos abertos do processo especificado.

Parâmetros
device ITestDevice: dispositivo em que será executado

pid int: o ID do processo a ser pesquisado

Retorna
Optional<List<String>> Um opcional dos arquivos abertos. Vazio se o processo não foi encontrado ou se os arquivos abertos não puderam ser lidos.

Gera
DeviceNotAvailableException

pidOf

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

Recebe um único pid correspondente a um padrão transmitido para "pgrep". Gera uma IllegalArgumentException quando há mais de um PID correspondente ao padrão.

Parâmetros
device ITestDevice: o dispositivo a ser usado

pgrepRegex String: uma string que representa a regex para pgrep

Retorna
Optional<Integer> Um inteiro opcional do pid; vazio se o pgrep não retornar EXIT_SUCCESS

Gera
DeviceNotAvailableException
IllegalArgumentException

pidsOf

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

Receba os pids que correspondem a um padrão transmitido para "pgrep". Como /proc/pid/comm é truncado, "pgrep" é transmitido com "-f" para verificar a linha de comando completa.

Parâmetros
device ITestDevice: o dispositivo a ser usado

pgrepRegex String: uma string que representa a regex para pgrep

Retorna
Optional<Map<Integer, String>> Um mapa opcional de pid para a linha de comando; vazio se o pgrep não retornar EXIT_SUCCESS

Gera
DeviceNotAvailableException

waitPidExited

public static void waitPidExited (ITestDevice device, 
                int pid)

Aguarde a saída de um processo. Não é esperar que ela mude, mas simplesmente não existir. É possível, mas improvável, que um pid seja reutilizado entre as pesquisas

Parâmetros
device ITestDevice: o dispositivo a ser usado

pid int: o ID do processo a ser aguardando até a saída

Gera
TimeoutException
DeviceNotAvailableException
ProcessUtil.KillException

waitPidExited

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

Aguarde a saída de um processo. Não é esperar que ela mude, mas simplesmente não existir. É possível, mas improvável, que um pid seja reutilizado entre as pesquisas

Parâmetros
device ITestDevice: o dispositivo a ser usado

pid int: o ID do processo a ser aguardando até a saída

timeoutMs long: o tempo de espera antes de gerar uma TimeoutException

Gera
TimeoutException
DeviceNotAvailableException
ProcessUtil.KillException

waitProcessRunning

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

Aguarde até que um processo em execução seja encontrado para uma determinada regex.

Parâmetros
device ITestDevice: o dispositivo a ser usado

pgrepRegex String: uma string que representa a regex para pgrep

timeoutMs long: o tempo de espera antes de gerar uma TimeoutException

Retorna
Map<Integer, String> o mapa de pid para comando de pidsOf(...)

Gera
TimeoutException
DeviceNotAvailableException

waitProcessRunning

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

Aguarde até que um processo em execução seja encontrado para uma determinada regex.

Parâmetros
device ITestDevice: o dispositivo a ser usado

pgrepRegex String: uma string que representa a regex para pgrep

Retorna
Map<Integer, String> o mapa de pid para comando de pidsOf(...)

Gera
TimeoutException
DeviceNotAvailableException

withProcessKill

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

Encerrar um processo no início e no fim de um teste.

Parâmetros
device ITestDevice: o dispositivo a ser usado

pgrepRegex String: o padrão de nome do processo a ser encerrado para fornecer ao pgrep

beforeCloseKill Runnable: um executável para todas as ações que precisam ser limpas antes de encerrar o processo em um ambiente normal no final do teste. Pode ser nulo.

timeoutMs long: o tempo em milissegundos para aguardar o término do processo

Retorna
AutoCloseable Um objeto que encerrará o processo novamente quando ele for fechado

Gera
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

withProcessKill

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

Encerrar um processo no início e no fim de um teste.

Parâmetros
device ITestDevice: o dispositivo a ser usado

pgrepRegex String: o padrão de nome do processo a ser encerrado para fornecer ao pgrep

beforeCloseKill Runnable: um executável para todas as ações que precisam ser limpas antes de encerrar o processo em um ambiente normal no final do teste. Pode ser nulo.

Retorna
AutoCloseable Um objeto que encerrará o processo novamente quando ele for fechado

Gera
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException