Различные помощники для поиска, ожидания и завершения процессов на устройстве.
Вложенные классы |
---|
class | ProcessUtil.KillException |
Публичные методы |
---|
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 | |
получить имя процесса
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 | были ли убиты какие-либо процессы |
убитьВсе
public static boolean killAll (ITestDevice device,
String pgrepRegex,
long timeoutMs)
Отправьте SIGKILL всем процессам, соответствующим шаблону.
Параметры |
---|
device | ITestDevice : устройство для использования |
pgrepRegex | String : строка, представляющая регулярное выражение для pgrep. |
timeoutMs | long : как долго ждать, прежде чем выдать исключение TimeoutException |
Возврат |
---|
boolean | были ли убиты какие-либо процессы |
killPid
public static void killPid (ITestDevice device,
int pid,
long timeoutMs)
Отправьте SIGKILL процессу и дождитесь его выхода.
Параметры |
---|
device | ITestDevice : устройство для использования |
pid | int : идентификатор процесса, который будет ждать завершения |
timeoutMs | long : как долго ждать, прежде чем выдать исключение TimeoutException |
killPid
public static void killPid (ITestDevice device,
int pid,
int signal,
long timeoutMs)
Отправьте сигнал процессу и дождитесь его выхода.
Параметры |
---|
device | ITestDevice : устройство для использования |
pid | int : идентификатор процесса, который будет ждать завершения |
signal | int : сигнал для отправки процессу |
timeoutMs | long : как долго ждать, прежде чем выдать исключение TimeoutException |
список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 : идентификатор процесса, который будет ждать завершения |
waitPidExited
public static void waitPidExited (ITestDevice device,
int pid,
long timeoutMs)
Подождите завершения процесса. Это не ожидание, пока оно изменится, а просто отсутствие. Возможно, но маловероятно, что pid будет повторно использоваться между опросами.
Параметры |
---|
device | ITestDevice : устройство для использования |
pid | int : идентификатор процесса, который будет ждать завершения |
timeoutMs | long : как долго ждать, прежде чем выдать исключение TimeoutException |
ждатьПроцессВыполняется
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 | Объект, который снова убьет процесс при его закрытии. |
сProcessKill
public static AutoCloseable withProcessKill (ITestDevice device,
String pgrepRegex,
Runnable beforeCloseKill)
Уничтожьте процесс в начале и конце теста.
Параметры |
---|
device | ITestDevice : устройство для использования |
pgrepRegex | String : шаблон имени процесса, который нужно убить, чтобы передать его pgrep. |
beforeCloseKill | Runnable : исполняемый файл для любых действий, которые необходимо очистить перед завершением процесса в обычной среде в конце теста. Может быть нулевым. |
Возврат |
---|
AutoCloseable | Объект, который снова убьет процесс при его закрытии. |
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2024-08-29 UTC.
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"Отсутствует нужная мне информация"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"Слишком сложен/слишком много шагов"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"Устарел"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"Проблема с переводом текста"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"Проблемы образцов/кода"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"Другое"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"Прост для понимания"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"Помог мне решить мою проблему"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"Другое"
}]
{"lastModified": "\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435: 2024-08-29 UTC."}
[[["Прост для понимания","easyToUnderstand","thumb-up"],["Помог мне решить мою проблему","solvedMyProblem","thumb-up"],["Другое","otherUp","thumb-up"]],[["Отсутствует нужная мне информация","missingTheInformationINeed","thumb-down"],["Слишком сложен/слишком много шагов","tooComplicatedTooManySteps","thumb-down"],["Устарел","outOfDate","thumb-down"],["Проблема с переводом текста","translationIssue","thumb-down"],["Проблемы образцов/кода","samplesCodeIssue","thumb-down"],["Другое","otherDown","thumb-down"]],["Последнее обновление: 2024-08-29 UTC."]]