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

Создайте новый объект RunUtil для использования.

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

void allowInterrupt (boolean allow)

Разрешает/запрещает выполнение прерываний в текущем потоке.

static IRunUtil getDefault ()

Получите ссылку на объект RunUtil по умолчанию.

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)

Альтернативный метод runCmdInBackground(String) , который принимает аргументы команды в форме ERROR(/List) .

Process runCmdInBackground ( command) runCmdInBackground ( command)

Альтернативный метод runCmdInBackground(String) , который принимает аргументы команды в форме ERROR(/List) .

Process runCmdInBackground ( command, OutputStream output) runCmdInBackground ( command, OutputStream output)

Выполнение команды с ERROR(/OutputStream) регистрирует выходные данные команды.

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)

Сбрасывает переменную среды, поэтому системные команды выполняются без этой переменной среды. Переменные среды могут наследоваться от родительского процесса, поэтому нам нужно удалить переменную среды из ProcessBuilder.environment()

Поля

INHERITIO_PREFIX

public static final String INHERITIO_PREFIX

RUNNABLE_NOTIFIER_NAME

public static final String RUNNABLE_NOTIFIER_NAME

Публичные конструкторы

RunUtil

public RunUtil ()

Создайте новый объект RunUtil для использования.

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

разрешить прерывание

public void allowInterrupt (boolean allow)

Разрешает/запрещает выполнение прерываний в текущем потоке. Если это разрешено, операции выполнения текущего потока могут быть прерваны из других потоков с помощью метода interrupt(Thread, String) .

Параметры
allow boolean : разрешать ли прерывания выполнения в текущем потоке.

getDefault

public static IRunUtil getDefault ()

Получите ссылку на объект RunUtil по умолчанию.

Это полезно для вызывающих абонентов, которые хотят использовать IRunUtil без настройки. Рекомендуется, чтобы вызывающие стороны, которым нужен пользовательский экземпляр IRunUtil (т. е. необходимо вызвать либо 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 : имя переменной

Смотрите также: