CommandScheduler

public class CommandScheduler
extends Object implements ICommandScheduler

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


ตัวกำหนดตารางเวลาสำหรับการรันคำสั่ง TradeFederation ในอุปกรณ์ที่มีอยู่ทั้งหมด

จะพยายามจัดลำดับความสำคัญของคำสั่งให้ทำงานโดยพิจารณาจากจำนวนการรันทั้งหมดของเวลาดำเนินการ เช่น คำสั่งที่รันไม่บ่อยหรือเร็วจะได้รับการจัดลำดับความสำคัญมากกว่าคำสั่งที่รันเป็นเวลานาน

ทำงานตลอดไปในพื้นหลังจนกว่าจะปิดเครื่อง

สรุป

คลาสที่ซ้อนกัน

enum CommandScheduler.HostState

Enums ของสถานะต่าง ๆ ของโฮสต์

ผู้สร้างสาธารณะ

CommandScheduler ()

สร้าง CommandScheduler

วิธีการสาธารณะ

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

เพิ่มคำสั่งไปยังตัวกำหนดตารางเวลา

void addCommandFile (String cmdFilePath, extraArgs) addCommandFile (String cmdFilePath, extraArgs)

เพิ่มคำสั่งทั้งหมดจากไฟล์ที่กำหนดไปยังตัวกำหนดตารางเวลา

void await ()

รอให้ตัวกำหนดตารางเวลาเริ่มทำงาน รวมถึงการรอการส่งมอบจาก TF เก่าให้เสร็จสิ้น หากมี

static TradefedDelegator checkDelegation (String[] args)

สร้าง delegator ตามบรรทัดคำสั่งเพื่อดูว่าเราจำเป็นต้องมอบหมายให้รันหรือไม่

static createReleaseMap ( IInvocationContext context, Throwable e)

สร้างแผนที่สถานะอุปกรณ์เพื่อให้สามารถเผยแพร่ได้อย่างเหมาะสม

ISandbox createSandbox ()

สร้าง ISandbox ที่การเรียกใช้จะใช้เพื่อเรียกใช้

void displayCommandQueue (PrintWriter printWriter)

ส่งออกข้อมูลการดีบักโดยละเอียดเกี่ยวกับสถานะของคิวการดำเนินการคำสั่ง

void displayCommandsInfo (PrintWriter printWriter, String regex)

แสดงรายการคำสั่งปัจจุบัน

void displayInvocationsInfo (PrintWriter printWriter)

แสดงรายการการเรียกปัจจุบัน

void dumpCommandsXml (PrintWriter printWriter, String regex)

ดัมพ์ไฟล์ xml ที่ขยายสำหรับคำสั่งที่มีค่า Option ทั้งหมดที่ระบุสำหรับคำสั่งปัจจุบันทั้งหมด

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

จัดสรรอุปกรณ์โดยตรงและดำเนินการคำสั่งโดยไม่ต้องเพิ่มลงในคิวคำสั่งโดยใช้ IInvocationContext ที่มีอยู่แล้ว

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

จัดสรรอุปกรณ์โดยตรงและดำเนินการคำสั่งโดยไม่ต้องเพิ่มลงในคิวคำสั่ง

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

ดำเนินการคำสั่งโดยตรงบนอุปกรณ์ที่ได้รับการจัดสรรแล้ว

CommandFileWatcher getCommandFileWatcher ()

รับ CommandFileWatcher ที่เหมาะสมสำหรับตัวกำหนดตารางเวลานี้

int getExecutingCommandCount ()

ส่งกลับจำนวนคำสั่งในสถานะดำเนินการ

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

ส่งคืนข้อมูลในการเรียกใช้ bu ที่ระบุรหัสการเรียกใช้

CommandRunner.ExitCode getLastInvocationExitCode ()

ส่งกลับรหัสข้อผิดพลาดของการเรียกใช้ล่าสุดที่ทำงาน

Throwable getLastInvocationThrowable ()

ส่งคืน Throwable จากการเรียกครั้งสุดท้ายที่วิ่ง

int getReadyCommandCount ()

ส่งกลับจำนวนคำสั่งในสถานะพร้อมในคิว

long getShutdownTimeout ()
boolean isDeviceInInvocationThread ( ITestDevice device)

คืนค่า จริง หากอุปกรณ์ถูกใช้โดยเธรดการเรียกใช้ที่ทำงานอยู่

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

ลบคำสั่งทั้งหมดออกจากตัวกำหนดตารางเวลา

void run ()

บล็อกการดำเนินการหลักของเธรดนี้

void setClearcutClient (ClearcutClient client)

ตั้งค่าไคลเอนต์ให้รายงานข้อมูลสายรัด

boolean shouldShutdownOnCmdfileError ()

คืนค่า จริง หากเราจำเป็นต้องปิดตัวกำหนดตารางเวลาจากข้อผิดพลาดของคำสั่ง

void shutdown (boolean notifyStop)

พยายามปิดตัวกำหนดตารางเวลาคำสั่งอย่างสง่างาม

void shutdownHard (boolean killAdb)

พยายามบังคับให้ปิดตัวกำหนดตารางเวลาคำสั่ง

void shutdownHard ()

พยายามบังคับให้ปิดตัวกำหนดตารางเวลาคำสั่ง

void shutdownOnEmpty ()

คล้ายกับ shutdown() แต่จะรอให้คำสั่งทั้งหมดทำงานก่อนที่จะออก

void start ()

เริ่มตัวกำหนดเวลารวมถึงการตั้งค่าการบันทึก init ของ DeviceManager เป็นต้น

boolean stopInvocation (int invocationId, String cause)

หยุดการเรียกใช้ที่ทำงานอยู่โดยระบุเป็น id

boolean stopInvocation ( ITestInvocation invocation)

หยุดเรียกใช้การเรียกใช้

วิธีการป้องกัน

void cleanUp ()

ปิดบันทึกและทำการล้างข้อมูลที่จำเป็นอื่นๆ ก่อนที่เราจะออก

IConfiguration createConfiguration (String[] args)
IInvocationContext createInvocationContext ()
IConfigurationFactory getConfigFactory ()

วิธีการจากโรงงานสำหรับการอ้างอิงถึง IConfigurationFactory

DeviceManagementGrpcServer getDeviceManagementServer ()
IDeviceManager getDeviceManager ()

วิธีการจากโรงงานสำหรับการอ้างอิงถึง IDeviceManager

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

ดึงข้อมูล IKeyStoreClient โดยใช้ IKeyStoreFactory ที่ประกาศใน IGlobalConfiguration หรือ null หากไม่ได้กำหนดไว้

TestInvocationManagementServer getTestInvocationManagementServer ()
void initLogging ()

เริ่มต้นบันทึก ddmlib

boolean isShutdown ()
boolean isShuttingDown ()
void processReadyCommands ( IDeviceManager manager)

ผู้สร้างสาธารณะ

CommandScheduler

public CommandScheduler ()

สร้าง CommandScheduler

หมายเหตุ: ต้องเรียกสตาร์ทก่อนใช้งาน

วิธีการสาธารณะ

addCommand

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

เพิ่มคำสั่งไปยังตัวกำหนดตารางเวลา

คำสั่งโดยพื้นฐานแล้วคืออินสแตนซ์ของการกำหนดค่าที่จะรันและอาร์กิวเมนต์ที่เกี่ยวข้อง

หากระบุอาร์กิวเมนต์ "--help" ข้อความช่วยเหลือสำหรับการกำหนดค่าจะถูกส่งไปยัง stdout มิฉะนั้น การกำหนดค่าจะถูกเพิ่มในคิวเพื่อรัน

พารามิเตอร์
args String : อาร์กิวเมนต์การตั้งค่า

คืนสินค้า
Pair <Boolean, Integer> คู่ของค่า ค่าแรกคือ Boolean true หากเพิ่มคำสั่งสำเร็จ ค่าที่สองคือ id ตัวติดตามคำสั่งที่รู้จัก (ค่าที่ไม่ใช่ค่าลบ) หากเพิ่มคำสั่งสำเร็จ ให้คืนค่า 0 เมื่อมีการเพิ่มคำสั่งสำหรับอุปกรณ์ทั้งหมด มิฉะนั้น -1

ขว้าง
ConfigurationException

addCommandFile

public void addCommandFile (String cmdFilePath, 
                 extraArgs)

เพิ่มคำสั่งทั้งหมดจากไฟล์ที่กำหนดไปยังตัวกำหนดตารางเวลา

พารามิเตอร์
cmdFilePath String : เส้นทางระบบไฟล์ของ comand file

extraArgs : ERROR(/List) ของอาร์กิวเมนต์ String ที่จะผนวกกับแต่ละคำสั่งที่แยกวิเคราะห์จากไฟล์ สามารถว่างเปล่าได้ แต่ไม่ควรเป็นค่าว่าง

ขว้าง
ConfigurationException

รอคอย

public void await ()

รอให้ตัวกำหนดตารางเวลาเริ่มทำงาน รวมถึงการรอการส่งมอบจาก TF เก่าให้เสร็จสิ้น หากมี

ตรวจสอบการมอบหมาย

public static TradefedDelegator checkDelegation (String[] args)

สร้าง delegator ตามบรรทัดคำสั่งเพื่อดูว่าเราจำเป็นต้องมอบหมายให้รันหรือไม่

พารามิเตอร์
args String

คืนสินค้า
TradefedDelegator

ขว้าง
ConfigurationException

createReleaseMap

public static  createReleaseMap (IInvocationContext context, 
                Throwable e)

สร้างแผนที่สถานะอุปกรณ์เพื่อให้สามารถเผยแพร่ได้อย่างเหมาะสม

พารามิเตอร์
context IInvocationContext

e Throwable

คืนสินค้า

createSandbox

public ISandbox createSandbox ()

สร้าง ISandbox ที่การเรียกใช้จะใช้เพื่อเรียกใช้

คืนสินค้า
ISandbox

displayCommandQueue

public void displayCommandQueue (PrintWriter printWriter)

ส่งออกข้อมูลการดีบักโดยละเอียดเกี่ยวกับสถานะของคิวการดำเนินการคำสั่ง

displayCommandsInfo

public void displayCommandsInfo (PrintWriter printWriter, 
                String regex)

แสดงรายการคำสั่งปัจจุบัน

พารามิเตอร์
printWriter PrintWriter : ERROR(/PrintWriter) ที่จะส่งออกไปยัง

regex String : นิพจน์ทั่วไปที่ควรจับคู่คำสั่งเพื่อพิมพ์ หากเป็นโมฆะ คำสั่งทั้งหมดจะถูกพิมพ์

displayInvocationsInfo

public void displayInvocationsInfo (PrintWriter printWriter)

แสดงรายการการเรียกปัจจุบัน

พารามิเตอร์
printWriter PrintWriter : ERROR(/PrintWriter) ที่จะส่งออกไปยัง

dumpCommandsXml

public void dumpCommandsXml (PrintWriter printWriter, 
                String regex)

ดัมพ์ไฟล์ xml ที่ขยายสำหรับคำสั่งที่มีค่า Option ทั้งหมดที่ระบุสำหรับคำสั่งปัจจุบันทั้งหมด

พารามิเตอร์
printWriter PrintWriter : ERROR(/PrintWriter) ที่จะส่งออกสถานะไปที่

regex String : นิพจน์ทั่วไปที่คำสั่งควรจับคู่เพื่อให้ไฟล์ xml ถูกดัมพ์ หากเป็นโมฆะ คำสั่งทั้งหมดจะถูกดัมพ์

execCommand

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

จัดสรรอุปกรณ์โดยตรงและดำเนินการคำสั่งโดยไม่ต้องเพิ่มลงในคิวคำสั่งโดยใช้ IInvocationContext ที่มีอยู่แล้ว

พารามิเตอร์
context IInvocationContext : IInvocationContext ที่มีอยู่

listener ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener ที่จะได้รับแจ้ง

args String : อาร์กิวเมนต์คำสั่ง

คืนสินค้า
long

ขว้าง
ConfigurationException
NoDeviceException

execCommand

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

จัดสรรอุปกรณ์โดยตรงและดำเนินการคำสั่งโดยไม่ต้องเพิ่มลงในคิวคำสั่ง

พารามิเตอร์
listener ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener ที่จะได้รับแจ้ง

args String : อาร์กิวเมนต์คำสั่ง

คืนสินค้า
long รหัสการเรียกใช้ของคำสั่งที่กำหนดเวลาไว้

ขว้าง
ConfigurationException
NoDeviceException

execCommand

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

ดำเนินการคำสั่งโดยตรงบนอุปกรณ์ที่ได้รับการจัดสรรแล้ว

พารามิเตอร์
listener ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener ที่จะได้รับแจ้ง

device ITestDevice : ITestDevice ที่จะใช้

args String : อาร์กิวเมนต์คำสั่ง

คืนสินค้า
long รหัสการเรียกใช้ของคำสั่งที่กำหนดเวลาไว้

ขว้าง
ConfigurationException

getCommandFileWatcher

public CommandFileWatcher getCommandFileWatcher ()

รับ CommandFileWatcher ที่เหมาะสมสำหรับตัวกำหนดตารางเวลานี้

คืนสินค้า
CommandFileWatcher

getExecutingCommandCount

public int getExecutingCommandCount ()

ส่งกลับจำนวนคำสั่งในสถานะดำเนินการ

คืนสินค้า
int

getHostState

public CommandScheduler.HostState getHostState ()

คืนสินค้า
CommandScheduler.HostState

getInvocationInfo

public String getInvocationInfo (int invocationId)

ส่งคืนข้อมูลในการเรียกใช้ bu ที่ระบุรหัสการเรียกใช้

พารามิเตอร์
invocationId int : รหัสติดตามของการร้องขอ

คืนสินค้า
String String ที่มีข้อมูลเกี่ยวกับการเรียกใช้

getLastInvocationExitCode

public CommandRunner.ExitCode getLastInvocationExitCode ()

ส่งกลับรหัสข้อผิดพลาดของการเรียกใช้ล่าสุดที่ทำงาน คืนค่า 0 (ไม่มีข้อผิดพลาด) หากยังไม่มีการเรียกใช้งาน

คืนสินค้า
CommandRunner.ExitCode

getLastInvocationThrowable

public Throwable getLastInvocationThrowable ()

ส่งคืน Throwable จากการเรียกครั้งสุดท้ายที่วิ่ง คืนค่า null ถ้าไม่มีการขว้างปา

คืนสินค้า
Throwable

getReadyCommandCount

public int getReadyCommandCount ()

ส่งกลับจำนวนคำสั่งในสถานะพร้อมในคิว

คืนสินค้า
int

getShutdownTimeout

public long getShutdownTimeout ()

คืนสินค้า
long

isDeviceInvocationThread

public boolean isDeviceInInvocationThread (ITestDevice device)

คืนค่า จริง หากอุปกรณ์ถูกใช้โดยเธรดการเรียกใช้ที่ทำงานอยู่

พารามิเตอร์
device ITestDevice

คืนสินค้า
boolean

notifyFileChanged

public void notifyFileChanged (File cmdFile, 
                 extraArgs)

พารามิเตอร์
cmdFile File

extraArgs

removeAllCommands

public void removeAllCommands ()

ลบคำสั่งทั้งหมดออกจากตัวกำหนดตารางเวลา

วิ่ง

public void run ()

บล็อกการดำเนินการหลักของเธรดนี้

setClearcutClient

public void setClearcutClient (ClearcutClient client)

ตั้งค่าไคลเอนต์ให้รายงานข้อมูลสายรัด

พารามิเตอร์
client ClearcutClient

ควรShutdownOnCmdfileError

public boolean shouldShutdownOnCmdfileError ()

คืนค่า จริง หากเราจำเป็นต้องปิดตัวกำหนดตารางเวลาจากข้อผิดพลาดของคำสั่ง

คืนสินค้า
boolean

ปิดตัวลง

public void shutdown (boolean notifyStop)

พยายามปิดตัวกำหนดตารางเวลาคำสั่งอย่างสง่างาม

พารามิเตอร์
notifyStop boolean : ถ้าเป็นจริง จะแจ้งการเรียกการปิด TF

ปิดฮาร์ด

public void shutdownHard (boolean killAdb)

พยายามบังคับให้ปิดตัวกำหนดตารางเวลาคำสั่ง

คล้ายกับ shutdown() แต่จะเลือกที่จะปิดการเชื่อมต่อ adb ด้วย ด้วยความพยายามที่จะ 'สร้างแรงบันดาลใจ' การร้องขอที่กำลังดำเนินการให้เสร็จสิ้นเร็วขึ้น

พารามิเตอร์
killAdb boolean

ปิดฮาร์ด

public void shutdownHard ()

พยายามบังคับให้ปิดตัวกำหนดตารางเวลาคำสั่ง เหมือนกับ shutdownHard(จริง)

shutdownOnEmpty

public void shutdownOnEmpty ()

คล้ายกับ shutdown() แต่จะรอให้คำสั่งทั้งหมดทำงานก่อนที่จะออก

โปรดทราบว่าหากมีคำสั่งใดๆ อยู่ในโหมดวนรอบ ตัวกำหนดตารางเวลาจะไม่ออก

เริ่ม

public void start ()

เริ่มตัวกำหนดเวลารวมถึงการตั้งค่าการบันทึก init ของ DeviceManager เป็นต้น

หยุดการร้องขอ

public boolean stopInvocation (int invocationId, 
                String cause)

หยุดการเรียกใช้ที่ทำงานอยู่โดยระบุเป็น id

พารามิเตอร์
invocationId int : รหัสติดตามของการร้องขอ

cause String : สาเหตุของการหยุดการร้องขอ

คืนสินค้า
boolean จริงถ้าการวิงวอนหยุดลง เท็จ มิฉะนั้น

หยุดการร้องขอ

public boolean stopInvocation (ITestInvocation invocation)

หยุดเรียกใช้การเรียกใช้

พารามิเตอร์
invocation ITestInvocation

คืนสินค้า
boolean จริงถ้าการวิงวอนหยุดลง เท็จ มิฉะนั้น

วิธีการป้องกัน

ทำความสะอาด

protected void cleanUp ()

ปิดบันทึกและทำการล้างข้อมูลที่จำเป็นอื่นๆ ก่อนที่เราจะออก

เปิดเผยเพื่อให้การทดสอบหน่วยสามารถเยาะเย้ย

สร้างการกำหนดค่า

protected IConfiguration createConfiguration (String[] args)

พารามิเตอร์
args String

คืนสินค้า
IConfiguration

ขว้าง
ConfigurationException

createInvocationContext

protected IInvocationContext createInvocationContext ()

คืนสินค้า
IInvocationContext

getConfigFactory

protected IConfigurationFactory getConfigFactory ()

วิธีการจากโรงงานสำหรับการอ้างอิงถึง IConfigurationFactory

คืนสินค้า
IConfigurationFactory IConfigurationFactory ที่จะใช้

getDeviceManagementServer

protected DeviceManagementGrpcServer getDeviceManagementServer ()

คืนสินค้า
DeviceManagementGrpcServer

getDeviceManager

protected IDeviceManager getDeviceManager ()

วิธีการจากโรงงานสำหรับการอ้างอิงถึง IDeviceManager

คืนสินค้า
IDeviceManager IDeviceManager ที่จะใช้

getFeatureServer

protected TradefedFeatureServer getFeatureServer ()

คืนสินค้า
TradefedFeatureServer

getHostOptions

protected IHostOptions getHostOptions ()

คืนสินค้า
IHostOptions

getKeyStoreClient

protected IKeyStoreClient getKeyStoreClient ()

ดึงข้อมูล IKeyStoreClient โดยใช้ IKeyStoreFactory ที่ประกาศใน IGlobalConfiguration หรือ null หากไม่ได้กำหนดไว้

คืนสินค้า
IKeyStoreClient IKeyStoreClient

getTestInvocationManagementServer

protected TestInvocationManagementServer getTestInvocationManagementServer ()

คืนสินค้า
TestInvocationManagementServer

initLogging

protected void initLogging ()

เริ่มต้นบันทึก ddmlib

เปิดเผยเพื่อให้การทดสอบหน่วยสามารถเยาะเย้ย

isShutdown

protected boolean isShutdown ()

คืนสินค้า
boolean

isShuttingDown

protected boolean isShuttingDown ()

คืนสินค้า
boolean

processReadyCommands

protected void processReadyCommands (IDeviceManager manager)

พารามิเตอร์
manager IDeviceManager