ProcessUtil

public final class ProcessUtil
extends Object

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


Vários ajudantes para encontrar, esperar e eliminar 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 de arquivo do primeiro arquivo carregado pelo processo especificado com o nome especificado

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

Retorna nomes de arquivo 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 correspondentes a um padrão.

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

Envie SIGKILL para todos os processos correspondentes 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 correspondente a um padrão passado para `pgrep`.

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

Obtenha os pids correspondentes a um padrão passado para `pgrep`.

static void waitPidExited (ITestDevice device, int pid)

Aguarde até que um processo seja encerrado.

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

Aguarde até que um processo seja encerrado.

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)

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

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

Mate 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 (0x00000000000000fa)

PROCESS_WAIT_TIMEOUT_MS

public static final long PROCESS_WAIT_TIMEOUT_MS

Valor constante: 10000 (0x0000000000002710)

Métodos públicos

encontrarFileLoadedByProcess

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

Retorna a entrada de arquivo 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> um Opcional de IFileEntry do caminho do arquivo no dispositivo se existir.

lances
DeviceNotAvailableException

findFilesLoadedByProcess

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

Retorna nomes de arquivo 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 de arquivo 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.

lances
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 pôde ser encontrado

lances
DeviceNotAvailableException

Mate todos

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

Envie SIGKILL para todos os processos correspondentes 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 um TimeoutException

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

devoluções
boolean se algum processo foi morto

lances
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

Mate todos

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

Envie SIGKILL para todos os processos correspondentes 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 um TimeoutException

devoluções
boolean se algum processo foi morto

lances
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

killPid

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 um TimeoutException

lances
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

killPid

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 um TimeoutException

lances
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

listaArquivosAbertos

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.

lances
DeviceNotAvailableException

pidOf

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

Obtenha um único pid correspondente a um padrão passado para `pgrep`. Lance um 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 inteiro opcional do pid; vazio se pgrep não retornou EXIT_SUCCESS

lances
DeviceNotAvailableException
IllegalArgumentException

pidsOf

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

Obtenha os pids correspondentes 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 pgrep não retornou EXIT_SUCCESS

lances
DeviceNotAvailableException

waitPidExited

public static void waitPidExited (ITestDevice device, 
                int pid)

Aguarde até que um processo seja encerrado. Isso não é esperar que mude, mas simplesmente ser inexistente. É possível, mas improvável, que um pid seja reutilizado entre enquetes

Parâmetros
device ITestDevice : o dispositivo a ser usado

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

lances
TimeoutException
DeviceNotAvailableException
ProcessUtil.KillException

waitPidExited

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

Aguarde até que um processo seja encerrado. Isso não é esperar que mude, mas simplesmente ser inexistente. É possível, mas improvável, que um pid seja reutilizado entre enquetes

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 um TimeoutException

lances
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 um TimeoutException

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

lances
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(...)

lances
TimeoutException
DeviceNotAvailableException

withProcessKill

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

Mate 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 para matar para dar ao pgrep

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

timeoutMs long : quanto tempo em milissegundos esperar para o processo terminar

devoluções
AutoCloseable Um objeto que matará o processo novamente quando for fechado

lances
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

withProcessKill

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

Mate 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 para matar para dar ao pgrep

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

devoluções
AutoCloseable Um objeto que matará o processo novamente quando for fechado

lances
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException