ПроцессУтил

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)

Получите PID, соответствующие шаблону, переданному в `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

findFilesLoadedByProcess

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)

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

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

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

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

Броски
DeviceNotAvailableException

waitPidExited

public static void waitPidExited (ITestDevice device, 
                int pid)

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

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

pid int : идентификатор процесса, который будет ждать завершения

Броски
TimeoutException
DeviceNotAvailableException
ProcessUtil.KillException

waitPidExited

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 : исполняемый файл для любых действий, которые необходимо очистить перед завершением процесса в обычной среде в конце теста. Может быть нулевым.

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 : исполняемый файл для любых действий, которые необходимо очистить перед завершением процесса в обычной среде в конце теста. Может быть нулевым.

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

Броски
DeviceNotAvailableException
TimeoutException
ProcessUtil.KillException