ProcessUtil

public final class ProcessUtil
extends Object

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


Vários ajudantes para encontrar, esperar 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 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 do arquivo especificado, carregados pelo processo especificado.

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

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

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

Envie SIGKILL para todos os processos que correspondam a um padrão.

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

Envie SIGKILL para todos os processos que correspondam a um padrão.

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

Envie SIGKILL para um processo e espere que ele seja encerrado.

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

Envie um sinal para um processo e espere que ele seja encerrado.

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

Retorna os nomes dos arquivos atualmente abertos do processo especificado.

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

Obtenha um único pid que corresponda a um padrão passado para `pgrep`.

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

Obtenha os pids que correspondem a um padrão passado para `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 um determinado regex.

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

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

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

Elimine um processo no início e no final de um teste.

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

Elimine um processo no início e no final de um teste.

Constantes

PROCESS_POLL_PERIOD_MS

public static final long PROCESS_POLL_PERIOD_MS

Valor constante: 250 (0x0000000000000fa)

PROCESS_WAIT_TIMEOUT_MS

public static final long PROCESS_WAIT_TIMEOUT_MS

Valor Constante: 10000 (0x000000000002710)

Métodos públicos

findFileLoadedByProcess

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

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

Parâmetros
device ITestDevice : dispositivo a ser executado

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

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

Devoluções
Optional<IFileEntry> uma opção de IFileEntry do caminho do arquivo no dispositivo, se existir.

Lança
DeviceNotAvailableException

findFilesLoadedByProcess

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

Retorna os nomes dos arquivos do arquivo especificado, carregados pelo processo especificado.

Parâmetros
device ITestDevice : dispositivo a ser executado

pid int : o id do processo a ser pesquisado

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

Devoluções
Optional<List<String>> um Opcional dos arquivos filtrados; vazio se o processo não foi encontrado ou os arquivos abertos não puderam ser lidos.

Lança
DeviceNotAvailableException

getProcessName

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

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

Parâmetros
device ITestDevice : o dispositivo a ser usado

pid int : o id do processo para obter o nome

Devoluções
Optional<String> uma string opcional do conteúdo de /proc/pid/cmdline; vazio se o pid não puder ser encontrado

Lança
DeviceNotAvailableException

Mate todos

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

Envie SIGKILL para todos os processos que correspondam a um padrão.

Parâmetros
device ITestDevice : o dispositivo a ser usado

pgrepRegex String : uma String representando o regex para pgrep

timeoutMs long : quanto tempo esperar antes de lançar uma TimeoutException

expectExist boolean : se uma exceção deve ser lançada quando nenhum processo foi eliminado

Devoluções
boolean se algum processo foi eliminado

Lança
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

Mate todos

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

Envie SIGKILL para todos os processos que correspondam a um padrão.

Parâmetros
device ITestDevice : o dispositivo a ser usado

pgrepRegex String : uma String representando o regex para pgrep

timeoutMs long : quanto tempo esperar antes de lançar uma TimeoutException

Devoluções
boolean se algum processo foi eliminado

Lança
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

matarPid

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

Envie SIGKILL para um processo e espere que ele seja encerrado.

Parâmetros
device ITestDevice : o dispositivo a ser usado

pid int : o id do processo para esperar até sair

timeoutMs long : quanto tempo esperar antes de lançar uma TimeoutException

Lança
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

matarPid

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

Envie um sinal para um processo e espere que ele seja encerrado.

Parâmetros
device ITestDevice : o dispositivo a ser usado

pid int : o id do processo para esperar até sair

signal int : o sinal a ser enviado ao processo

timeoutMs long : quanto tempo esperar antes de lançar uma TimeoutException

Lança
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

listaOpenFiles

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

Retorna os nomes dos arquivos atualmente abertos do processo especificado.

Parâmetros
device ITestDevice : dispositivo a ser executado

pid int : o id do processo a ser pesquisado

Devoluções
Optional<List<String>> um Opcional dos arquivos abertos; vazio se o processo não foi encontrado ou os arquivos abertos não puderam ser lidos.

Lança
DeviceNotAvailableException

pidOf

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

Obtenha um único pid que corresponda a um padrão passado para `pgrep`. Lançar uma IllegalArgumentException quando houver mais de um PID correspondente ao padrão.

Parâmetros
device ITestDevice : o dispositivo a ser usado

pgrepRegex String : uma String representando o regex para pgrep

Devoluções
Optional<Integer> um número inteiro opcional do pid; vazio se o pgrep não retornou EXIT_SUCCESS

Lança
DeviceNotAvailableException
IllegalArgumentException

pidsOf

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

Obtenha os pids que correspondem a um padrão passado para `pgrep`. Como /proc/pid/comm está truncado, `pgrep` é passado com `-f` para verificar a linha de comando completa.

Parâmetros
device ITestDevice : o dispositivo a ser usado

pgrepRegex String : uma String representando o regex para pgrep

Devoluções
Optional<Map<Integer, String>> um mapa opcional de pid para linha de comando; vazio se o pgrep não retornou EXIT_SUCCESS

Lança
DeviceNotAvailableException

esperePidExited

public static void waitPidExited (ITestDevice device, 
                int pid)

Aguarde a saída de um processo. Isto não é esperar que mude, mas simplesmente ser inexistente. É 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 para esperar até sair

Lança
TimeoutException
DeviceNotAvailableException
ProcessUtil.KillException

esperePidExited

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

Aguarde a saída de um processo. Isto não é esperar que mude, mas simplesmente ser inexistente. É 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 para esperar até sair

timeoutMs long : quanto tempo esperar antes de lançar uma TimeoutException

Lança
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 um determinado regex.

Parâmetros
device ITestDevice : o dispositivo a ser usado

pgrepRegex String : uma String representando o regex para pgrep

timeoutMs long : quanto tempo esperar antes de lançar uma TimeoutException

Devoluções
Map<Integer, String> o pid para comandar o mapa de pidsOf(...)

Lança
TimeoutException
DeviceNotAvailableException

waitProcessRunning

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

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

Parâmetros
device ITestDevice : o dispositivo a ser usado

pgrepRegex String : uma String representando o regex para pgrep

Devoluções
Map<Integer, String> o pid para comandar o mapa de pidsOf(...)

Lança
TimeoutException
DeviceNotAvailableException

comProcessKill

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

Elimine um processo no início e no final de um teste.

Parâmetros
device ITestDevice : o dispositivo a ser usado

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

beforeCloseKill Runnable : um executável para qualquer ação que precise ser limpa antes de encerrar o processo em um ambiente normal no final do teste. Pode ser nulo.

timeoutMs long : quanto tempo em milissegundos esperar até que o processo seja encerrado

Devoluções
AutoCloseable Um objeto que encerrará o processo novamente quando ele for fechado

Lança
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

comProcessKill

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

Elimine um processo no início e no final de um teste.

Parâmetros
device ITestDevice : o dispositivo a ser usado

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

beforeCloseKill Runnable : um executável para qualquer ação que precise ser limpa antes de encerrar o processo em um ambiente normal no final do teste. Pode ser nulo.

Devoluções
AutoCloseable Um objeto que encerrará o processo novamente quando ele for fechado

Lança
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException