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 eksekusi yang berjalan. Misalnya, perintah yang jarang atau cepat berjalan akan diprioritaskan daripada perintah yang berjalan lama.

Berjalan selamanya di latar belakang hingga dimatikan.

Ringkasan

Class bertingkat

enum CommandScheduler.HostState

Enum dari berbagai status host  

Konstruktor publik

CommandScheduler()

Membuat CommandScheduler.

Metode publik

boolean 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 pengalihan dari TF lama selesai jika berlaku.

static TradefedDelegator checkDelegation(String[] args)

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

void completeHandover()

Memberi tahu penjadwal perintah bahwa urutan handover yang dimulai telah selesai sepenuhnya, dan harus menginisialisasi ulang pengelola jarak jauhnya di port default.

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.

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

Langsung jalankan perintah di perangkat yang telah dialokasikan.

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

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

Secara langsung mengalokasikan perangkat dan menjalankan 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()
void handoverInitiationComplete()

Memberi tahu penjadwal perintah bahwa pertukaran handover awal perangkat dan perintah yang digunakan telah selesai, dan dapat mulai menjadwalkan operasi.

boolean handoverShutdown(int handoverPort)

Memulai shutdown() dan menyerahkan ke proses tradefed lain di host yang sama.

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

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

Mencoba menonaktifkan penjadwal perintah dengan tuntas.

void shutdownHard(boolean killAdb)

Mencoba menonaktifkan penjadwal perintah secara paksa.

void shutdownHard()

Mencoba menonaktifkan 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.

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 factory untuk mendapatkan referensi ke IConfigurationFactory

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.

void initLogging()

Menginisialisasi log ddmlib.

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

Tunggu hingga semua thread pemanggilan selesai.

Konstruktor publik

CommandScheduler

public CommandScheduler ()

Membuat CommandScheduler.

Catatan: start harus dipanggil sebelum digunakan.

Metode publik

addCommand

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

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 untuk ditambahkan ke setiap perintah yang diuraikan dari file. Dapat kosong, tetapi tidak boleh null.

Menampilkan
ConfigurationException

menunggu

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
ConfigurationException

completeHandover

public void completeHandover ()

Memberi tahu penjadwal perintah bahwa urutan handover yang dimulai telah selesai sepenuhnya, dan harus menginisialisasi ulang pengelola jarak jauhnya di port default.

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)

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 menghasilkan output.

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

Menampilkan
ConfigurationException

execCommand

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

Menampilkan
ConfigurationException
NoDeviceException

execCommand

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

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 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 (tidak ada 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

handoverInitiationComplete

public void handoverInitiationComplete ()

Memberi tahu penjadwal perintah bahwa pertukaran handover awal perangkat dan perintah yang digunakan telah selesai, dan dapat mulai menjadwalkan operasi.

handoverShutdown

public boolean handoverShutdown (int handoverPort)

Memulai shutdown() dan menyerahkan ke proses tradefed lain di host yang sama.

Penjadwal akan memberi tahu proses tradefed jarak jauh yang memproses port perangkat yang dibebaskan saat tersedia.

Parameter
handoverPort int

Hasil
boolean true jika inisialisasi handover berhasil, false jika tidak

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

Mencoba menonaktifkan penjadwal perintah dengan tuntas.

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

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

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

Metode yang dilindungi

cleanUp

protected void cleanUp ()

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

Ditampilkan agar pengujian unit dapat mengejek.

createConfiguration

protected IConfiguration createConfiguration (String[] args)

Parameter
args String

Hasil
IConfiguration

Menampilkan
ConfigurationException

createInvocationContext

protected IInvocationContext createInvocationContext ()

Hasil
IInvocationContext

getConfigFactory

protected IConfigurationFactory getConfigFactory ()

Metode factory untuk mendapatkan referensi ke IConfigurationFactory

Hasil
IConfigurationFactory IConfigurationFactory yang akan digunakan

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

initLogging

protected void initLogging ()

Menginisialisasi log ddmlib.

Ditampilkan agar pengujian unit dapat mengejek.

isShutdown

protected boolean isShutdown ()

Hasil
boolean

isShuttingDown

protected boolean isShuttingDown ()

Hasil
boolean

processReadyCommands

protected void processReadyCommands (IDeviceManager manager)

Parameter
manager IDeviceManager

waitForAllInvocationThreads

protected void waitForAllInvocationThreads ()

Tunggu hingga semua thread pemanggilan selesai.