CommandScheduler

public class CommandScheduler
extends Object implements ICommandScheduler

java.lang.Object
   ↳ com.android.tradefed.command.CommandScheduler


Một trình lập lịch để chạy các lệnh TradeFederation trên tất cả các thiết bị hiện có.

Sẽ cố gắng ưu tiên các lệnh để chạy dựa trên tổng số lần thực thi. Ví dụ: các lệnh chạy không thường xuyên hoặc chạy nhanh sẽ được ưu tiên hơn các lệnh chạy trong thời gian dài.

Chạy mãi mãi ở chế độ nền cho đến khi tắt.

Tóm tắt

Hàm khởi tạo công khai

CommandScheduler()

Tạo CommandScheduler.

Phương thức công khai

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

Thêm một lệnh vào trình lập lịch.

void addCommandFile(String cmdFilePath, extraArgs)

Thêm tất cả các lệnh trong tệp đã cho vào trình lập lịch

void await()

Đợi trình lập lịch bắt đầu chạy, bao gồm cả việc đợi quá trình chuyển giao từ TF cũ hoàn tất (nếu có).

static TradefedDelegator checkDelegation(String[] args)

Tạo một trình uỷ quyền dựa trên dòng lệnh để xem liệu chúng ta có cần uỷ quyền chạy hay không.

static createReleaseMap(IInvocationContext context, Throwable e)

Tạo bản đồ trạng thái thiết bị để có thể phát hành thiết bị một cách thích hợp.

ISandbox createSandbox()

Tạo một ISandbox mà lệnh gọi sẽ dùng để chạy.

void displayCommandQueue(PrintWriter printWriter)

Xuất thông tin gỡ lỗi chi tiết về trạng thái của hàng đợi thực thi lệnh.

void displayCommandsInfo(PrintWriter printWriter, String regex)

Xuất danh sách các lệnh hiện tại.

void displayInvocationsInfo(PrintWriter printWriter)

Hiển thị danh sách các lệnh gọi hiện tại.

void dumpCommandsXml(PrintWriter printWriter, String regex)

Kết xuất tệp xml đã mở rộng cho lệnh với tất cả các giá trị Option được chỉ định cho tất cả các lệnh hiện tại.

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

Thực hiện trực tiếp lệnh trên thiết bị đã được phân bổ.

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

Thực thi lệnh trực tiếp trên các thiết bị đã được phân bổ.

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

Trực tiếp phân bổ một thiết bị và thực thi một lệnh mà không cần thêm thiết bị đó vào hàng đợi lệnh bằng cách sử dụng IInvocationContext hiện có.

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

Phân bổ trực tiếp một thiết bị và thực thi một lệnh mà không cần thêm thiết bị đó vào hàng đợi lệnh.

CommandFileWatcher getCommandFileWatcher()

Lấy CommandFileWatcher thích hợp cho trình lập lịch này

int getExecutingCommandCount()

Trả về số lượng Lệnh ở trạng thái đang thực thi.

CommandScheduler.HostState getHostState()
String getInvocationInfo(int invocationId)

Trả về thông tin về một lệnh gọi bằng cách chỉ định mã nhận dạng lệnh gọi.

CommandRunner.ExitCode getLastInvocationExitCode()

Trả về mã lỗi của lệnh gọi gần đây nhất đã chạy.

Throwable getLastInvocationThrowable()

Trả về Throwable từ lệnh gọi gần đây nhất đã chạy.

int getReadyCommandCount()

Trả về số lượng Lệnh ở trạng thái sẵn sàng trong hàng đợi.

long getShutdownTimeout()
boolean isDeviceInInvocationThread(ITestDevice device)

Trả về true nếu thiết bị được dùng bởi một luồng gọi đang hoạt động.

boolean isShuttingDown()
void notifyFileChanged(File cmdFile, extraArgs)
void removeAllCommands()

Xoá tất cả lệnh khỏi trình lập lịch

void run()

Khối thực thi chính của luồng này.

void setClearcutClient(ClearcutClient client)

Đặt ứng dụng để báo cáo dữ liệu harness

void setMaxPollTime(long polling)
void setPrintSchedulingWarning(boolean print)
boolean shouldShutdownOnCmdfileError()

Trả về true nếu chúng ta cần tắt trình lập lịch khi có lỗi lệnh

void shutdown(boolean notifyStop)

Cố gắng tắt trình lập lịch lệnh một cách thích hợp.

void shutdownHard(boolean killAdb)

Cố gắng tắt trình lập lịch lệnh một cách cưỡng ép.

void shutdownHard()

Cố gắng tắt trình lập lịch lệnh một cách cưỡng ép.

void shutdownOnEmpty()

Tương tự như shutdown(), nhưng thay vào đó, sẽ đợi tất cả các lệnh được thực thi trước khi thoát.

void start()

Khởi động trình lập lịch, bao gồm cả việc thiết lập nhật ký, khởi động DeviceManager, v.v.

boolean stopInvocation(ITestInvocation invocation)

Dừng một lệnh gọi đang chạy.

boolean stopInvocation(int invocationId, String cause)

Dừng một lệnh gọi đang chạy bằng cách chỉ định mã nhận dạng của lệnh gọi đó.

void stopScheduling()

Dừng lên lịch và chấp nhận các bài kiểm thử mới nhưng không dừng Tradefed.

Phương thức được bảo vệ

void cleanUp()

Đóng nhật ký và thực hiện mọi thao tác dọn dẹp cần thiết khác trước khi chúng ta thoát.

IConfiguration createConfiguration(String[] args)
IInvocationContext createInvocationContext()
void dryRunCommandReporting(ICommandScheduler.IScheduledInvocationListener handler, IConfiguration config)

Xác định xem một lệnh nhất định có phải là lệnh chạy thử hay không.

long execCommand(IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args)
IConfigurationFactory getConfigFactory()

Phương thức nhà máy để lấy thông tin tham chiếu đến IConfigurationFactory

DeviceManagementGrpcServer getDeviceManagementServer()
IDeviceManager getDeviceManager()

Phương thức nhà máy để lấy thông tin tham chiếu đến IDeviceManager

TradefedFeatureServer getFeatureServer()
IHostOptions getHostOptions()
IKeyStoreClient getKeyStoreClient()

Tìm nạp một IKeyStoreClient bằng cách sử dụng IKeyStoreFactory được khai báo trong IGlobalConfiguration hoặc giá trị rỗng nếu không có giá trị nào được xác định.

TestInvocationManagementServer getTestInvocationManagementServer()
void initLogging()

Khởi chạy nhật ký ddmlib.

boolean isShutdown()
void processReadyCommands(IDeviceManager manager)

Hàm khởi tạo công khai

CommandScheduler

public CommandScheduler ()

Tạo CommandScheduler.

Lưu ý: bạn phải gọi start trước khi sử dụng.

Phương thức công khai

addCommand

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

Thêm một lệnh vào trình lập lịch.

Về cơ bản, lệnh là một phiên bản của cấu hình để chạy và các đối số được liên kết của cấu hình đó.

Nếu đối số "--help" được chỉ định, văn bản trợ giúp cho cấu hình sẽ được xuất ra stdout. Nếu không, cấu hình sẽ được thêm vào hàng đợi để chạy.

Tham số
args String: các đối số cấu hình.

Giá trị trả về
Pair<Boolean, Integer> Một cặp giá trị, giá trị đầu tiên là giá trị Boolean true nếu lệnh được thêm thành công. Giá trị thứ hai là mã theo dõi lệnh đã biết(giá trị không âm) nếu lệnh được thêm thành công, trả về 0 khi lệnh được thêm cho tất cả các thiết bị, nếu không thì trả về -1.

Gửi
ConfigurationException

addCommandFile

public void addCommandFile (String cmdFilePath, 
                 extraArgs)

Thêm tất cả các lệnh trong tệp đã cho vào trình lập lịch

Tham số
cmdFilePath String: đường dẫn hệ thống tệp của tệp lệnh

extraArgs : một ERROR(/List) gồm các đối số String để thêm vào mỗi lệnh được phân tích cú pháp từ tệp. Có thể trống nhưng không được có giá trị null.

Gửi
ConfigurationException

await

public void await ()

Đợi trình lập lịch bắt đầu chạy, bao gồm cả việc đợi quá trình chuyển giao từ TF cũ hoàn tất (nếu có).

checkDelegation

public static TradefedDelegator checkDelegation (String[] args)

Tạo một trình uỷ quyền dựa trên dòng lệnh để xem liệu chúng ta có cần uỷ quyền chạy hay không.

Tham số
args String

Giá trị trả về
TradefedDelegator

Gửi
com.android.tradefed.config.ConfigurationException
ConfigurationException

createReleaseMap

public static  createReleaseMap (IInvocationContext context, 
                Throwable e)

Tạo bản đồ trạng thái thiết bị để có thể phát hành thiết bị một cách thích hợp.

Tham số
context IInvocationContext

e Throwable

Giá trị trả về

createSandbox

public ISandbox createSandbox ()

Tạo một ISandbox mà lệnh gọi sẽ dùng để chạy.

Giá trị trả về
ISandbox

displayCommandQueue

public void displayCommandQueue (PrintWriter printWriter)

Xuất thông tin gỡ lỗi chi tiết về trạng thái của hàng đợi thực thi lệnh.

displayCommandsInfo

public void displayCommandsInfo (PrintWriter printWriter, 
                String regex)

Xuất danh sách các lệnh hiện tại.

Tham số
printWriter PrintWriter: ERROR(/PrintWriter) để xuất ra.

regex String: biểu thức chính quy mà các lệnh phải khớp để được in. Nếu giá trị là rỗng, thì tất cả các lệnh sẽ được in.

displayInvocationsInfo

public void displayInvocationsInfo (PrintWriter printWriter)

Hiển thị danh sách các lệnh gọi hiện tại.

Tham số
printWriter PrintWriter: ERROR(/PrintWriter) để xuất ra.

dumpCommandsXml

public void dumpCommandsXml (PrintWriter printWriter, 
                String regex)

Kết xuất tệp xml đã mở rộng cho lệnh với tất cả các giá trị Option được chỉ định cho tất cả các lệnh hiện tại.

Tham số
printWriter PrintWriter: ERROR(/PrintWriter) để xuất trạng thái.

regex String: biểu thức chính quy mà các lệnh phải khớp để tệp xml được kết xuất. Nếu là giá trị rỗng, thì tất cả các lệnh sẽ được kết xuất.

execCommand

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

Thực hiện trực tiếp lệnh trên thiết bị đã được phân bổ.

Tham số
listener ICommandScheduler.IScheduledInvocationListener: ICommandScheduler.IScheduledInvocationListener cần được thông báo

device ITestDevice: ITestDevice cần sử dụng

args String: đối số lệnh

Giá trị trả về
long Mã lệnh gọi của lệnh đã lên lịch.

Gửi
ConfigurationException

execCommand

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

Thực thi lệnh trực tiếp trên các thiết bị đã được phân bổ.

Tham số
listener ICommandScheduler.IScheduledInvocationListener: ICommandScheduler.IScheduledInvocationListener cần được thông báo

reservedDevices : ERROR(/List) cần sử dụng

args String: đối số lệnh

Giá trị trả về
long Mã lệnh gọi của lệnh đã lên lịch.

Gửi
ConfigurationException

execCommand

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

Trực tiếp phân bổ một thiết bị và thực thi một lệnh mà không cần thêm thiết bị đó vào hàng đợi lệnh bằng cách sử dụng IInvocationContext hiện có.

Tham số
context IInvocationContext: một IInvocationContext hiện có.

listener ICommandScheduler.IScheduledInvocationListener: ICommandScheduler.IScheduledInvocationListener cần được thông báo

args String: đối số lệnh

Giá trị trả về
long

Gửi
ConfigurationException
NoDeviceException

execCommand

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

Phân bổ trực tiếp một thiết bị và thực thi một lệnh mà không cần thêm thiết bị đó vào hàng đợi lệnh.

Tham số
listener ICommandScheduler.IScheduledInvocationListener: ICommandScheduler.IScheduledInvocationListener cần được thông báo

args String: đối số lệnh

Giá trị trả về
long Mã lệnh gọi của lệnh đã lên lịch.

Gửi
ConfigurationException
NoDeviceException

getCommandFileWatcher

public CommandFileWatcher getCommandFileWatcher ()

Lấy CommandFileWatcher thích hợp cho trình lập lịch này

Giá trị trả về
CommandFileWatcher

getExecutingCommandCount

public int getExecutingCommandCount ()

Trả về số lượng Lệnh ở trạng thái đang thực thi.

Giá trị trả về
int

getHostState

public CommandScheduler.HostState getHostState ()

Giá trị trả về
CommandScheduler.HostState

getInvocationInfo

public String getInvocationInfo (int invocationId)

Trả về thông tin về một lệnh gọi bằng cách chỉ định mã nhận dạng lệnh gọi.

Tham số
invocationId int: mã theo dõi của lệnh gọi.

Giá trị trả về
String Một String chứa thông tin về lệnh gọi.

getLastInvocationExitCode

public CommandRunner.ExitCode getLastInvocationExitCode ()

Trả về mã lỗi của lệnh gọi gần đây nhất đã chạy. Trả về 0 (không có lỗi) nếu chưa có lệnh gọi nào chạy.

Giá trị trả về
CommandRunner.ExitCode

getLastInvocationThrowable

public Throwable getLastInvocationThrowable ()

Trả về Throwable từ lệnh gọi gần đây nhất đã chạy. Trả về giá trị rỗng nếu không có throwable nào.

Giá trị trả về
Throwable

getReadyCommandCount

public int getReadyCommandCount ()

Trả về số lượng Lệnh ở trạng thái sẵn sàng trong hàng đợi.

Giá trị trả về
int

getShutdownTimeout

public long getShutdownTimeout ()

Giá trị trả về
long

isDeviceInInvocationThread

public boolean isDeviceInInvocationThread (ITestDevice device)

Trả về true nếu thiết bị được dùng bởi một luồng gọi đang hoạt động.

Tham số
device ITestDevice

Giá trị trả về
boolean

isShuttingDown

public boolean isShuttingDown ()

Giá trị trả về
boolean

notifyFileChanged

public void notifyFileChanged (File cmdFile, 
                 extraArgs)

Tham số
cmdFile File

extraArgs

removeAllCommands

public void removeAllCommands ()

Xoá tất cả lệnh khỏi trình lập lịch

chạy

public void run ()

Khối thực thi chính của luồng này.

setClearcutClient

public void setClearcutClient (ClearcutClient client)

Đặt ứng dụng để báo cáo dữ liệu harness

Tham số
client ClearcutClient

setMaxPollTime

public void setMaxPollTime (long polling)

Tham số
polling long

setPrintSchedulingWarning

public void setPrintSchedulingWarning (boolean print)

Tham số
print boolean

shouldShutdownOnCmdfileError

public boolean shouldShutdownOnCmdfileError ()

Trả về true nếu chúng ta cần tắt trình lập lịch khi có lỗi lệnh

Giá trị trả về
boolean

tắt

public void shutdown (boolean notifyStop)

Cố gắng tắt trình lập lịch lệnh một cách thích hợp.

Tham số
notifyStop boolean: nếu đúng, sẽ thông báo các lệnh gọi tắt TF.

shutdownHard

public void shutdownHard (boolean killAdb)

Cố gắng tắt trình lập lịch lệnh một cách cưỡng ép.

Tương tự như shutdown(), nhưng cũng có thể loại bỏ tuỳ chọn kết nối adb, trong nỗ lực "thúc đẩy" các lệnh gọi đang diễn ra hoàn tất nhanh hơn.

Tham số
killAdb boolean

shutdownHard

public void shutdownHard ()

Cố gắng tắt trình lập lịch lệnh một cách cưỡng ép. Tương tự như shutdownHard(true).

shutdownOnEmpty

public void shutdownOnEmpty ()

Tương tự như shutdown(), nhưng thay vào đó, sẽ đợi tất cả các lệnh được thực thi trước khi thoát.

Xin lưu ý rằng nếu có bất kỳ lệnh nào ở chế độ lặp lại, thì trình lập lịch sẽ không bao giờ thoát.

start

public void start ()

Khởi động trình lập lịch, bao gồm cả việc thiết lập nhật ký, khởi động DeviceManager, v.v.

stopInvocation

public boolean stopInvocation (ITestInvocation invocation)

Dừng một lệnh gọi đang chạy.

Tham số
invocation ITestInvocation

Giá trị trả về
boolean true nếu lệnh gọi bị dừng, false nếu không

stopInvocation

public boolean stopInvocation (int invocationId, 
                String cause)

Dừng một lệnh gọi đang chạy bằng cách chỉ định mã nhận dạng của lệnh gọi đó.

Tham số
invocationId int: mã theo dõi của lệnh gọi.

cause String: nguyên nhân khiến lệnh gọi dừng.

Giá trị trả về
boolean true nếu lệnh gọi bị dừng, false nếu không

stopScheduling

public void stopScheduling ()

Dừng lên lịch và chấp nhận các bài kiểm thử mới nhưng không dừng Tradefed. Điều này nhằm mục đích cho phép tắt theo hai bước, trong đó trước tiên chúng ta sẽ rút hết tất cả các kiểm thử đang chạy, sau đó chấm dứt quy trình Tradefed.

Phương thức được bảo vệ

cleanUp

protected void cleanUp ()

Đóng nhật ký và thực hiện mọi thao tác dọn dẹp cần thiết khác trước khi chúng ta thoát.

Được hiển thị để kiểm thử đơn vị có thể mô phỏng.

createConfiguration

protected IConfiguration createConfiguration (String[] args)

Tham số
args String

Giá trị trả về
IConfiguration

Gửi
ConfigurationException

createInvocationContext

protected IInvocationContext createInvocationContext ()

Giá trị trả về
IInvocationContext

dryRunCommandReporting

protected void dryRunCommandReporting (ICommandScheduler.IScheduledInvocationListener handler, 
                IConfiguration config)

Xác định xem một lệnh nhất định có phải là lệnh chạy thử hay không. Nếu lệnh là lệnh chạy thử, hãy xác thực lệnh đó. Nếu có vấn đề về cấu hình, thì phương thức này sẽ gửi một ConfigurationException.

Tham số
handler ICommandScheduler.IScheduledInvocationListener: ERROR(/InvocationEventHandler) để báo cáo các sự kiện cho quy trình xác thực chạy thử.

config IConfiguration

Giá trị trả về
void true nếu lệnh là một lượt chạy thử, false nếu không.

Gửi
com.android.tradefed.config.ConfigurationException
ConfigurationException

execCommand

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

Tham số
context IInvocationContext

listener ICommandScheduler.IScheduledInvocationListener

reservedDevices

args String

Giá trị trả về
long

Gửi
ConfigurationException

getConfigFactory

protected IConfigurationFactory getConfigFactory ()

Phương thức nhà máy để lấy thông tin tham chiếu đến IConfigurationFactory

Giá trị trả về
IConfigurationFactory IConfigurationFactory để sử dụng

getDeviceManagementServer

protected DeviceManagementGrpcServer getDeviceManagementServer ()

Giá trị trả về
DeviceManagementGrpcServer

getDeviceManager

protected IDeviceManager getDeviceManager ()

Phương thức nhà máy để lấy thông tin tham chiếu đến IDeviceManager

Giá trị trả về
IDeviceManager IDeviceManager để sử dụng

getFeatureServer

protected TradefedFeatureServer getFeatureServer ()

Giá trị trả về
TradefedFeatureServer

getHostOptions

protected IHostOptions getHostOptions ()

Giá trị trả về
IHostOptions

getKeyStoreClient

protected IKeyStoreClient getKeyStoreClient ()

Tìm nạp một IKeyStoreClient bằng cách sử dụng IKeyStoreFactory được khai báo trong IGlobalConfiguration hoặc giá trị rỗng nếu không có giá trị nào được xác định.

Giá trị trả về
IKeyStoreClient IKeyStoreClient

getTestInvocationManagementServer

protected TestInvocationManagementServer getTestInvocationManagementServer ()

Giá trị trả về
TestInvocationManagementServer

initLogging

protected void initLogging ()

Khởi chạy nhật ký ddmlib.

Được hiển thị để kiểm thử đơn vị có thể mô phỏng.

isShutdown

protected boolean isShutdown ()

Giá trị trả về
boolean

processReadyCommands

protected void processReadyCommands (IDeviceManager manager)

Tham số
manager IDeviceManager