ProcessUtil

public final class ProcessUtil
extends Object

java.lang.Объект
com.android.sts.common.ProcessUtil


Различные помощники для поиска, ожидания и уничтожения процессов на устройстве

Резюме

Вложенные классы

class ProcessUtil.KillException

Константы

long PROCESS_POLL_PERIOD_MS

long PROCESS_WAIT_TIMEOUT_MS

Публичные методы

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

Возвращает запись файла первого файла, загруженного указанным процессом с указанным именем

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

Возвращает имена файлов указанного файла, загруженного указанным процессом.

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

Получите содержимое из /proc/pid/cmdline.

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

Отправьте SIGKILL всем процессам, соответствующим шаблону.

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

Отправьте SIGKILL всем процессам, соответствующим шаблону.

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

Отправьте SIGKILL процессу и дождитесь выхода из него.

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

Отправьте сигнал процессу и дождитесь выхода из него.

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

Возвращает имена открытых в данный момент файлов указанного процесса.

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

Получить один pid, соответствующий шаблону, переданному в `pgrep`.

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

Получить pids, соответствующие шаблону, переданному в `pgrep`.

static void waitPidExited (ITestDevice device, int pid)

Дождитесь завершения процесса.

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

Дождитесь завершения процесса.

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

Подождите, пока не будет найден запущенный процесс для данного регулярного выражения.

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

Подождите, пока не будет найден запущенный процесс для данного регулярного выражения.

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

Убить процесс в начале и в конце теста.

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

Убить процесс в начале и в конце теста.

Константы

PROCESS_POLL_PERIOD_MS

public static final long PROCESS_POLL_PERIOD_MS

Постоянное значение: 250 (0x00000000000000fa)

PROCESS_WAIT_TIMEOUT_MS

public static final long PROCESS_WAIT_TIMEOUT_MS

Постоянное значение: 10000 (0x0000000000002710)

Публичные методы

найтиФайлЛоадедБиПроцесс

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

Возвращает запись файла первого файла, загруженного указанным процессом с указанным именем

Параметры
device ITestDevice : устройство для запуска

process String : шаблон процесса pgrep для поиска

filenameSubstr String : часть имени/пути файла, загруженного процессом

Возвращает
Optional<IFileEntry> Необязательный параметр IFileEntry пути к файлу на устройстве, если он существует.

Броски
DeviceNotAvailableException

найтиFilesLoadedByProcess

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

Возвращает имена файлов указанного файла, загруженного указанным процессом.

Параметры
device ITestDevice : устройство для запуска

pid int : идентификатор процесса для поиска

filePattern Pattern : шаблон имен файлов для возврата

Возвращает
Optional<List<String>> Необязательный из отфильтрованных файлов; пусто, если процесс не найден или открытые файлы не могут быть прочитаны.

Броски
DeviceNotAvailableException

getProcessName

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

Получите содержимое из /proc/pid/cmdline.

Параметры
device ITestDevice : используемое устройство

pid int : идентификатор процесса, для которого нужно получить имя

Возвращает
Optional<String> необязательная строка содержимого /proc/pid/cmdline; пусто, если pid не найден

Броски
DeviceNotAvailableException

убить всех

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

Отправьте SIGKILL всем процессам, соответствующим шаблону.

Параметры
device ITestDevice : используемое устройство

pgrepRegex String : строка, представляющая регулярное выражение для pgrep.

timeoutMs long : сколько ждать, прежде чем бросить исключение TimeoutException

expectExist boolean : следует ли генерировать исключение, если ни один процесс не был убит

Возвращает
boolean были ли убиты какие-либо процессы

Броски
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

убить всех

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

Отправьте SIGKILL всем процессам, соответствующим шаблону.

Параметры
device ITestDevice : используемое устройство

pgrepRegex String : строка, представляющая регулярное выражение для pgrep.

timeoutMs long : сколько ждать, прежде чем бросить исключение TimeoutException

Возвращает
boolean были ли убиты какие-либо процессы

Броски
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

killPid

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

Отправьте SIGKILL процессу и дождитесь выхода из него.

Параметры
device ITestDevice : используемое устройство

pid int : идентификатор процесса для ожидания выхода

timeoutMs long : сколько ждать, прежде чем бросить исключение TimeoutException

Броски
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

killPid

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

Отправьте сигнал процессу и дождитесь выхода из него.

Параметры
device ITestDevice : используемое устройство

pid int : идентификатор процесса для ожидания выхода

signal int : сигнал для отправки процессу

timeoutMs long : сколько ждать, прежде чем бросить исключение TimeoutException

Броски
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

списокOpenFiles

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

Возвращает имена открытых в данный момент файлов указанного процесса.

Параметры
device ITestDevice : устройство для запуска

pid int : идентификатор процесса для поиска

Возвращает
Optional<List<String>> Необязательный из открытых файлов; пусто, если процесс не найден или открытые файлы не могут быть прочитаны.

Броски
DeviceNotAvailableException

pidOf

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

Получить один pid, соответствующий шаблону, переданному в `pgrep`. Создайте исключение IllegalArgumentException , если шаблону соответствует более одного PID.

Параметры
device ITestDevice : используемое устройство

pgrepRegex String : строка, представляющая регулярное выражение для pgrep.

Возвращает
Optional<Integer> необязательное целое число pid; пусто, если pgrep не вернул EXIT_SUCCESS

Броски
DeviceNotAvailableException
IllegalArgumentException

pidsOf

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

Получить pids, соответствующие шаблону, переданному в `pgrep`. Поскольку /proc/pid/comm усекается, `pgrep` передается с `-f` для проверки полной командной строки.

Параметры
device ITestDevice : используемое устройство

pgrepRegex String : строка, представляющая регулярное выражение для pgrep.

Возвращает
Optional<Map<Integer, String>> Необязательная карта pid в командную строку; пусто, если pgrep не вернул EXIT_SUCCESS

Броски
DeviceNotAvailableException

ожиданиеPidExited

public static void waitPidExited (ITestDevice device, 
                int pid)

Дождитесь завершения процесса. Это не ожидание того, что оно изменится, а просто перестанет существовать. Возможно, но маловероятно, повторное использование pid между опросами.

Параметры
device ITestDevice : используемое устройство

pid int : идентификатор процесса для ожидания выхода

Броски
TimeoutException
DeviceNotAvailableException
ProcessUtil.KillException

ожиданиеPidExited

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

Дождитесь завершения процесса. Это не ожидание того, что оно изменится, а просто перестанет существовать. Возможно, но маловероятно, повторное использование pid между опросами.

Параметры
device ITestDevice : используемое устройство

pid int : идентификатор процесса для ожидания выхода

timeoutMs long : сколько ждать, прежде чем бросить исключение TimeoutException

Броски
TimeoutException
DeviceNotAvailableException
ProcessUtil.KillException

ожиданиепроцесса

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

Подождите, пока не будет найден запущенный процесс для данного регулярного выражения.

Параметры
device ITestDevice : используемое устройство

pgrepRegex String : строка, представляющая регулярное выражение для pgrep.

timeoutMs long : сколько ждать, прежде чем бросить исключение TimeoutException

Возвращает
Map<Integer, String> pid для карты команд из pidsOf(...)

Броски
TimeoutException
DeviceNotAvailableException

ожиданиепроцесса

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

Подождите, пока не будет найден запущенный процесс для данного регулярного выражения.

Параметры
device ITestDevice : используемое устройство

pgrepRegex String : строка, представляющая регулярное выражение для pgrep.

Возвращает
Map<Integer, String> pid для карты команд из pidsOf(...)

Броски
TimeoutException
DeviceNotAvailableException

сProcessKill

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

Убить процесс в начале и в конце теста.

Параметры
device ITestDevice : используемое устройство

pgrepRegex String : шаблон имени процесса, который нужно убить, чтобы передать pgrep.

beforeCloseKill Runnable : runnable для любых действий, которые необходимо очистить перед уничтожением процесса в обычной среде в конце теста. Может быть нулевым.

timeoutMs long : сколько в миллисекундах ждать завершения процесса

Возвращает
AutoCloseable Объект, который снова убьет процесс, когда он будет закрыт

Броски
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException

сProcessKill

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

Убить процесс в начале и в конце теста.

Параметры
device ITestDevice : используемое устройство

pgrepRegex String : шаблон имени процесса, который нужно убить, чтобы передать pgrep.

beforeCloseKill Runnable : runnable для любых действий, которые необходимо очистить перед уничтожением процесса в обычной среде в конце теста. Может быть нулевым.

Возвращает
AutoCloseable Объект, который снова убьет процесс, когда он будет закрыт

Броски
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException