Google 致力于为黑人社区推动种族平等。查看具体举措
此页面由 Cloud Translation API 翻译。
Switch to English

运行工具

public class RunUtil
extends Object implements IRunUtil

java.lang.Object
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)

中断给定线程上正在进行的/即将执行的运行操作。

boolean isInterruptAllowed ()

给出RunUtil的中断状态。

Process runCmdInBackground (String... command)

异步执行系统命令的Helper方法。

Process runCmdInBackground ( command) runCmdInBackground ( command)

替代的runCmdInBackground(String)方法,以ERROR(/List)形式接受命令参数。

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

运行带有ERROR(/OutputStream)的命令将记录命令的输出。

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, String... command)

用于执行系统命令的Helper方法,如果所需时间超过指定时间,则中止该方法。

CommandResult runTimedCmd (long timeout, OutputStream stdout, OutputStream stderr, String... command)

用于执行系统命令的Helper方法,如果它花费的时间超过指定的时间,则终止该方法,如果指定,则将输出重定向到文件。

CommandResult runTimedCmdRetry (long timeout, long retryInterval, int attempts, String... command)

用于执行系统命令的Helper方法,如果所需时间超过指定时间,则中止该方法。

CommandResult runTimedCmdSilently (long timeout, String... command)

用于执行系统命令的Helper方法,如果所需时间超过指定时间,则中止该方法。

CommandResult runTimedCmdSilentlyRetry (long timeout, long retryInterval, int attempts, String... command)

用于执行系统命令的Helper方法,如果所需时间超过指定时间,则中止该方法。

CommandResult runTimedCmdWithInput (long timeout, String input, command) runTimedCmdWithInput (long timeout, String input, command)

帮助程序方法,用于执行需要标准输入的系统命令,如果所需时间超过指定时间,则中止该方法。

CommandResult runTimedCmdWithInput (long timeout, String input, String... command)

帮助程序方法,用于执行需要标准输入的系统命令,如果所需时间超过指定时间,则中止该方法。

CommandResult runTimedCmdWithInputRedirect (long timeout, File inputRedirect, String... command)

用于执行系统命令的Helper方法,该命令需要从文件中重定向Stdin,如果所需时间超过指定的时间,则中止操作。

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

公共建设者

运行工具

public RunUtil ()

创建一个新的RunUtil对象以使用。

公开方法

allowInterrupt

public void allowInterrupt (boolean allow)

允许/禁止在当前线程上运行中断。如果允许,则可以通过interrupt(Thread, String)方法从其他线程中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)

中断给定线程上正在进行的/即将执行的运行操作。给定线程上的运行操作将抛出RunInterruptedException

参量
message StringRunInterruptedException的消息。

isInterruptAllowed

public boolean isInterruptAllowed ()

给出RunUtil的中断状态。

退货
boolean 如果可以中断运行,则为true,否则为false。

runCmdInBackground

public Process runCmdInBackground (String... command)

异步执行系统命令的Helper方法。

启动命令后将立即返回。

参量
command String :指定的系统命令以及exec的可选参数

退货
Process 执行命令的Process

runCmdInBackground

public Process runCmdInBackground ( command)

替代的runCmdInBackground(String)方法,以ERROR(/List)形式接受命令参数。

参量
command ERROR(/List)包含指定的系统命令以及exec的可选参数

退货
Process 执行命令的Process

runCmdInBackground

public Process runCmdInBackground ( command, 
                OutputStream output)

运行带有ERROR(/OutputStream)的命令将记录命令的输出。 Stdout和stderr合并在一起。

参量
command :要运行的命令

output OutputStream :保存输出的OutputStream

退货
Process 运行命令的Process

runEscalatingTimedRetry

public boolean runEscalatingTimedRetry (long opTimeout, 
                long initialPollInterval, 
                long maxPollInterval, 
                long maxTime, 
                IRunUtil.IRunnableResult runnable)

多次阻止并执行一个操作,直到成功为止。

以指数方式增加操作尝试之间的等待时间。它旨在在执行诸如轮询服务器之类的操作时使用,以便在服务器暂时关闭时给其时间恢复。

参量
opTimeout long :单次操作尝试等待的最长时间(以毫秒为单位)

initialPollInterval long :两次操作尝试之间等待的初始时间

maxPollInterval long :两次操作尝试之间等待的最long

maxTime long :继续尝试操作所需的总大概总时间

runnable IRunUtil.IRunnableResult :要执行的IRunUtil.IRunnableResult

退货
boolean 如果操作在maxTime到期之前成功完成,则为true

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 如果操作在maxTime到期之前成功完成,则为true

运行时间

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, 
                String... command)

用于执行系统命令的Helper方法,如果所需时间超过指定时间,则中止该方法。

参量
timeout long :最长等待时间,以毫秒为单位。 0表示没有超时。

command String :指定的系统命令以及exec的可选参数

退货
CommandResult 包含命令运行结果的CommandResult

runTimedCmd

public CommandResult runTimedCmd (long timeout, 
                OutputStream stdout, 
                OutputStream stderr, 
                String... command)

用于执行系统命令的Helper方法,如果花费的时间超过指定的时间,则终止该方法,如果指定,则将输出重定向到文件。当以这种方式提供ERROR(/OutputStream) ,它们将在函数末尾保持打开状态。

参量
timeout long :超时等待的最长时间(以毫秒为单位)。 0表示没有超时。

stdout OutputStreamERROR(/OutputStream)将在其中重定向标准输出。可以为null。

stderr OutputStreamERROR(/OutputStream)将错误输出重定向到此位置。可以为null。

command String :指定的系统命令以及exec的可选参数

退货
CommandResult 包含命令运行结果的CommandResult

runTimedCmdRetry

public CommandResult runTimedCmdRetry (long timeout, 
                long retryInterval, 
                int attempts, 
                String... command)

用于执行系统命令的Helper方法,如果所需时间超过指定时间,则中止该方法。

参量
timeout long :每次尝试等待的最长时间(以毫秒为单位)

retryInterval long :命令重试之间等待的时间

attempts int :最大尝试次数

command String :指定的系统命令以及exec的可选参数

退货
CommandResult 包含命令运行结果的CommandResult

runTimedCmdSilently

public CommandResult runTimedCmdSilently (long timeout, 
                String... command)

用于执行系统命令的Helper方法,如果所需时间超过指定时间,则中止该方法。与runTimedCmd(long, String)相似,但不会记录任何异常错误。

参量
timeout long :最长等待时间(毫秒)

command String :指定的系统命令以及exec的可选参数

退货
CommandResult 包含命令运行结果的CommandResult

runTimedCmdSilentlyRetry

public CommandResult runTimedCmdSilentlyRetry (long timeout, 
                long retryInterval, 
                int attempts, 
                String... command)

用于执行系统命令的Helper方法,如果所需时间超过指定时间,则中止该方法。与runTimedCmdRetry(long, long, int, String[]) ,但是不会记录任何异常错误。

参量
timeout long :最长等待时间(毫秒)

retryInterval long :命令重试之间等待的时间

attempts int :最大尝试次数

command String :指定的系统命令以及exec的可选参数

退货
CommandResult 包含命令运行结果的CommandResult

runTimedCmdWithInput

public CommandResult runTimedCmdWithInput (long timeout, 
                String input, 
                 command)

帮助程序方法,用于执行需要标准输入的系统命令,如果所需时间超过指定时间,则中止该方法。

参量
timeout long :最长等待时间(毫秒)

input String :传递给处理的标准输入

command ERROR(/List)包含系统命令和exec的可选参数

退货
CommandResult 包含命令运行结果的CommandResult

runTimedCmdWithInput

public CommandResult runTimedCmdWithInput (long timeout, 
                String input, 
                String... command)

帮助程序方法,用于执行需要标准输入的系统命令,如果所需时间超过指定时间,则中止该方法。

参量
timeout long :最长等待时间(毫秒)

input String :传递给处理的标准输入

command String :指定的系统命令以及exec的可选参数

退货
CommandResult 包含命令运行结果的CommandResult

runTimedCmdWithInputRedirect

public CommandResult runTimedCmdWithInputRedirect (long timeout, 
                File inputRedirect, 
                String... command)

用于执行系统命令的Helper方法,该命令需要从文件中重定向Stdin,如果所需时间超过指定的时间,则中止操作。

参量
timeout long :最长等待时间(毫秒)

inputRedirect File :使用ProcessBuilder.redirectInput()重定向为标准输入的ERROR(/File) ProcessBuilder.redirectInput() 。如果为null,则不会重定向stdin。

command String :指定的系统命令以及exec的可选参数

退货
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)

等待一段时间后设置为可中断。 CommandScheduler#shutdownHard()强制我们最终终止。

参量
thread Thread :将变为可中断的线程。

timeMs long :设置可中断之前需要等待的时间。

setRedirectStderrToStdout

public void setRedirectStderrToStdout (boolean redirect)

设置标准错误流,以在运行系统命令时重定向到标准输出流。初始值为false。

参量
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 :变量名

也可以看看: