Penjadwal Perintah

public class CommandScheduler
extends Object implements ICommandScheduler

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


Penjadwal untuk menjalankan perintah TradeFederation di semua perangkat yang tersedia.

Akan mencoba memprioritaskan perintah untuk dijalankan berdasarkan jumlah total waktu eksekusinya. misalnya perintah yang jarang atau berjalan cepat akan diprioritaskan dibandingkan 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) addCommandFile (String cmdFilePath, extraArgs)

Menambahkan semua perintah dari file yang diberikan ke penjadwal

void await ()

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

static TradefedDelegator checkDelegation (String[] args)

Buat delegasi berdasarkan baris perintah untuk melihat apakah kita perlu mendelegasikan proses tersebut.

static createReleaseMap ( IInvocationContext context, Throwable e)

Buat peta status perangkat sehingga dapat dirilis dengan tepat.

ISandbox createSandbox ()

Buat ISandbox yang akan digunakan untuk menjalankan pemanggilan.

void displayCommandQueue (PrintWriter printWriter)

Keluarkan info debug terperinci tentang status antrian eksekusi perintah.

void displayCommandsInfo (PrintWriter printWriter, String regex)

Keluarkan daftar perintah saat ini.

void displayInvocationsInfo (PrintWriter printWriter)

Menampilkan daftar pemanggilan saat ini.

void dumpCommandsXml (PrintWriter printWriter, String regex)

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

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

Langsung jalankan perintah pada perangkat yang sudah dialokasikan.

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

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

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

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

CommandFileWatcher getCommandFileWatcher ()

Dapatkan CommandFileWatcher yang sesuai untuk penjadwal ini

int getExecutingCommandCount ()

Mengembalikan jumlah Perintah dalam status eksekusi.

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

Mengembalikan informasi tentang pemanggilan tetapi menentukan id pemanggilan.

CommandRunner.ExitCode getLastInvocationExitCode ()

Kembalikan kode kesalahan dari pemanggilan terakhir yang dijalankan.

Throwable getLastInvocationThrowable ()

Mengembalikan Throwable dari pemanggilan terakhir yang dijalankan.

int getReadyCommandCount ()

Mengembalikan jumlah Perintah dalam keadaan siap dalam antrian.

long getShutdownTimeout ()
boolean isDeviceInInvocationThread ( ITestDevice device)

Mengembalikan nilai benar jika perangkat digunakan oleh thread pemanggilan aktif.

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

Hapus semua perintah dari penjadwal

void run ()

Blok eksekusi utama dari thread ini.

void setClearcutClient (ClearcutClient client)

Atur klien untuk melaporkan data harness

boolean shouldShutdownOnCmdfileError ()

Mengembalikan nilai true jika kita perlu mematikan penjadwal karena kesalahan perintah

void shutdown (boolean notifyStop)

Cobalah untuk mematikan penjadwal perintah dengan baik.

void shutdownHard (boolean killAdb)

Mencoba mematikan paksa penjadwal perintah.

void shutdownHard ()

Mencoba mematikan paksa penjadwal perintah.

void shutdownOnEmpty ()

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

void start ()

Memulai penjadwal termasuk pengaturan logging, init DeviceManager , dll

boolean stopInvocation ( ITestInvocation invocation)

Hentikan pemanggilan yang sedang berjalan.

boolean stopInvocation (int invocationId, String cause)

Hentikan pemanggilan yang sedang berjalan dengan menentukan idnya.

void stopScheduling ()

Menghentikan penjadwalan dan menerima tes 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 yang diberikan bersifat kering.

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

Metode pabrik untuk mendapatkan referensi ke IConfigurationFactory

DeviceManagementGrpcServer getDeviceManagementServer ()
IDeviceManager getDeviceManager ()

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

Penjadwal Perintah

public CommandScheduler ()

Membuat CommandScheduler .

Catatan: start harus dipanggil sebelum digunakan.

Metode publik

tambahkanPerintah

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

Menambahkan perintah ke penjadwal.

Sebuah perintah pada dasarnya adalah sebuah contoh 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 antrian untuk dijalankan.

Parameter
args String : argumen konfigurasi.

Kembali
Pair <Boolean, Integer> Sepasang 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, kembalikan 0 ketika perintah ditambahkan untuk semua perangkat, jika tidak -1.

Melempar
ConfigurationException

tambahkanCommandFile

public void addCommandFile (String cmdFilePath, 
                 extraArgs)

Menambahkan semua perintah dari file yang diberikan ke penjadwal

Parameter
cmdFilePath String : jalur sistem file dari file perintah

extraArgs : ERROR(/List) argumen String untuk ditambahkan ke setiap perintah yang diurai dari file. Boleh kosong tetapi tidak boleh nol.

Melempar
ConfigurationException

menunggu

public void await ()

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

checkDelegasi

public static TradefedDelegator checkDelegation (String[] args)

Buat delegasi berdasarkan baris perintah untuk melihat apakah kita perlu mendelegasikan proses tersebut.

Parameter
args String

Kembali
TradefedDelegator

Melempar
com.android.tradefed.config.ConfigurationException
ConfigurationException

buatReleaseMap

public static  createReleaseMap (IInvocationContext context, 
                Throwable e)

Buat peta status perangkat sehingga dapat dirilis dengan tepat.

Parameter
context IInvocationContext

e Throwable

Kembali

buatKotak Pasir

public ISandbox createSandbox ()

Buat ISandbox yang akan digunakan untuk menjalankan pemanggilan.

Kembali
ISandbox

tampilanCommandQueue

public void displayCommandQueue (PrintWriter printWriter)

Keluarkan info debug terperinci tentang status antrian eksekusi perintah.

tampilanCommandsInfo

public void displayCommandsInfo (PrintWriter printWriter, 
                String regex)

Keluarkan daftar perintah saat ini.

Parameter
printWriter PrintWriter : ERROR(/PrintWriter) yang akan dijadikan output.

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

displayInvocationsInfo

public void displayInvocationsInfo (PrintWriter printWriter)

Menampilkan daftar pemanggilan saat ini.

Parameter
printWriter PrintWriter : ERROR(/PrintWriter) yang akan dijadikan output.

dumpCommandsXml

public void dumpCommandsXml (PrintWriter printWriter, 
                String regex)

Buang 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 perintahnya harus dicocokkan agar file xml dapat dibuang. Jika null, maka semua perintah akan dibuang.

perintah eksekutif

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

Langsung jalankan perintah pada perangkat yang sudah dialokasikan.

Parameter
listener ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener yang akan diberitahukan

reservedDevices : ERROR(/List ) ERROR(/List ) menggunakan

args String : argumen perintah

Kembali
long Id pemanggilan perintah terjadwal.

Melempar
ConfigurationException

perintah eksekutif

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

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

Parameter
context IInvocationContext : IInvocationContext yang sudah ada.

listener ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener yang akan diberitahukan

args String : argumen perintah

Kembali
long

Melempar
ConfigurationException
NoDeviceException

perintah eksekutif

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

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

Parameter
listener ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener yang akan diberitahukan

args String : argumen perintah

Kembali
long Id pemanggilan perintah terjadwal.

Melempar
ConfigurationException
NoDeviceException

dapatkanCommandFileWatcher

public CommandFileWatcher getCommandFileWatcher ()

Dapatkan CommandFileWatcher yang sesuai untuk penjadwal ini

Kembali
CommandFileWatcher

dapatkanExecutingCommandCount

public int getExecutingCommandCount ()

Mengembalikan jumlah Perintah dalam status eksekusi.

Kembali
int

dapatkanHostState

public CommandScheduler.HostState getHostState ()

Kembali
CommandScheduler.HostState

dapatkanInvokasiInfo

public String getInvocationInfo (int invocationId)

Mengembalikan informasi tentang pemanggilan tetapi menentukan id pemanggilan.

Parameter
invocationId int : id pelacakan pemanggilan.

Kembali
String Sebuah String yang berisi informasi tentang pemanggilan.

dapatkanLastInvocationExitCode

public CommandRunner.ExitCode getLastInvocationExitCode ()

Kembalikan kode kesalahan dari pemanggilan terakhir yang dijalankan. Kembalikan 0 (tidak ada kesalahan), jika belum ada pemanggilan yang dijalankan.

Kembali
CommandRunner.ExitCode

getLastInvocationThrowable

public Throwable getLastInvocationThrowable ()

Mengembalikan Throwable dari pemanggilan terakhir yang dijalankan. Kembalikan null, jika tidak ada barang yang dapat dibuang.

Kembali
Throwable

dapatkanReadyCommandCount

public int getReadyCommandCount ()

Mengembalikan jumlah Perintah dalam keadaan siap dalam antrian.

Kembali
int

dapatkanShutdownTimeout

public long getShutdownTimeout ()

Kembali
long

isDeviceInInvocationThread

public boolean isDeviceInInvocationThread (ITestDevice device)

Mengembalikan nilai benar jika perangkat digunakan oleh thread pemanggilan aktif.

Parameter
device ITestDevice

Kembali
boolean

adalah ShuttingDown

public boolean isShuttingDown ()

Kembali
boolean

beri tahuFileChanged

public void notifyFileChanged (File cmdFile, 
                 extraArgs)

Parameter
cmdFile File

extraArgs

hapusSemua Perintah

public void removeAllCommands ()

Hapus semua perintah dari penjadwal

berlari

public void run ()

Blok eksekusi utama dari thread ini.

setClearcutClient

public void setClearcutClient (ClearcutClient client)

Atur klien untuk melaporkan data harness

Parameter
client ClearcutClient

harusShutdownOnCmdfileError

public boolean shouldShutdownOnCmdfileError ()

Mengembalikan nilai true jika kita perlu mematikan penjadwal karena kesalahan perintah

Kembali
boolean

matikan

public void shutdown (boolean notifyStop)

Cobalah untuk mematikan penjadwal perintah dengan baik.

Parameter
notifyStop boolean : jika benar, memberitahukan pemanggilan penutupan TF.

penutupan Keras

public void shutdownHard (boolean killAdb)

Mencoba mematikan paksa penjadwal perintah.

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

Parameter
killAdb boolean

penutupan Keras

public void shutdownHard ()

Mencoba mematikan paksa penjadwal perintah. Sama seperti shutdownHard(benar).

shutdownOnEmpty

public void shutdownOnEmpty ()

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

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

awal

public void start ()

Memulai penjadwal termasuk pengaturan logging, init DeviceManager , dll

stopInvokasi

public boolean stopInvocation (ITestInvocation invocation)

Hentikan pemanggilan yang sedang berjalan.

Parameter
invocation ITestInvocation

Kembali
boolean benar jika pemanggilan dihentikan, salah jika sebaliknya

stopInvokasi

public boolean stopInvocation (int invocationId, 
                String cause)

Hentikan pemanggilan yang sedang berjalan dengan menentukan idnya.

Parameter
invocationId int : id pelacakan pemanggilan.

cause String : penyebab penghentian pemanggilan.

Kembali
boolean benar jika pemanggilan dihentikan, salah jika sebaliknya

berhenti Penjadwalan

public void stopScheduling ()

Menghentikan penjadwalan dan menerima tes baru tetapi tidak menghentikan Tradefed. Hal ini dimaksudkan untuk mengaktifkan penghentian dua langkah di mana pertama-tama kita menguras semua pengujian yang sedang berjalan, kemudian menghentikan proses Tradefed.

Metode yang dilindungi

membersihkan

protected void cleanUp ()

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

Diekspos sehingga pengujian unit dapat diolok-olok.

buatKonfigurasi

protected IConfiguration createConfiguration (String[] args)

Parameter
args String

Kembali
IConfiguration

Melempar
ConfigurationException

createInvocationContext

protected IInvocationContext createInvocationContext ()

Kembali
IInvocationContext

Pelaporan Perintah DryRun

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

Menentukan apakah perintah yang diberikan bersifat kering. Jika perintahnya adalah uji coba, validasilah. Jika ada masalah konfigurasi, ConfigurationException akan muncul.

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

config IConfiguration

Kembali
void benar jika perintahnya adalah uji coba, salah jika sebaliknya.

Melempar
com.android.tradefed.config.ConfigurationException
ConfigurationException

perintah eksekutif

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

Parameter
context IInvocationContext

listener ICommandScheduler.IScheduledInvocationListener

reservedDevices

args String

Kembali
long

Melempar
ConfigurationException

dapatkanConfigFactory

protected IConfigurationFactory getConfigFactory ()

Metode pabrik untuk mendapatkan referensi ke IConfigurationFactory

Kembali
IConfigurationFactory IConfigurationFactory yang akan digunakan

dapatkanDeviceManagementServer

protected DeviceManagementGrpcServer getDeviceManagementServer ()

Kembali
DeviceManagementGrpcServer

dapatkanDeviceManager

protected IDeviceManager getDeviceManager ()

Metode pabrik untuk mendapatkan referensi ke IDeviceManager

Kembali
IDeviceManager IDeviceManager yang akan digunakan

dapatkanFeatureServer

protected TradefedFeatureServer getFeatureServer ()

Kembali
TradefedFeatureServer

dapatkanHostOptions

protected IHostOptions getHostOptions ()

Kembali
IHostOptions

dapatkanKeyStoreClient

protected IKeyStoreClient getKeyStoreClient ()

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

Kembali
IKeyStoreClient Klien IKeyStore

getTestInvocationManagementServer

protected TestInvocationManagementServer getTestInvocationManagementServer ()

Kembali
TestInvocationManagementServer

initLogging

protected void initLogging ()

Menginisialisasi log ddmlib.

Diekspos sehingga pengujian unit dapat diolok-olok.

adalah Shutdown

protected boolean isShutdown ()

Kembali
boolean

prosesSiapPerintah

protected void processReadyCommands (IDeviceManager manager)

Parameter
manager IDeviceManager