Penjadwal Perintah

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 untuk dijalankan berdasarkan total jumlah eksekusi yang berjalan baik. mis. yang jarang atau berjalan cepat 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 pendelegasi berdasarkan command line untuk melihat apakah kita perlu mendelegasikan operasi.

static createReleaseMap(IInvocationContext context, Throwable e)

Buat peta status perangkat agar dapat dirilis dengan tepat.

ISandbox createSandbox()

Buat ISandbox yang akan digunakan pemanggilan untuk dijalankan.

void displayCommandQueue(PrintWriter printWriter)

Menghasilkan info debug mendetail tentang status antrean eksekusi perintah.

void displayCommandsInfo(PrintWriter printWriter, String regex)

Menghasilkan daftar perintah saat ini.

void displayInvocationsInfo(PrintWriter printWriter)

Menampilkan daftar pemanggilan saat ini.

void dumpCommandsXml(PrintWriter printWriter, String regex)

Membuang file xml yang diperluas untuk perintah dengan semua Nilai Option ditetapkan untuk semua perintah saat ini.

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

Jalankan perintah secara langsung di perangkat yang sudah dialokasikan.

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

Langsung mengalokasikan perangkat dan mengeksekusi perintah tanpa menambahkannya ke antrean perintah menggunakan IInvocationContext yang sudah ada.

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

Langsung mengalokasikan perangkat dan mengeksekusi perintah tanpa menambahkannya ke antrean perintah.

CommandFileWatcher getCommandFileWatcher()

Mendapatkan CommandFileWatcher yang sesuai untuk penjadwal ini

int getExecutingCommandCount()

Menampilkan jumlah Perintah dalam status eksekusi.

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

Menampilkan informasi tentangbu pemanggilan yang menentukan ID pemanggilan.

CommandRunner.ExitCode getLastInvocationExitCode()

Menampilkan kode error dari panggilan terakhir yang berjalan.

Throwable getLastInvocationThrowable()

Menampilkan Throwable dari pemanggilan terakhir yang berjalan.

int getReadyCommandCount()

Menampilkan jumlah Perintah dalam status siap di antrean.

long getShutdownTimeout()
boolean isDeviceInInvocationThread(ITestDevice device)

Menampilkan true (benar) jika perangkat digunakan oleh thread pemanggilan aktif.

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

Hapus semua perintah dari penjadwal

void run()

Blok eksekusi utama dari thread ini.

void setClearcutClient(ClearcutClient client)

Menetapkan klien untuk melaporkan data memanfaatkan

boolean shouldShutdownOnCmdfileError()

Menampilkan true (benar) jika kita perlu mematikan penjadwal saat terjadi error perintah.

void shutdown(boolean notifyStop)

Mencoba mematikan penjadwal perintah dengan baik.

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 dijalankan sebelum keluar.

void start()

Memulai penjadwal termasuk penyiapan logging, init DeviceManager, dll.

boolean stopInvocation(ITestInvocation invocation)

Menghentikan pemanggilan yang berjalan.

boolean stopInvocation(int invocationId, String cause)

Hentikan pemanggilan yang sedang berjalan dengan menentukan ID-nya.

void stopScheduling()

Menghentikan penjadwalan dan menerima 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 dalam IGlobalConfiguration atau null jika tidak ada yang ditentukan.

TestInvocationManagementServer getTestInvocationManagementServer()
void initLogging()

Melakukan inisialisasi log ddmlib.

boolean isShutdown()
void processReadyCommands(IDeviceManager manager)

Konstruktor publik

Penjadwal Perintah

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 sebuah {i>instance<i} dari konfigurasi yang akan dijalankan dan argumen.

Jika "--help" tertentu, teks bantuan untuk konfigurasi akan dimunculkan ke {i>stdout<i}. Jika tidak, konfigurasi akan ditambahkan ke antrean untuk dijalankan.

Parameter
args String: argumen konfigurasi.

Hasil
Pair<Boolean, Integer> Sepasang nilai, nilai pertama adalah true Boolean jika perintah ditambahkan memulai proyek. Nilai kedua adalah id pelacak perintah yang diketahui(nilai non-negatif) jika perintah berhasil ditambahkan, tampilkan 0 saat perintah ditambahkan untuk semua perangkat, jika tidak -1.

Menampilkan
ConfigurationException

addCommandFile

public void addCommandFile (String cmdFilePath, 
                 extraArgs)

Menambahkan semua perintah dari file tertentu ke penjadwal

Parameter
cmdFilePath String: jalur sistem file dari file perintah

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

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 pendelegasi berdasarkan command line untuk melihat apakah kita perlu mendelegasikan operasi.

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 dirilis dengan tepat.

Parameter
context IInvocationContext

e Throwable

Hasil

buatSandbox

public ISandbox createSandbox ()

Buat ISandbox yang akan digunakan pemanggilan untuk dijalankan.

Hasil
ISandbox

displayCommandQueue

public void displayCommandQueue (PrintWriter printWriter)

Menghasilkan info debug mendetail tentang status antrean eksekusi perintah.

displayCommandsInfo

public void displayCommandsInfo (PrintWriter printWriter, 
                String regex)

Menghasilkan daftar perintah saat ini.

Parameter
printWriter PrintWriter: ERROR(/PrintWriter) yang menjadi target output.

regex String: ekspresi reguler yang harus dicocokkan dengan perintah agar 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 menjadi target output.

{i>dumpCommandsXml<i}

public void dumpCommandsXml (PrintWriter printWriter, 
                String regex)

Membuang file xml yang diperluas untuk perintah dengan semua Nilai Option ditetapkan untuk semua perintah saat ini.

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

regex String: ekspresi reguler yang harus dicocokkan dengan perintah agar jenis file xml yang akan dibuang. Jika null, maka semua perintah akan dibuang.

{i>execCommand<i}

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

Jalankan 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 panggilan perintah terjadwal.

Menampilkan
ConfigurationException

{i>execCommand<i}

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

Langsung mengalokasikan perangkat dan mengeksekusi perintah tanpa menambahkannya ke antrean perintah menggunakan IInvocationContext yang sudah ada.

Parameter
context IInvocationContext: IInvocationContext yang sudah ada.

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

args String: argumen perintah

Hasil
long

Menampilkan
ConfigurationException
NoDeviceException

{i>execCommand<i}

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

Langsung mengalokasikan perangkat dan mengeksekusi perintah tanpa menambahkannya ke antrean perintah.

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

args String: argumen perintah

Hasil
long ID panggilan perintah terjadwal.

Menampilkan
ConfigurationException
NoDeviceException

getCommandFileWatcher

public CommandFileWatcher getCommandFileWatcher ()

Mendapatkan CommandFileWatcher yang sesuai untuk penjadwal ini

Hasil
CommandFileWatcher

getExecutingCommandCount

public int getExecutingCommandCount ()

Menampilkan jumlah Perintah dalam status eksekusi.

Hasil
int

getHostState

public CommandScheduler.HostState getHostState ()

Hasil
CommandScheduler.HostState

getInvocationInfo

public String getInvocationInfo (int invocationId)

Menampilkan informasi tentangbu pemanggilan yang menentukan ID pemanggilan.

Parameter
invocationId int: ID pelacakan panggilan.

Hasil
String String yang berisi informasi tentang panggilan.

getLastInvocationExitCode

public CommandRunner.ExitCode getLastInvocationExitCode ()

Menampilkan kode error dari panggilan terakhir yang berjalan. Menampilkan 0 (tidak ada error), jika belum ada pemanggilan yang berjalan.

Hasil
CommandRunner.ExitCode

getLastInvocationThrowable

public Throwable getLastInvocationThrowable ()

Menampilkan Throwable dari pemanggilan terakhir yang berjalan. 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

isDeviceInvocationThread

public boolean isDeviceInInvocationThread (ITestDevice device)

Menampilkan true (benar) jika perangkat digunakan oleh thread pemanggilan aktif.

Parameter
device ITestDevice

Hasil
boolean

Mematikan

public boolean isShuttingDown ()

Hasil
boolean

AlertsFileChanges

public void notifyFileChanged (File cmdFile, 
                 extraArgs)

Parameter
cmdFile File

extraArgs

removeAllCommands

public void removeAllCommands ()

Hapus semua perintah dari penjadwal

lari

public void run ()

Blok eksekusi utama dari thread ini.

setClearcutClient

public void setClearcutClient (ClearcutClient client)

Menetapkan klien untuk melaporkan data memanfaatkan

Parameter
client ClearcutClient

seharusnyaShutdownOnCmdfileError

public boolean shouldShutdownOnCmdfileError ()

Menampilkan true (benar) jika kita perlu mematikan penjadwal saat terjadi error perintah.

Hasil
boolean

matikan

public void shutdown (boolean notifyStop)

Mencoba mematikan penjadwal perintah dengan baik.

Parameter
notifyStop boolean: jika true (benar), memberi tahu panggilan penonaktifan TF.

shutdownHard

public void shutdownHard (boolean killAdb)

Mencoba mematikan penjadwal perintah secara paksa.

Serupa dengan shutdown(), tetapi juga akan secara opsional mematikan koneksi adb, dalam berupaya untuk 'menginspirasi' 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 dijalankan sebelum keluar.

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

start

public void start ()

Memulai penjadwal termasuk penyiapan logging, init DeviceManager, dll.

stopInvocation

public boolean stopInvocation (ITestInvocation invocation)

Menghentikan pemanggilan yang berjalan.

Parameter
invocation ITestInvocation

Hasil
boolean true jika panggilan dihentikan, false 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 menghentikan pemanggilan.

Hasil
boolean true jika panggilan dihentikan, false jika tidak

stopScheduling

public void stopScheduling ()

Menghentikan penjadwalan dan menerima pengujian baru, tetapi tidak menghentikan Tradefed. Hal ini dimaksudkan untuk memungkinkan penonaktifan dua langkah, pertama-tama kita menghabiskan semua pengujian yang berjalan, lalu hentikan Tradefed {i>checkout<i}.

Metode yang dilindungi

pembersihan

protected void cleanUp ()

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

Diekspos sehingga pengujian unit dapat meniru.

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 perintahnya merupakan uji coba, lakukan validasi. Jika ada masalah konfigurasi, tindakan ini akan menampilkan ConfigurationException.

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

config IConfiguration

Hasil
void benar (true) jika perintahnya merupakan uji coba, salah (false) jika tidak.

Menampilkan
com.android.tradefed.config.ConfigurationException
ConfigurationException

{i>execCommand<i}

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 untuk digunakan

getDeviceManagementServer

protected DeviceManagementGrpcServer getDeviceManagementServer ()

Hasil
DeviceManagementGrpcServer

getDeviceManager

protected IDeviceManager getDeviceManager ()

Metode factory untuk mendapatkan referensi ke IDeviceManager

Hasil
IDeviceManager IDeviceManager untuk digunakan

getFeatureServer

protected TradefedFeatureServer getFeatureServer ()

Hasil
TradefedFeatureServer

getHostOptions

protected IHostOptions getHostOptions ()

Hasil
IHostOptions

getKeyStoreClient

protected IKeyStoreClient getKeyStoreClient ()

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

Hasil
IKeyStoreClient KlienIKeyStore

getTestInvocationManagementServer

protected TestInvocationManagementServer getTestInvocationManagementServer ()

Hasil
TestInvocationManagementServer

initLogging

protected void initLogging ()

Melakukan inisialisasi log ddmlib.

Diekspos sehingga pengujian unit dapat meniru.

dimatikan

protected boolean isShutdown ()

Hasil
boolean

processReadyCommands

protected void processReadyCommands (IDeviceManager manager)

Parameter
manager IDeviceManager