CommandScheduler

public class CommandScheduler
extends Object implements ICommandScheduler

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


Penjadwal untuk menjalankan perintah TradeFederation di semua perangkat yang tersedia.

Akan mencoba memprioritaskan perintah yang akan dijalankan berdasarkan total jumlah waktu eksekusinya. Misalnya, perintah yang jarang atau cepat dijalankan akan diprioritaskan daripada perintah yang berjalan lama.

Berjalan selamanya di latar belakang hingga dimatikan.

Ringkasan

Konstruktor publik

CommandScheduler()

Membuat CommandScheduler.

Metode publik

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

Menambahkan perintah ke penjadwal.

void addCommandFile(String cmdFilePath, extraArgs)

Menambahkan semua perintah dari file tertentu ke penjadwal

void await()

Menunggu penjadwal mulai berjalan, termasuk menunggu penyerahan dari TF lama selesai jika berlaku.

static TradefedDelegator checkDelegation(String[] args)

Buat delegator berdasarkan command line untuk melihat apakah kita perlu mendelegasikan run.

static createReleaseMap(IInvocationContext context, Throwable e)

Buat peta status perangkat agar dapat dilepaskan dengan tepat.

ISandbox createSandbox()

Buat ISandbox yang akan digunakan pemanggilan untuk dijalankan.

void displayCommandQueue(PrintWriter printWriter)

Menampilkan info debug mendetail tentang status antrean eksekusi perintah.

void displayCommandsInfo(PrintWriter printWriter, String regex)

Menampilkan daftar perintah saat ini.

void displayInvocationsInfo(PrintWriter printWriter)

Menampilkan daftar pemanggilan saat ini.

void dumpCommandsXml(PrintWriter printWriter, String regex)

Buat file xml yang diperluas untuk perintah dengan semua nilai Option yang ditentukan untuk semua perintah saat ini.

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

Menjalankan perintah secara langsung di perangkat yang sudah dialokasikan.

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

Menjalankan perintah secara langsung di perangkat yang sudah dialokasikan.

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

Mengalokasikan perangkat secara langsung dan menjalankan perintah tanpa menambahkannya ke antrean perintah menggunakan IInvocationContext yang sudah ada.

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

Mengalokasikan perangkat secara langsung dan menjalankan perintah tanpa menambahkannya ke antrean perintah.

CommandFileWatcher getCommandFileWatcher()

Dapatkan CommandFileWatcher yang sesuai untuk penjadwal ini

int getExecutingCommandCount()

Menampilkan jumlah Perintah dalam status yang sedang dieksekusi.

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

Menampilkan informasi tentang pemanggilan dengan menentukan ID pemanggilan.

CommandRunner.ExitCode getLastInvocationExitCode()

Menampilkan kode error dari pemanggilan terakhir yang dijalankan.

Throwable getLastInvocationThrowable()

Menampilkan Throwable dari pemanggilan terakhir yang dijalankan.

int getReadyCommandCount()

Menampilkan jumlah Perintah dalam status siap di antrean.

long getShutdownTimeout()
boolean isDeviceInInvocationThread(ITestDevice device)

Menampilkan nilai benar jika perangkat digunakan oleh thread pemanggilan aktif.

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

Menghapus semua perintah dari penjadwal

void run()

Blok eksekusi utama thread ini.

void setClearcutClient(ClearcutClient client)

Menetapkan klien untuk melaporkan data harness

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

Menampilkan benar jika kita perlu mematikan penjadwal saat terjadi error perintah

void shutdown(boolean notifyStop)

Mencoba mematikan penjadwal perintah dengan tuntas.

void shutdownHard(boolean killAdb)

Mencoba mematikan penjadwal perintah secara paksa.

void shutdownHard()

Mencoba mematikan penjadwal perintah secara paksa.

void shutdownOnEmpty()

Mirip dengan shutdown(), tetapi akan menunggu semua perintah dieksekusi sebelum keluar.

void start()

Memulai penjadwal, termasuk menyiapkan logging, inisialisasi DeviceManager, dll.

boolean stopInvocation(ITestInvocation invocation)

Menghentikan pemanggilan yang sedang berjalan.

boolean stopInvocation(int invocationId, String cause)

Hentikan pemanggilan yang sedang berjalan dengan menentukan ID-nya.

void stopScheduling()

Menghentikan penjadwalan dan penerimaan pengujian baru, tetapi tidak menghentikan Tradefed.

Metode yang dilindungi

void cleanUp()

Menutup log dan melakukan pembersihan lain yang diperlukan sebelum kita keluar.

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

Menentukan apakah perintah tertentu merupakan uji coba.

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

Metode factory untuk mendapatkan referensi ke IConfigurationFactory

DeviceManagementGrpcServer getDeviceManagementServer()
IDeviceManager getDeviceManager()

Metode factory untuk mendapatkan referensi ke IDeviceManager

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

Mengambil IKeyStoreClient menggunakan IKeyStoreFactory yang dideklarasikan di IGlobalConfiguration atau null jika tidak ada yang ditentukan.

TestInvocationManagementServer getTestInvocationManagementServer()
void initLogging()

Menginisialisasi log ddmlib.

boolean isShutdown()
void processReadyCommands(IDeviceManager manager)

Konstruktor publik

CommandScheduler

public CommandScheduler ()

Membuat CommandScheduler.

Catatan: start harus dipanggil sebelum digunakan.

Metode publik

addCommand

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

Menambahkan perintah ke penjadwal.

Perintah pada dasarnya adalah instance konfigurasi yang akan dijalankan dan argumen terkaitnya.

Jika argumen "--help" ditentukan, teks bantuan untuk konfigurasi akan ditampilkan ke stdout. Jika tidak, konfigurasi akan ditambahkan ke antrean untuk dijalankan.

Parameter
args String: argumen konfigurasi.

Hasil
Pair<Boolean, Integer> Pasangan nilai, nilai pertama adalah Boolean true jika perintah berhasil ditambahkan. Nilai kedua adalah ID pelacak perintah yang diketahui(nilai non-negatif) jika perintah berhasil ditambahkan, menampilkan 0 jika perintah ditambahkan untuk semua perangkat, atau -1.

Menampilkan
ConfigurationException

addCommandFile

public void addCommandFile (String cmdFilePath, 
                 extraArgs)

Menambahkan semua perintah dari file tertentu ke penjadwal

Parameter
cmdFilePath String: jalur sistem file file perintah

extraArgs : ERROR(/List) argumen String yang akan ditambahkan ke setiap perintah yang diuraikan dari file. Boleh kosong, tetapi tidak boleh null.

Menampilkan
ConfigurationException

menunggu

public void await ()

Menunggu penjadwal mulai berjalan, termasuk menunggu penyerahan dari TF lama selesai jika berlaku.

checkDelegation

public static TradefedDelegator checkDelegation (String[] args)

Buat delegator berdasarkan command line untuk melihat apakah kita perlu mendelegasikan run.

Parameter
args String

Hasil
TradefedDelegator

Menampilkan
com.android.tradefed.config.ConfigurationException
ConfigurationException

createReleaseMap

public static  createReleaseMap (IInvocationContext context, 
                Throwable e)

Buat peta status perangkat agar dapat dilepaskan dengan tepat.

Parameter
context IInvocationContext

e Throwable

Hasil

createSandbox

public ISandbox createSandbox ()

Buat ISandbox yang akan digunakan pemanggilan untuk dijalankan.

Hasil
ISandbox

displayCommandQueue

public void displayCommandQueue (PrintWriter printWriter)

Menampilkan info debug mendetail tentang status antrean eksekusi perintah.

displayCommandsInfo

public void displayCommandsInfo (PrintWriter printWriter, 
                String regex)

Menampilkan daftar perintah saat ini.

Parameter
printWriter PrintWriter: ERROR(/PrintWriter) yang akan ditampilkan.

regex String: ekspresi reguler yang harus dicocokkan dengan perintah agar dapat dicetak. Jika null, semua perintah akan dicetak.

displayInvocationsInfo

public void displayInvocationsInfo (PrintWriter printWriter)

Menampilkan daftar pemanggilan saat ini.

Parameter
printWriter PrintWriter: ERROR(/PrintWriter) yang akan ditampilkan.

dumpCommandsXml

public void dumpCommandsXml (PrintWriter printWriter, 
                String regex)

Buat file xml yang diperluas untuk perintah dengan semua nilai Option yang ditentukan untuk semua perintah saat ini.

Parameter
printWriter PrintWriter: ERROR(/PrintWriter) untuk menampilkan status.

regex String: ekspresi reguler yang harus dicocokkan dengan perintah agar file XML dapat di-dump. Jika null, semua perintah akan di-dump.

execCommand

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

Menjalankan perintah secara langsung di perangkat yang sudah dialokasikan.

Parameter
listener ICommandScheduler.IScheduledInvocationListener: ICommandScheduler.IScheduledInvocationListener yang akan diberi tahu

device ITestDevice: ITestDevice yang akan digunakan

args String: argumen perintah

Hasil
long ID pemanggilan perintah terjadwal.

Menampilkan
ConfigurationException

execCommand

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

Menjalankan perintah secara langsung di perangkat yang sudah dialokasikan.

Parameter
listener ICommandScheduler.IScheduledInvocationListener: ICommandScheduler.IScheduledInvocationListener yang akan diberi tahu

reservedDevices : ERROR(/List) yang akan digunakan

args String: argumen perintah

Hasil
long ID pemanggilan perintah terjadwal.

Menampilkan
ConfigurationException

execCommand

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

Mengalokasikan perangkat secara langsung dan menjalankan perintah tanpa menambahkannya ke antrean perintah menggunakan IInvocationContext yang sudah ada.

Parameter
context IInvocationContext: IInvocationContext yang ada.

listener ICommandScheduler.IScheduledInvocationListener: ICommandScheduler.IScheduledInvocationListener yang akan diberi tahu

args String: argumen perintah

Hasil
long

Menampilkan
ConfigurationException
NoDeviceException

execCommand

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

Mengalokasikan perangkat secara langsung dan menjalankan perintah tanpa menambahkannya ke antrean perintah.

Parameter
listener ICommandScheduler.IScheduledInvocationListener: ICommandScheduler.IScheduledInvocationListener yang akan diberi tahu

args String: argumen perintah

Hasil
long ID pemanggilan perintah terjadwal.

Menampilkan
ConfigurationException
NoDeviceException

getCommandFileWatcher

public CommandFileWatcher getCommandFileWatcher ()

Dapatkan CommandFileWatcher yang sesuai untuk penjadwal ini

Hasil
CommandFileWatcher

getExecutingCommandCount

public int getExecutingCommandCount ()

Menampilkan jumlah Perintah dalam status yang sedang dieksekusi.

Hasil
int

getHostState

public CommandScheduler.HostState getHostState ()

Hasil
CommandScheduler.HostState

getInvocationInfo

public String getInvocationInfo (int invocationId)

Menampilkan informasi tentang pemanggilan dengan menentukan ID pemanggilan.

Parameter
invocationId int: ID pelacakan pemanggilan.

Hasil
String String yang berisi informasi tentang pemanggilan.

getLastInvocationExitCode

public CommandRunner.ExitCode getLastInvocationExitCode ()

Menampilkan kode error dari pemanggilan terakhir yang dijalankan. Menampilkan 0 (tanpa error), jika belum ada pemanggilan yang dijalankan.

Hasil
CommandRunner.ExitCode

getLastInvocationThrowable

public Throwable getLastInvocationThrowable ()

Menampilkan Throwable dari pemanggilan terakhir yang dijalankan. Menampilkan null, jika tidak ada throwable yang tersedia.

Hasil
Throwable

getReadyCommandCount

public int getReadyCommandCount ()

Menampilkan jumlah Perintah dalam status siap di antrean.

Hasil
int

getShutdownTimeout

public long getShutdownTimeout ()

Hasil
long

isDeviceInInvocationThread

public boolean isDeviceInInvocationThread (ITestDevice device)

Menampilkan nilai benar jika perangkat digunakan oleh thread pemanggilan aktif.

Parameter
device ITestDevice

Hasil
boolean

isShuttingDown

public boolean isShuttingDown ()

Hasil
boolean

notifyFileChanged

public void notifyFileChanged (File cmdFile, 
                 extraArgs)

Parameter
cmdFile File

extraArgs

removeAllCommands

public void removeAllCommands ()

Menghapus semua perintah dari penjadwal

lari

public void run ()

Blok eksekusi utama thread ini.

setClearcutClient

public void setClearcutClient (ClearcutClient client)

Menetapkan klien untuk melaporkan data harness

Parameter
client ClearcutClient

setMaxPollTime

public void setMaxPollTime (long polling)

Parameter
polling long

setPrintSchedulingWarning

public void setPrintSchedulingWarning (boolean print)

Parameter
print boolean

shouldShutdownOnCmdfileError

public boolean shouldShutdownOnCmdfileError ()

Menampilkan benar jika kita perlu mematikan penjadwal saat terjadi error perintah

Hasil
boolean

shutdown

public void shutdown (boolean notifyStop)

Mencoba mematikan penjadwal perintah dengan tuntas.

Parameter
notifyStop boolean: jika benar, akan memberi tahu pemanggilan penonaktifan TF.

shutdownHard

public void shutdownHard (boolean killAdb)

Mencoba mematikan penjadwal perintah secara paksa.

Mirip dengan shutdown(), tetapi juga akan menghentikan koneksi adb secara opsional, dalam upaya untuk 'mendorong' pemanggilan yang sedang berlangsung agar selesai lebih cepat.

Parameter
killAdb boolean

shutdownHard

public void shutdownHard ()

Mencoba mematikan penjadwal perintah secara paksa. Sama seperti shutdownHard(true).

shutdownOnEmpty

public void shutdownOnEmpty ()

Mirip dengan shutdown(), tetapi akan menunggu semua perintah dieksekusi sebelum keluar.

Perhatikan bahwa jika ada perintah dalam mode loop, penjadwal tidak akan pernah keluar.

start

public void start ()

Memulai penjadwal, termasuk menyiapkan logging, inisialisasi DeviceManager, dll.

stopInvocation

public boolean stopInvocation (ITestInvocation invocation)

Menghentikan pemanggilan yang sedang berjalan.

Parameter
invocation ITestInvocation

Hasil
boolean benar jika pemanggilan dihentikan, salah jika tidak

stopInvocation

public boolean stopInvocation (int invocationId, 
                String cause)

Hentikan pemanggilan yang sedang berjalan dengan menentukan ID-nya.

Parameter
invocationId int: ID pelacakan pemanggilan.

cause String: penyebab penghentian pemanggilan.

Hasil
boolean benar jika pemanggilan dihentikan, salah jika tidak

stopScheduling

public void stopScheduling ()

Menghentikan penjadwalan dan penerimaan pengujian baru, tetapi tidak menghentikan Tradefed. Tindakan ini dimaksudkan untuk mengaktifkan penonaktifan dua langkah, yang pertama menghentikan semua pengujian yang sedang berjalan, lalu menghentikan proses Tradefed.

Metode yang dilindungi

cleanUp

protected void cleanUp ()

Menutup log dan melakukan pembersihan lain yang diperlukan sebelum kita keluar.

Diekspos sehingga pengujian unit dapat melakukan mocking.

createConfiguration

protected IConfiguration createConfiguration (String[] args)

Parameter
args String

Hasil
IConfiguration

Menampilkan
ConfigurationException

createInvocationContext

protected IInvocationContext createInvocationContext ()

Hasil
IInvocationContext

dryRunCommandReporting

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

Menentukan apakah perintah tertentu merupakan uji coba. Jika perintah adalah uji coba, validasikan perintah tersebut. Jika ada masalah konfigurasi, ConfigurationException akan ditampilkan.

Parameter
handler ICommandScheduler.IScheduledInvocationListener: ERROR(/InvocationEventHandler) untuk melaporkan peristiwa validasi uji coba.

config IConfiguration

Hasil
void benar jika perintah adalah uji coba, salah jika tidak.

Menampilkan
com.android.tradefed.config.ConfigurationException
ConfigurationException

execCommand

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

Parameter
context IInvocationContext

listener ICommandScheduler.IScheduledInvocationListener

reservedDevices

args String

Hasil
long

Menampilkan
ConfigurationException

getConfigFactory

protected IConfigurationFactory getConfigFactory ()

Metode factory untuk mendapatkan referensi ke IConfigurationFactory

Hasil
IConfigurationFactory IConfigurationFactory yang akan digunakan

getDeviceManagementServer

protected DeviceManagementGrpcServer getDeviceManagementServer ()

Hasil
DeviceManagementGrpcServer

getDeviceManager

protected IDeviceManager getDeviceManager ()

Metode factory untuk mendapatkan referensi ke IDeviceManager

Hasil
IDeviceManager IDeviceManager yang akan digunakan

getFeatureServer

protected TradefedFeatureServer getFeatureServer ()

Hasil
TradefedFeatureServer

getHostOptions

protected IHostOptions getHostOptions ()

Hasil
IHostOptions

getKeyStoreClient

protected IKeyStoreClient getKeyStoreClient ()

Mengambil IKeyStoreClient menggunakan IKeyStoreFactory yang dideklarasikan di IGlobalConfiguration atau null jika tidak ada yang ditentukan.

Hasil
IKeyStoreClient IKeyStoreClient

getTestInvocationManagementServer

protected TestInvocationManagementServer getTestInvocationManagementServer ()

Hasil
TestInvocationManagementServer

initLogging

protected void initLogging ()

Menginisialisasi log ddmlib.

Diekspos sehingga pengujian unit dapat melakukan mocking.

isShutdown

protected boolean isShutdown ()

Hasil
boolean

processReadyCommands

protected void processReadyCommands (IDeviceManager manager)

Parameter
manager IDeviceManager