I命令調度器

public interface ICommandScheduler

com.android.tradefed.command.ICommandScheduler


用於執行 TradeFederation 指令的調度程式。

概括

嵌套類

interface ICommandScheduler.IScheduledInvocationListener

呼叫完成時呼叫事件的偵聽器。

公共方法

abstract Pair <Boolean, Integer> addCommand (String[] args)

在調度程序中新增命令。

abstract void addCommandFile (String cmdFile, extraArgs) addCommandFile (String cmdFile, extraArgs)

將給定檔案中的所有命令新增至調度程序

abstract void await ()

等待調度程序開始運行,包括等待舊 TF 的切換完成(如果適用)。

abstract void displayCommandQueue (PrintWriter printWriter)

輸出有關命令執行佇列狀態的詳細偵錯資訊。

abstract void displayCommandsInfo (PrintWriter printWriter, String regex)

輸出當前命令的列表。

abstract void displayInvocationsInfo (PrintWriter printWriter)

顯示目前呼叫的清單。

abstract void dumpCommandsXml (PrintWriter printWriter, String regex)

轉儲該命令的擴展 xml 文件,其中包含為所有當前命令指定的所有Option值。

abstract long execCommand ( IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)

直接分配裝置並執行命令,而不使用現有的IInvocationContext將其新增至命令佇列。

abstract long execCommand ( ICommandScheduler.IScheduledInvocationListener listener, String[] args)

直接分配設備並執行命令,而不將其添加到命令隊列。

abstract long execCommand ( ICommandScheduler.IScheduledInvocationListener listener, devices, String[] args) execCommand ( ICommandScheduler.IScheduledInvocationListener listener, devices, String[] args)

直接在已指派的設備上執行命令。

abstract CommandFileWatcher getCommandFileWatcher ()

為該調度程序取得適當的 CommandFileWatcher

abstract int getExecutingCommandCount ()

傳回處於執行狀態的命令數。

abstract String getInvocationInfo (int invocationId)

傳回有關指定呼叫 ID 的呼叫的資訊。

abstract CommandRunner.ExitCode getLastInvocationExitCode ()

傳回上次運行的呼叫的錯誤代碼。

abstract Throwable getLastInvocationThrowable ()

返回上次運行的呼叫中的Throwable

abstract int getReadyCommandCount ()

傳回佇列中處於就緒狀態的命令數。

abstract boolean isDeviceInInvocationThread ( ITestDevice device)

如果設備由活動呼叫線程使用,則傳回 true。

abstract void join ()

等待調度程序完成。

abstract void join (long millis)

等待調度程序完成或在指定的持續時間(以毫秒為單位)後逾時。

abstract void removeAllCommands ()

從排程器中刪除所有命令

abstract void setClearcutClient (ClearcutClient client)

設定客戶端報告線束數據

abstract boolean shouldShutdownOnCmdfileError ()

如果我們需要在命令錯誤時關閉調度程序,則傳回 true

default void shutdown ()

嘗試正常關閉命令調度程序。

abstract void shutdown (boolean notifyStop)

嘗試正常關閉命令調度程序。

abstract void shutdownHard (boolean killAdb)

嘗試強制關閉命令調度程序。

abstract void shutdownHard ()

嘗試強制關閉命令調度程序。

abstract void shutdownOnEmpty ()

shutdown()類似,但會等待所有指令執行完畢後再退出。

abstract void start ()

啟動ICommandScheduler

abstract boolean stopInvocation (int invocationId, String cause)

透過指定其 id 來停止正在運行的呼叫。

default boolean stopInvocation (int invocationId)

透過指定其 id 來停止正在運行的呼叫。

abstract boolean stopInvocation ( ITestInvocation invocation)

停止正在運行的呼叫。

default void stopScheduling ()

停止安排和接受新測試,但不停止 Tradefed。

公共方法

新增命令

public abstract Pair<Boolean, Integer> addCommand (String[] args)

在調度程序中新增命令。

命令本質上是要運行的配置及其關聯參數的實例。

如果指定了「--help」參數,則配置的說明文字將輸出到標準輸出。否則,配置將被加入到佇列中運行。

參數
args String :配置參數。

退貨
Pair <Boolean, Integer>一對值,如果指令加入成功,第一個值是布林值true 。第二個值是已知的命令追蹤器 ID(非負值),如果命令新增成功,則為所有裝置新增指令時傳回 0,否則傳回 -1。

投擲
ConfigurationException if 指令無法解析

新增命令文件

public abstract void addCommandFile (String cmdFile, 
                 extraArgs)

將給定檔案中的所有命令新增至調度程序

參數
cmdFile String : 命令檔案的檔案系統路徑

extraArgs :附加到從檔案解析的每個指令的String參數的ERROR(/List) 。可以為空,但不應為空。

投擲
ConfigurationException如果無法解析命令文件

也可以看看:

等待

public abstract void await ()

等待調度程序開始運行,包括等待舊 TF 的切換完成(如果適用)。

顯示命令隊列

public abstract void displayCommandQueue (PrintWriter printWriter)

輸出有關命令執行佇列狀態的詳細偵錯資訊。

顯示命令訊息

public abstract void displayCommandsInfo (PrintWriter printWriter, 
                String regex)

輸出當前命令的列表。

參數
printWriter PrintWriter :要輸出到的ERROR(/PrintWriter)

regex String :指令應與其相符才能列印的正規表示式。如果為空,則將列印所有命令。

顯示呼叫訊息

public abstract void displayInvocationsInfo (PrintWriter printWriter)

顯示目前呼叫的清單。

參數
printWriter PrintWriter :要輸出到的ERROR(/PrintWriter)

dumpCommandsXml

public abstract void dumpCommandsXml (PrintWriter printWriter, 
                String regex)

轉儲該命令的擴展 xml 文件,其中包含為所有當前命令指定的所有Option值。

參數
printWriter PrintWriter :將狀態輸出到的ERROR(/PrintWriter)

regex String :命令應與其匹配的正規表示式,以便轉儲 xml 檔案。如果為 null,則所有命令都將被轉儲。

執行命令

public abstract long execCommand (IInvocationContext context, 
                ICommandScheduler.IScheduledInvocationListener listener, 
                String[] args)

直接分配裝置並執行命令,而不使用現有的IInvocationContext將其新增至命令佇列。

參數
context IInvocationContext :現有的IInvocationContext

listener ICommandScheduler.IScheduledInvocationListener :要通知的ICommandScheduler.IScheduledInvocationListener

args String : 指令參數

退貨
long

投擲
ConfigurationException如果命令無效
NoDeviceException如果沒有設備可以使用

執行命令

public abstract long execCommand (ICommandScheduler.IScheduledInvocationListener listener, 
                String[] args)

直接分配設備並執行命令,而不將其添加到命令隊列。

參數
listener ICommandScheduler.IScheduledInvocationListener :要通知的ICommandScheduler.IScheduledInvocationListener

args String : 指令參數

退貨
long計劃命令的呼叫ID。

投擲
ConfigurationException如果命令無效
NoDeviceException如果沒有設備可以使用

執行命令

public abstract long execCommand (ICommandScheduler.IScheduledInvocationListener listener, 
                 devices, 
                String[] args)

直接在已指派的設備上執行命令。

參數
listener ICommandScheduler.IScheduledInvocationListener :要通知的ICommandScheduler.IScheduledInvocationListener

devicesERROR(/List ) ERROR(/List )使用

args String : 指令參數

退貨
long計劃命令的呼叫ID。

投擲
ConfigurationException如果命令無效

取得命令文件觀察者

public abstract CommandFileWatcher getCommandFileWatcher ()

為該調度程序取得適當的 CommandFileWatcher

退貨
CommandFileWatcher

取得執行命令計數

public abstract int getExecutingCommandCount ()

傳回處於執行狀態的命令數。

退貨
int

獲取呼叫訊息

public abstract String getInvocationInfo (int invocationId)

傳回有關指定呼叫 ID 的呼叫的資訊。

參數
invocationId int :調用的追蹤 ID。

退貨
String包含有關呼叫的資訊的String

取得最後調用退出程式碼

public abstract CommandRunner.ExitCode getLastInvocationExitCode ()

傳回上次運行的呼叫的錯誤代碼。如果尚未運行任何調用,則返回 0(無錯誤)。

退貨
CommandRunner.ExitCode

取得最後一個呼叫Throwable

public abstract Throwable getLastInvocationThrowable ()

返回上次運行的呼叫中的Throwable 。如果沒有可用的 throwable,則傳回 null。

退貨
Throwable

取得就緒命令計數

public abstract int getReadyCommandCount ()

傳回佇列中處於就緒狀態的命令數。

退貨
int

是設備呼叫執行緒

public abstract boolean isDeviceInInvocationThread (ITestDevice device)

如果設備由活動呼叫線程使用,則傳回 true。

參數
device ITestDevice

退貨
boolean

加入

public abstract void join ()

等待調度程序完成。

也可以看看:

加入

public abstract void join (long millis)

等待調度程序完成或在指定的持續時間(以毫秒為單位)後逾時。

參數
millis long

也可以看看:

刪除所有命令

public abstract void removeAllCommands ()

從排程器中刪除所有命令

設定ClearcutClient

public abstract void setClearcutClient (ClearcutClient client)

設定客戶端報告線束數據

參數
client ClearcutClient

應該ShutdownOnCmdfileError

public abstract boolean shouldShutdownOnCmdfileError ()

如果我們需要在命令錯誤時關閉調度程序,則傳回 true

退貨
boolean

關閉

public void shutdown ()

嘗試正常關閉命令調度程序。

清除等待測試的命令,並請求正常關閉所有正在進行的呼叫。

在呼叫 shutdown 後,調度程式主循環將等待所有正在進行的呼叫完成,然後完全退出。

關閉

public abstract void shutdown (boolean notifyStop)

嘗試正常關閉命令調度程序。

參數
notifyStop boolean :如果為 true,則通知呼叫 TF 關閉。

硬關機

public abstract void shutdownHard (boolean killAdb)

嘗試強制關閉命令調度程序。

shutdown()類似,但也可以選擇終止 adb 連接,以嘗試「激發」正在進行的呼叫更快完成。

參數
killAdb boolean

硬關機

public abstract void shutdownHard ()

嘗試強制關閉命令調度程序。與 shutdownHard(true) 相同。

空時關閉

public abstract void shutdownOnEmpty ()

shutdown()類似,但會等待所有指令執行完畢後再退出。

請注意,如果任何命令處於循環模式,調度程式將永遠不會退出。

開始

public abstract void start ()

啟動ICommandScheduler

必須在呼叫其他方法之前呼叫。

將運行直到shutdown()被呼叫。請參閱Thread.start()

停止調用

public abstract boolean stopInvocation (int invocationId, 
                String cause)

透過指定其 id 來停止正在運行的呼叫。

參數
invocationId int :調用的追蹤 ID。

cause String :停止呼叫的原因。

退貨
boolean如果呼叫停止則為 true,否則為 false

投擲
UnsupportedOperationException如果實現不支持這個

停止調用

public boolean stopInvocation (int invocationId)

透過指定其 id 來停止正在運行的呼叫。

參數
invocationId int

退貨
boolean如果呼叫停止則為 true,否則為 false

投擲
UnsupportedOperationException如果實現不支持這個

停止調用

public abstract boolean stopInvocation (ITestInvocation invocation)

停止正在運行的呼叫。

參數
invocation ITestInvocation

退貨
boolean如果呼叫停止則為 true,否則為 false

投擲
UnsupportedOperationException如果實現不支持這個

停止調度

public void stopScheduling ()

停止安排和接受新測試,但不停止 Tradefed。這是為了實現兩步驟關閉,首先我們耗盡所有正在執行的測試,然後終止 Tradefed 進程。