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 untuk dijalankan berdasarkan total jumlah waktu eksekusinya. Misalnya, perintah 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)

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)

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

Langsung jalankan perintah di perangkat yang telah dialokasikan.

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

Jalankan perintah secara langsung di perangkat yang telah 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)

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

Hapus semua perintah dari penjadwal

void run()

Blok eksekusi utama dari thread ini.

void setClearcutClient(ClearcutClient client)

Menetapkan klien untuk melaporkan data harness

boolean shouldShutdownOnCmdfileError()

Menampilkan true jika kita perlu menonaktifkan penjadwal saat terjadi error perintah

void shutdown(boolean notifyStop)

Mencoba menonaktifkan penjadwal perintah dengan tuntas.

void shutdownHard(boolean killAdb)

Mencoba menonaktifkan 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 penyiapan 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()

Berhenti menjadwalkan 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 adalah 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()

Melakukan inisialisasi 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> Sepasang nilai, nilai pertama adalah true Boolean jika perintah berhasil ditambahkan. 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 file perintah

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

Menampilkan
ConfigurationException

await

public void await ()

Menunggu penjadwal mulai berjalan, termasuk menunggu penyelesaian pengalihan dari TF lama jika berlaku.

checkDelegation

public static TradefedDelegator checkDelegation (String[] args)

Buat delegator 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

createSandbox

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)

Menampilkan daftar perintah saat ini.

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

regex String: ekspresi reguler yang harus dicocokkan dengan perintah 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 menghasilkan 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 harus dicocokkan dengan perintah agar file XML di-dump. Jika null, semua perintah akan di-dump.

execCommand

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

Langsung jalankan perintah di perangkat yang telah 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)

Jalankan perintah secara langsung di perangkat yang telah 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

{i>execCommand<i}

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

Secara langsung mengalokasikan perangkat 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 ()

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

Hasil
String String yang berisi informasi tentang pemanggilan.

getLastInvocationExitCode

public CommandRunner.ExitCode getLastInvocationExitCode ()

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

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

isDeviceInInvocationThread

public boolean isDeviceInInvocationThread (ITestDevice device)

Menampilkan nilai benar jika perangkat digunakan oleh thread pemanggilan aktif.

Parameter
device ITestDevice

Hasil
boolean

Mematikan

public boolean isShuttingDown ()

Hasil
boolean

AlertsFileChange

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 dari thread ini.

setClearcutClient

public void setClearcutClient (ClearcutClient client)

Menetapkan klien untuk melaporkan data harness

Parameter
client ClearcutClient

shouldShutdownOnCmdfileError

public boolean shouldShutdownOnCmdfileError ()

Menampilkan true jika kita perlu menonaktifkan penjadwal saat terjadi error perintah

Hasil
boolean

shutdown

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 menonaktifkan penjadwal perintah secara paksa.

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

Parameter
killAdb boolean

shutdownHard

public void shutdownHard ()

Mencoba menonaktifkan 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 penyiapan logging, init DeviceManager, dll.

stopInvocation

public boolean stopInvocation (ITestInvocation invocation)

Menghentikan pemanggilan yang sedang berjalan.

Parameter
invocation ITestInvocation

Hasil
boolean true jika pemanggilan 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 penghentian pemanggilan.

Hasil
boolean true jika panggilan dihentikan, false jika tidak

stopScheduling

public void stopScheduling ()

Berhenti menjadwalkan dan menerima pengujian baru, tetapi tidak menghentikan Tradefed. Hal ini dimaksudkan untuk mengaktifkan penonaktifan dua langkah, yaitu pertama-tama kita menghabiskan 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 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 adalah uji coba. Jika perintah adalah uji coba, validasi perintah tersebut. Jika ada masalah konfigurasi, ConfigurationException akan ditampilkan.

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

config IConfiguration

Hasil
void benar jika perintah adalah dry run, salah 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 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 KlienIKeyStore

getTestInvocationManagementServer

protected TestInvocationManagementServer getTestInvocationManagementServer ()

Hasil
TestInvocationManagementServer

initLogging

protected void initLogging ()

Menginisialisasi log ddmlib.

Ditampilkan agar pengujian unit dapat mengejek.

isShutdown

protected boolean isShutdown ()

Hasil
boolean

processReadyCommands

protected void processReadyCommands (IDeviceManager manager)

Parameter
manager IDeviceManager