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

Kelas bersarang

enum CommandScheduler.HostState

Enum status host yang berbeda

Konstruktor publik

CommandScheduler ()

Membuat CommandScheduler .

Metode publik

boolean 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.

void completeHandover ()

Memberi tahu penjadwal perintah bahwa urutan penyerahan yang dimulai telah selesai sepenuhnya, dan harus menginisialisasi ulang manajer jarak jauhnya pada port default.

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.

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

Langsung jalankan perintah pada perangkat yang sudah dialokasikan.

void 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.

void 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 ()
void handoverInitiationComplete ()

Memberi tahu penjadwal perintah bahwa pertukaran penyerahan awal perangkat dan perintah yang digunakan telah selesai, dan dapat memulai operasi penjadwalan.

boolean handoverShutdown (int handoverPort)

Memulai shutdown() dan penyerahan ke proses tradefed lain pada host yang sama.

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 ()

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.

Metode yang dilindungi

void cleanUp ()

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

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

Metode pabrik untuk mendapatkan referensi ke IConfigurationFactory

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.

void initLogging ()

Menginisialisasi log ddmlib.

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

Tunggu sampai semua thread pemanggilan selesai.

Konstruktor publik

Penjadwal Perintah

public CommandScheduler ()

Membuat CommandScheduler .

Catatan: start harus dipanggil sebelum digunakan.

Metode publik

tambahkanPerintah

public boolean 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
boolean true jika perintah berhasil ditambahkan

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
ConfigurationException

selesai serah terima

public void completeHandover ()

Memberi tahu penjadwal perintah bahwa urutan penyerahan yang dimulai telah selesai sepenuhnya, dan harus menginisialisasi ulang manajer jarak jauhnya pada port default.

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 void execCommand (ICommandScheduler.IScheduledInvocationListener listener, 
                ITestDevice device, 
                String[] args)

Langsung jalankan perintah pada perangkat yang sudah dialokasikan.

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

device ITestDevice : ITestDevice yang akan digunakan

args String : argumen perintah

Melempar
ConfigurationException

perintah eksekutif

public void 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

Melempar
ConfigurationException
NoDeviceException

perintah eksekutif

public void 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

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

serah terima Inisiasi Selesai

public void handoverInitiationComplete ()

Memberi tahu penjadwal perintah bahwa pertukaran penyerahan awal perangkat dan perintah yang digunakan telah selesai, dan dapat memulai operasi penjadwalan.

serah terimaShutdown

public boolean handoverShutdown (int handoverPort)

Memulai shutdown() dan penyerahan ke proses tradefed lain pada host yang sama.

Penjadwal akan menginformasikan proses pertukaran jarak jauh yang mendengarkan pada port perangkat yang dibebaskan tersebut saat sudah tersedia.

Parameter
handoverPort int

Kembali
boolean true jika inisiasi serah terima berhasil, false jika sebaliknya

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 ()

Cobalah untuk mematikan penjadwal perintah dengan baik.

Menghapus perintah yang menunggu untuk diuji, dan meminta agar semua pemanggilan yang sedang berlangsung ditutup dengan baik.

Setelah shutdown dipanggil, loop utama penjadwal akan menunggu hingga semua pemanggilan yang sedang berlangsung selesai sebelum keluar sepenuhnya.

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

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

dapatkanConfigFactory

protected IConfigurationFactory getConfigFactory ()

Metode pabrik untuk mendapatkan referensi ke IConfigurationFactory

Kembali
IConfigurationFactory IConfigurationFactory yang akan digunakan

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

initLogging

protected void initLogging ()

Menginisialisasi log ddmlib.

Diekspos sehingga pengujian unit dapat diolok-olok.

adalah Shutdown

protected boolean isShutdown ()

Kembali
boolean

adalah ShuttingDown

protected boolean isShuttingDown ()

Kembali
boolean

prosesSiapPerintah

protected void processReadyCommands (IDeviceManager manager)

Parameter
manager IDeviceManager

waitForAllInvocationThreads

protected void waitForAllInvocationThreads ()

Tunggu sampai semua thread pemanggilan selesai.