RunUtil
public class RunUtil
extends Object
implements IRunUtil
java.lang.Объект | |
↳ | com.android.tradefed.util.RunUtil |
Коллекция вспомогательных методов для выполнения операций.
Краткое содержание
Поля | |
---|---|
public static final String | INHERITIO_PREFIX |
public static final String | RUNNABLE_NOTIFIER_NAME
|
Публичные конструкторы | |
---|---|
RunUtil () Создайте новый объект |
Публичные методы | |
---|---|
void | allowInterrupt (boolean allow) Разрешает/запрещает выполнение прерываний в текущем потоке. |
static IRunUtil | getDefault () Получите ссылку на объект |
void | interrupt (Thread thread, String message, ErrorIdentifier errorId) Прерывает текущие/предстоящие операции запуска в данном потоке. |
void | interrupt (Thread thread, String message) Прерывает текущие/предстоящие операции запуска в данном потоке. |
boolean | isInterruptAllowed () Дайте статус прерывания RunUtil. |
Process | runCmdInBackground (Redirect redirect, command) runCmdInBackground (Redirect redirect, command) Альтернативный метод |
Process | runCmdInBackground ( command) runCmdInBackground ( command) Альтернативный метод |
Process | runCmdInBackground ( command, OutputStream output) runCmdInBackground ( command, OutputStream output) Выполнение команды с |
Process | runCmdInBackground (String... command) Вспомогательный метод для асинхронного выполнения системной команды. |
Process | runCmdInBackground (Redirect redirect, String... command) Вспомогательный метод для асинхронного выполнения системной команды. |
boolean | runEscalatingTimedRetry (long opTimeout, long initialPollInterval, long maxPollInterval, long maxTime, IRunUtil.IRunnableResult runnable) Блокировать и выполнять операцию несколько раз, пока она не будет успешной. |
boolean | runFixedTimedRetry (long opTimeout, long pollInterval, long maxTime, IRunUtil.IRunnableResult runnable) Блокировать и выполнять операцию несколько раз, пока она не будет успешной. |
CommandStatus | runTimed (long timeout, IRunUtil.IRunnableResult runnable, boolean logErrors) Блокирует и выполняет операцию, прерывая ее, если она занимает больше заданного времени. |
CommandResult | runTimedCmd (long timeout, OutputStream stdout, OutputStream stderr, String... command) Вспомогательный метод для выполнения системной команды, прерывания, если это занимает больше указанного времени, и перенаправления вывода в файлы, если указано. |
CommandResult | runTimedCmd (long timeout, String... command) Вспомогательный метод для выполнения системной команды и прерывания, если это занимает больше заданного времени. |
CommandResult | runTimedCmdRetry (long timeout, long retryInterval, int attempts, String... command) Вспомогательный метод для выполнения системной команды и прерывания, если это занимает больше заданного времени. |
CommandResult | runTimedCmdSilently (long timeout, String... command) Вспомогательный метод для выполнения системной команды и прерывания, если это занимает больше заданного времени. |
CommandResult | runTimedCmdSilentlyRetry (long timeout, long retryInterval, int attempts, String... command) Вспомогательный метод для выполнения системной команды и прерывания, если это занимает больше заданного времени. |
CommandResult | runTimedCmdWithInput (long timeout, String input, File stdoutFile, File stderrFile, String... command) Вспомогательный метод для выполнения системной команды, прерывания, если это занимает больше указанного времени, и перенаправления вывода в файлы, если указано. |
CommandResult | runTimedCmdWithInput (long timeout, String input, String... command) Вспомогательный метод для выполнения системной команды, требующей ввода на стандартный ввод, и прерывания, если это занимает больше заданного времени. |
CommandResult | runTimedCmdWithInput (long timeout, String input, command) runTimedCmdWithInput (long timeout, String input, command) Вспомогательный метод для выполнения системной команды, требующей ввода на стандартный ввод, и прерывания, если это занимает больше заданного времени. |
CommandResult | runTimedCmdWithInputRedirect (long timeout, File inputRedirect, String... command) Вспомогательный метод для выполнения системной команды, требующей перенаправления стандартного ввода из файла и прерывания, если это занимает больше заданного времени. |
boolean | runTimedRetry (long opTimeout, long pollInterval, int attempts, IRunUtil.IRunnableResult runnable) Блокировать и выполнять операцию несколько раз, пока она не будет успешной. |
void | setEnvVariable (String name, String value) Задает переменную среды, которая будет использоваться при выполнении системных команд. |
void | setEnvVariablePriority ( IRunUtil.EnvPriority priority) Решите, имеет ли при создании процесса отмена установки переменных среды более высокий приоритет, чем их установка. |
void | setInterruptibleInFuture (Thread thread, long timeMs) Установить как прерываемый после некоторого времени ожидания. |
void | setLinuxInterruptProcess (boolean interrupt) Разрешить использовать прерывание linux kill для процесса, работающего с помощью методов #runTimed, когда он достигает тайм-аута. |
void | setRedirectStderrToStdout (boolean redirect) Установите стандартный поток ошибок для перенаправления на стандартный поток вывода при выполнении системных команд. |
void | setWorkingDir (File dir) Устанавливает рабочий каталог для системных команд. |
void | sleep (long time) Вспомогательный метод для сна в течение заданного времени, игнорируя любые исключения. |
void | unsetEnvVariable (String key) Сбрасывает переменную среды, поэтому системные команды выполняются без этой переменной среды. Переменные среды могут наследоваться от родительского процесса, поэтому нам нужно удалить переменную среды из |
Поля
INHERITIO_PREFIX
public static final String INHERITIO_PREFIX
RUNNABLE_NOTIFIER_NAME
public static final String RUNNABLE_NOTIFIER_NAME
Публичные конструкторы
Публичные методы
разрешить прерывание
public void allowInterrupt (boolean allow)
Разрешает/запрещает выполнение прерываний в текущем потоке. Если это разрешено, операции выполнения текущего потока могут быть прерваны из других потоков с помощью метода interrupt(Thread, String)
.
Параметры | |
---|---|
allow | boolean : разрешать ли прерывания выполнения в текущем потоке. |
getDefault
public static IRunUtil getDefault ()
Получите ссылку на объект RunUtil
по умолчанию.
setEnvVariable(String, String)
, либо setWorkingDir(File)
создали свою собственную копию.Возвращает | |
---|---|
IRunUtil |
прерывать
public void interrupt (Thread thread, String message, ErrorIdentifier errorId)
Прерывает текущие/предстоящие операции запуска в данном потоке. Операции запуска в данном потоке вызовут RunInterruptedException
.
Параметры | |
---|---|
message | String : сообщение для RunInterruptedException . |
errorId | ErrorIdentifier : представление причины прерывания, если она известна. |
прерывать
public void interrupt (Thread thread, String message)
Прерывает текущие/предстоящие операции запуска в данном потоке. Операции запуска в данном потоке вызовут RunInterruptedException
.
Параметры | |
---|---|
message | String : сообщение для RunInterruptedException . |
isInterruptAllowed
public boolean isInterruptAllowed ()
Дайте статус прерывания RunUtil.
Возвращает | |
---|---|
boolean | true, если бег можно прервать, иначе false. |
запуститьCmdInBackground
public Process runCmdInBackground (Redirect redirect,command)
Альтернативный метод runCmdInBackground(String)
, который принимает аргументы команды в форме ERROR(/List)
.
Параметры | |
---|---|
redirect | Redirect : ERROR(/Redirect) для применения к ProcessBuilder . |
command | ERROR(/List) , содержащая указанную системную команду и необязательные аргументы для выполнения |
Возвращает | |
---|---|
Process | Process выполняемой команды |
запуститьCmdInBackground
public Process runCmdInBackground (command)
Альтернативный метод runCmdInBackground(String)
, который принимает аргументы команды в форме ERROR(/List)
.
Параметры | |
---|---|
command | ERROR(/List) , содержащая указанную системную команду и необязательные аргументы для выполнения |
Возвращает | |
---|---|
Process | Process выполняемой команды |
запуститьCmdInBackground
public Process runCmdInBackground (command, OutputStream output)
Выполнение команды с ERROR(/OutputStream)
регистрирует выходные данные команды. Stdout и stderr объединены.
Параметры | |
---|---|
command | |
output | OutputStream : OutputStream для сохранения вывода |
Возвращает | |
---|---|
Process | Process , выполняющий команду |
запуститьCmdInBackground
public Process runCmdInBackground (String... command)
Вспомогательный метод для асинхронного выполнения системной команды.
Вернется сразу после запуска команды.
Параметры | |
---|---|
command | String : указанная системная команда и необязательные аргументы для выполнения |
Возвращает | |
---|---|
Process | Process выполняемой команды |
запуститьCmdInBackground
public Process runCmdInBackground (Redirect redirect, String... command)
Вспомогательный метод для асинхронного выполнения системной команды.
Вернется сразу после запуска команды.
Параметры | |
---|---|
redirect | Redirect : ERROR(/Redirect) для применения к ProcessBuilder . |
command | String : указанная системная команда и необязательные аргументы для выполнения |
Возвращает | |
---|---|
Process | Process выполняемой команды |
runEscalatingTimedRetry
public boolean runEscalatingTimedRetry (long opTimeout, long initialPollInterval, long maxPollInterval, long maxTime, IRunUtil.IRunnableResult runnable)
Блокировать и выполнять операцию несколько раз, пока она не будет успешной.
Экспоненциальное увеличение времени ожидания между попытками операции. Это предназначено для использования при выполнении такой операции, как опрос сервера, чтобы дать ему время для восстановления в случае его временного отключения.Параметры | |
---|---|
opTimeout | long : максимальное время ожидания в мс для одной попытки операции |
initialPollInterval | long : начальное время ожидания между попытками операции |
maxPollInterval | long : максимальное время ожидания между попытками операции |
maxTime | long : общее приблизительное максимальное время, в течение которого можно продолжать попытки выполнения операции. |
runnable | IRunUtil.IRunnableResult : IRunUtil.IRunnableResult для выполнения |
Возвращает | |
---|---|
boolean | true , если операция завершена успешно до истечения maxTime |
runFixedTimedRetry
public boolean runFixedTimedRetry (long opTimeout, long pollInterval, long maxTime, IRunUtil.IRunnableResult runnable)
Блокировать и выполнять операцию несколько раз, пока она не будет успешной.
Параметры | |
---|---|
opTimeout | long : максимальное время ожидания в мс для одной попытки операции |
pollInterval | long : начальное время ожидания между попытками операции |
maxTime | long : общее приблизительное максимальное время, в течение которого можно продолжать попытки выполнения операции. |
runnable | IRunUtil.IRunnableResult : IRunUtil.IRunnableResult для выполнения |
Возвращает | |
---|---|
boolean | true , если операция завершена успешно до истечения maxTime |
RunTimed
public CommandStatus runTimed (long timeout, IRunUtil.IRunnableResult runnable, boolean logErrors)
Блокирует и выполняет операцию, прерывая ее, если она занимает больше заданного времени.
Параметры | |
---|---|
timeout | long : максимальное время ожидания в мс |
runnable | IRunUtil.IRunnableResult : IRunUtil.IRunnableResult для выполнения |
logErrors | boolean : регистрировать ошибки при исключении или нет. |
Возвращает | |
---|---|
CommandStatus | Результат операции CommandStatus . |
runTimedCmd
public CommandResult runTimedCmd (long timeout, OutputStream stdout, OutputStream stderr, String... command)
Вспомогательный метод для выполнения системной команды, прерывания, если это занимает больше указанного времени, и перенаправления вывода в файлы, если указано. Когда ERROR(/OutputStream)
предоставляются таким образом, они останутся открытыми в конце функции.
Параметры | |
---|---|
timeout | long : timeout максимальное время ожидания в мс. 0 означает отсутствие тайм-аута. |
stdout | OutputStream : ERROR(/OutputStream) , куда будет перенаправлен стандартный вывод. Может быть нулевым. |
stderr | OutputStream : ERROR(/OutputStream) , куда будет перенаправлен вывод ошибок. Может быть нулевым. |
command | String : указанная системная команда и необязательные аргументы для выполнения |
Возвращает | |
---|---|
CommandResult | CommandResult , содержащий результат выполнения команды |
runTimedCmd
public CommandResult runTimedCmd (long timeout, String... command)
Вспомогательный метод для выполнения системной команды и прерывания, если это занимает больше заданного времени.
Параметры | |
---|---|
timeout | long : максимальное время ожидания в мс. 0 означает отсутствие тайм-аута. |
command | String : указанная системная команда и необязательные аргументы для выполнения |
Возвращает | |
---|---|
CommandResult | CommandResult , содержащий результат выполнения команды |
runTimedCmdRetry
public CommandResult runTimedCmdRetry (long timeout, long retryInterval, int attempts, String... command)
Вспомогательный метод для выполнения системной команды и прерывания, если это занимает больше заданного времени.
Параметры | |
---|---|
timeout | long : максимальное время ожидания в мс для каждой попытки |
retryInterval | long : время ожидания между повторными попытками команды |
attempts | int : максимальное количество попыток попробовать |
command | String : указанная системная команда и необязательные аргументы для выполнения |
Возвращает | |
---|---|
CommandResult | CommandResult , содержащий результат выполнения команды |
runTimedCmdSilently
public CommandResult runTimedCmdSilently (long timeout, String... command)
Вспомогательный метод для выполнения системной команды и прерывания, если это занимает больше заданного времени. Аналогичен runTimedCmd(long, String)
, но не регистрирует никаких ошибок при исключении.
Параметры | |
---|---|
timeout | long : максимальное время ожидания в мс |
command | String : указанная системная команда и необязательные аргументы для выполнения |
Возвращает | |
---|---|
CommandResult | CommandResult , содержащий результат выполнения команды |
runTimedCmdSilentlyRetry
public CommandResult runTimedCmdSilentlyRetry (long timeout, long retryInterval, int attempts, String... command)
Вспомогательный метод для выполнения системной команды и прерывания, если это занимает больше заданного времени. Аналогичен runTimedCmdRetry(long, long, int, String[])
, но не регистрирует никаких ошибок при исключении.
Параметры | |
---|---|
timeout | long : максимальное время ожидания в мс |
retryInterval | long : время ожидания между повторными попытками команды |
attempts | int : максимальное количество попыток попробовать |
command | String : указанная системная команда и необязательные аргументы для выполнения |
Возвращает | |
---|---|
CommandResult | CommandResult , содержащий результат выполнения команды |
runTimedCmdWithInput
public CommandResult runTimedCmdWithInput (long timeout, String input, File stdoutFile, File stderrFile, String... command)
Вспомогательный метод для выполнения системной команды, прерывания, если это занимает больше указанного времени, и перенаправления вывода в файлы, если указано.
Параметры | |
---|---|
timeout | long : timeout максимальное время ожидания в мс. 0 означает отсутствие тайм-аута. |
input | String : ввод стандартного ввода для передачи в процесс |
stdoutFile | File : ERROR(/File) , куда будет перенаправлен стандартный вывод. Может быть нулевым. |
stderrFile | File : ERROR(/File) , куда будет перенаправлен вывод ошибок. Может быть нулевым. |
command | String : указанная системная команда и необязательные аргументы для выполнения |
Возвращает | |
---|---|
CommandResult | CommandResult , содержащий результат выполнения команды |
runTimedCmdWithInput
public CommandResult runTimedCmdWithInput (long timeout, String input, String... command)
Вспомогательный метод для выполнения системной команды, требующей ввода на стандартный ввод, и прерывания, если это занимает больше заданного времени.
Параметры | |
---|---|
timeout | long : максимальное время ожидания в мс |
input | String : ввод стандартного ввода для передачи в процесс |
command | String : указанная системная команда и необязательные аргументы для выполнения |
Возвращает | |
---|---|
CommandResult | CommandResult , содержащий результат выполнения команды |
runTimedCmdWithInput
public CommandResult runTimedCmdWithInput (long timeout, String input,command)
Вспомогательный метод для выполнения системной команды, требующей ввода на стандартный ввод, и прерывания, если это занимает больше заданного времени.
Параметры | |
---|---|
timeout | long : максимальное время ожидания в мс |
input | String : ввод стандартного ввода для передачи в процесс |
command | ERROR(/List) , содержащий системную команду и необязательные аргументы для выполнения |
Возвращает | |
---|---|
CommandResult | CommandResult , содержащий результат выполнения команды |
runTimedCmdWithInputRedirect
public CommandResult runTimedCmdWithInputRedirect (long timeout, File inputRedirect, String... command)
Вспомогательный метод для выполнения системной команды, требующей перенаправления стандартного ввода из файла и прерывания, если это занимает больше заданного времени.
Параметры | |
---|---|
timeout | long : максимальное время ожидания в мс |
inputRedirect | File : ERROR(/File) для перенаправления в качестве стандартного ввода с помощью ProcessBuilder.redirectInput() . Если null, стандартный ввод не будет перенаправлен. |
command | String : указанная системная команда и необязательные аргументы для выполнения |
Возвращает | |
---|---|
CommandResult | CommandResult , содержащий результат выполнения команды |
runTimedRetry
public boolean runTimedRetry (long opTimeout, long pollInterval, int attempts, IRunUtil.IRunnableResult runnable)
Блокировать и выполнять операцию несколько раз, пока она не будет успешной.
Параметры | |
---|---|
opTimeout | long : максимальное время ожидания в мс для одной попытки операции |
pollInterval | long : время ожидания между повторными попытками команды |
attempts | int : максимальное количество попыток попробовать |
runnable | IRunUtil.IRunnableResult : IRunUtil.IRunnableResult для выполнения |
Возвращает | |
---|---|
boolean | true , если операция завершилась успешно до достижения количества попыток. |
setEnvVariable
public void setEnvVariable (String name, String value)
Задает переменную среды, которая будет использоваться при выполнении системных команд.
Параметры | |
---|---|
name | String : имя переменной |
value | String : значение переменной |
setEnvVariablePriority
public void setEnvVariablePriority (IRunUtil.EnvPriority priority)
Решите, имеет ли при создании процесса отмена установки переменных среды более высокий приоритет, чем их установка. По умолчанию сброс имеет более высокий приоритет: это означает, что если будет предпринята попытка установить переменную с таким же именем, это не произойдет, поскольку переменная будет удалена. Нельзя использовать в экземпляре IRunUtil
по умолчанию.
Параметры | |
---|---|
priority | IRunUtil.EnvPriority |
setInterruptibleInFuture
public void setInterruptibleInFuture (Thread thread, long timeMs)
Установить как прерываемый после некоторого времени ожидания. ERROR(/CommandScheduler#shutdownHard())
для принудительного прекращения работы.
Параметры | |
---|---|
thread | Thread : поток, который станет прерываемым. |
timeMs | long : время ожидания перед установкой прерывания. |
setLinuxInterruptProcess
public void setLinuxInterruptProcess (boolean interrupt)
Разрешить использовать прерывание linux kill для процесса, работающего с помощью методов #runTimed, когда он достигает тайм-аута. Нельзя использовать в экземпляре IRunUtil
по умолчанию.
Параметры | |
---|---|
interrupt | boolean |
setRedirectStderrToStdout
public void setRedirectStderrToStdout (boolean redirect)
Установите стандартный поток ошибок для перенаправления на стандартный поток вывода при выполнении системных команд. Начальное значение неверно.
Параметры | |
---|---|
redirect | boolean : новое значение для перенаправления или нет |
setWorkingDir
public void setWorkingDir (File dir)
Устанавливает рабочий каталог для системных команд.
Параметры | |
---|---|
dir | File : рабочий каталог |
спать
public void sleep (long time)
Вспомогательный метод для сна в течение заданного времени, игнорируя любые исключения.
Параметры | |
---|---|
time | long : мс спать. значения меньше или равные 0 будут игнорироваться |
unsetEnvVariable
public void unsetEnvVariable (String key)
Сбрасывает переменную среды, поэтому системные команды выполняются без этой переменной среды. Переменные среды могут наследоваться от родительского процесса, поэтому нам нужно удалить переменную среды из ProcessBuilder.environment()
Параметры | |
---|---|
key | String : имя переменной |
Смотрите также: