CommandScheduler

public class CommandScheduler
extends Thread implements ICommandScheduler

java.lang.Object
   ↳ java.lang.Thread
     ↳ com.android.tradefed.command.CommandScheduler


Mevcut tüm cihazlarda TradeFederation komutlarını çalıştırmak için bir planlayıcı.

Çalıştırılacak komutlara, yürütme sürelerinin toplam çalışma sayısına göre öncelik vermeye çalışır. Örneğin, seyrek veya hızlı çalışan komutlara, uzun süren komutlara göre öncelik verilir.

Kapatılana kadar arka planda süresiz olarak çalışır.

Özet

Herkese açık oluşturucular

CommandScheduler()

CommandScheduler oluşturur.

Herkese açık yöntemler

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

Planlayıcıya bir komut ekler.

void addCommandFile(String cmdFilePath, List<String> extraArgs)

Belirtilen dosyadaki tüm komutları planlayıcıya ekler.

void await()

Planlayıcının çalışmaya başlamasını bekler. Bu kapsamda, geçerliyse eski TF'den devretme işleminin tamamlanmasını da bekler.

static TradefedDelegator checkDelegation(String[] args)

Çalıştırmanın yetkilendirilmesi gerekip gerekmediğini görmek için komut satırına dayalı bir yetki veren kullanıcı oluşturun.

static Map<ITestDeviceFreeDeviceState> createReleaseMap(IInvocationContext context, Throwable e)

Cihaz durumunun haritasını oluşturarak cihazların uygun şekilde serbest bırakılmasını sağlayın.

ISandbox createSandbox()

Çağırma işleminin çalışmak için kullanacağı bir ISandbox oluşturun.

void displayCommandQueue(PrintWriter printWriter)

Komut yürütme sırasının durumu hakkında ayrıntılı hata ayıklama bilgileri verir.

void displayCommandsInfo(PrintWriter printWriter, String regex)

Mevcut komutların listesini gösterir.

void displayInvocationsInfo(PrintWriter printWriter)

Mevcut çağrıların listesini gösterir.

void dumpCommandsXml(PrintWriter printWriter, String regex)

Tüm geçerli komutlar için belirtilen tüm Option değerleriyle komutun genişletilmiş XML dosyasını dökümünü alır.

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

Komutu, halihazırda ayrılmış cihazda doğrudan yürütür.

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

Halihazırda mevcut bir IInvocationContext kullanarak, komut kuyruğuna eklemeden doğrudan bir cihaz ayırır ve komut yürütür.

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

Cihazı doğrudan ayırır ve komut kuyruğuna eklemeden komutu yürütür.

long execCommand(ICommandScheduler.IScheduledInvocationListener listener, List<ITestDevice> reservedDevices, String[] args)

Komutu, halihazırda ayrılmış cihazlarda doğrudan yürütür.

CommandFileWatcher getCommandFileWatcher()

Bu planlayıcı için uygun CommandFileWatcher'ı alır.

int getExecutingCommandCount()

Yürütülüyor durumundaki komut sayısını döndürür.

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

Çağrı kimliğini belirterek bir çağrı hakkındaki bilgileri döndürür.

CommandRunner.ExitCode getLastInvocationExitCode()

Çalıştırılan son çağırmanın hata kodunu döndürür.

Throwable getLastInvocationThrowable()

Çalıştırılan son çağırmadan Throwable değerini döndürür.

int getReadyCommandCount()

Kuyrukta hazır durumda olan komut sayısını döndürür.

long getShutdownTimeout()
boolean isDeviceInInvocationThread(ITestDevice device)

Cihaz etkin bir çağırma iş parçacığı tarafından kullanılıyorsa true değerini döndürür.

boolean isShuttingDown()
void notifyFileChanged(File cmdFile, List<String> extraArgs)
void removeAllCommands()

Tüm komutları planlayıcıdan kaldırır.

void run()

Bu iş parçacığının ana yürütme bloğu.

void setClearcutClient(ClearcutClient client)

İstemciyi koşum verilerini raporlayacak şekilde ayarlar.

void setMaxPollTime(long polling)
void setPrintSchedulingWarning(boolean print)
boolean shouldShutdownOnCmdfileError()

Komut hatalarında planlayıcıyı kapatmamız gerekiyorsa true değerini döndürür.

void shutdown(boolean notifyStop)

Komut planlayıcıyı düzgün bir şekilde kapatmaya çalışır.

void shutdownHard(boolean killAdb)

Komut planlayıcıyı zorla kapatmaya çalışır.

void shutdownHard()

Komut planlayıcıyı zorla kapatmaya çalışır.

void shutdownOnEmpty()

shutdown() parametresine benzer ancak çıkmadan önce tüm komutların yürütülmesini bekler.

void start()

Günlüğe kaydetme ayarları ve DeviceManager başlatma dahil olmak üzere planlayıcıyı başlatır.

boolean stopInvocation(ITestInvocation invocation)

Çalışan bir çağırmayı durdurur.

boolean stopInvocation(int invocationId, String cause)

Kimliğini belirterek çalışan bir çağırmayı durdurur.

void stopScheduling()

Yeni testlerin planlanmasını ve kabul edilmesini durdurur ancak Tradefed'i durdurmaz.

Korunan yöntemler

void cleanUp()

Çıkmadan önce günlükleri kapatır ve gerekli diğer temizlik işlemlerini yapar.

IConfiguration createConfiguration(String[] args)
IInvocationContext createInvocationContext()
void dryRunCommandReporting(ICommandScheduler.IScheduledInvocationListener handler, IConfiguration config)

Belirli bir komutun prova olup olmadığını belirler.

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

IConfigurationFactory öğesine referans alma için fabrika yöntemi

DeviceManagementGrpcServer getDeviceManagementServer()
IDeviceManager getDeviceManager()

IDeviceManager öğesine referans alma için fabrika yöntemi

TradefedFeatureServer getFeatureServer()
IHostOptions getHostOptions()
IKeyStoreClient getKeyStoreClient()

ERROR(/IGlobalConfiguration) içinde belirtilen IKeyStoreFactory kullanılarak IKeyStoreClient getirilir. Tanımlanmamışsa null döndürülür.

TestInvocationManagementServer getTestInvocationManagementServer()
void initLogging()

ddmlib günlüğünü başlatır.

boolean isShutdown()
void processReadyCommands(IDeviceManager manager)
boolean shouldMarkReleased()

Herkese açık oluşturucular

CommandScheduler

public CommandScheduler ()

CommandScheduler oluşturur.

Not: Kullanmadan önce start() işlevi çağrılmalıdır.

Herkese açık yöntemler

addCommand

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

Planlayıcıya bir komut ekler.

Komut, temelde çalıştırılacak bir yapılandırmanın örneği ve ilişkili bağımsız değişkenleridir.

"--help" bağımsız değişkeni belirtilirse yapılandırmayla ilgili yardım metni stdout'a gönderilir. Aksi takdirde yapılandırma, çalıştırılmak üzere sıraya eklenir.

Parametreler
args String: Yapılandırma bağımsız değişkenleri.

Döndürülenler
Pair<Boolean, Integer> Bir değer çifti. İlk değer, komut başarıyla eklendiyse Boole true değeridir. İkinci değer, komut başarıyla eklendiyse bilinen komut izleyici kimliğidir (negatif olmayan değer). Komut tüm cihazlar için eklendiğinde 0, aksi takdirde -1 döndürülür.

Verdiği hatalar
ConfigurationException

addCommandFile

public void addCommandFile (String cmdFilePath, 
                List<String> extraArgs)

Belirtilen dosyadaki tüm komutları planlayıcıya ekler.

Parametreler
cmdFilePath String: komut dosyasının dosya sistemi yolu

extraArgs List: Dosyadan ayrıştırılan her komuta eklenecek String bağımsız değişkenlerinin List. Boş olabilir ancak null olmamalıdır.

Verdiği hatalar
ConfigurationException

await

public void await ()

Planlayıcının çalışmaya başlamasını bekler. Bu kapsamda, geçerliyse eski TF'den devretme işleminin tamamlanmasını da bekler.

Verdiği hatalar
InterruptedException

checkDelegation

public static TradefedDelegator checkDelegation (String[] args)

Çalıştırmanın yetkilendirilmesi gerekip gerekmediğini görmek için komut satırına dayalı bir yetki veren kullanıcı oluşturun.

Parametreler
args String

Döndürülenler
TradefedDelegator

Verdiği hatalar
com.android.tradefed.config.ConfigurationException
ConfigurationException

createReleaseMap

public static Map<ITestDeviceFreeDeviceState> createReleaseMap (IInvocationContext context, 
                Throwable e)

Cihaz durumunun haritasını oluşturarak cihazların uygun şekilde serbest bırakılmasını sağlayın.

Parametreler
context IInvocationContext

e Throwable

İadeler
Map<ITestDeviceFreeDeviceState>

createSandbox

public ISandbox createSandbox ()

Çağırma işleminin çalışmak için kullanacağı bir ISandbox oluşturun.

İadeler
ISandbox

displayCommandQueue

public void displayCommandQueue (PrintWriter printWriter)

Komut yürütme sırasının durumu hakkında ayrıntılı hata ayıklama bilgileri verir.

displayCommandsInfo

public void displayCommandsInfo (PrintWriter printWriter, 
                String regex)

Mevcut komutların listesini gösterir.

Parametreler
printWriter PrintWriter: çıkışın yapılacağı PrintWriter.

regex String: Komutların yazdırılması için eşleştirilmesi gereken normal ifade. Boşsa tüm komutlar yazdırılır.

displayInvocationsInfo

public void displayInvocationsInfo (PrintWriter printWriter)

Mevcut çağrıların listesini gösterir.

Parametreler
printWriter PrintWriter: çıkışın yapılacağı PrintWriter.

dumpCommandsXml

public void dumpCommandsXml (PrintWriter printWriter, 
                String regex)

Tüm geçerli komutlar için belirtilen tüm Option değerleriyle komutun genişletilmiş XML dosyasını dökümünü alır.

Parametreler
printWriter PrintWriter: durumu çıkış olarak verecek PrintWriter.

regex String: XML dosyasının dökümünün alınması için komutların eşleştirilmesi gereken normal ifade. Boşsa tüm komutların dökümü alınır.

execCommand

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

Komutu, halihazırda ayrılmış cihazda doğrudan yürütür.

Parametreler
listener ICommandScheduler.IScheduledInvocationListener: bilgilendirilecek ICommandScheduler.IScheduledInvocationListener

device ITestDevice: kullanılacak ITestDevice

args String: komut bağımsız değişkenleri

Döndürülenler
long Planlanmış komutun çağrı kimliği.

Verdiği hatalar
ConfigurationException

execCommand

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

Halihazırda mevcut bir IInvocationContext kullanarak, komut kuyruğuna eklemeden doğrudan bir cihaz ayırır ve komut yürütür.

Parametreler
context IInvocationContext: mevcut bir IInvocationContext.

listener ICommandScheduler.IScheduledInvocationListener: bilgilendirilecek ICommandScheduler.IScheduledInvocationListener

args String: komut bağımsız değişkenleri

Döndürülenler
long

Verdiği hatalar
ConfigurationException
NoDeviceException

execCommand

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

Cihazı doğrudan ayırır ve komut kuyruğuna eklemeden komutu yürütür.

Parametreler
listener ICommandScheduler.IScheduledInvocationListener: bilgilendirilecek ICommandScheduler.IScheduledInvocationListener

args String: komut bağımsız değişkenleri

Döndürülenler
long Planlanmış komutun çağrı kimliği.

Verdiği hatalar
ConfigurationException
NoDeviceException

execCommand

public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, 
                List<ITestDevice> reservedDevices, 
                String[] args)

Komutu, halihazırda ayrılmış cihazlarda doğrudan yürütür.

Parametreler
listener ICommandScheduler.IScheduledInvocationListener: bilgilendirilecek ICommandScheduler.IScheduledInvocationListener

reservedDevices List: kullanılacak ERROR(/List)

args String: komut bağımsız değişkenleri

Döndürülenler
long Planlanmış komutun çağrı kimliği.

Verdiği hatalar
ConfigurationException

getCommandFileWatcher

public CommandFileWatcher getCommandFileWatcher ()

Bu planlayıcı için uygun CommandFileWatcher'ı alır.

Döndürülenler
CommandFileWatcher

getExecutingCommandCount

public int getExecutingCommandCount ()

Yürütülüyor durumundaki komut sayısını döndürür.

İadeler
int

getHostState

public CommandScheduler.HostState getHostState ()

İadeler
CommandScheduler.HostState

getInvocationInfo

public String getInvocationInfo (int invocationId)

Çağrı kimliğini belirterek bir çağrı hakkındaki bilgileri döndürür.

Parametreler
invocationId int: Çağırmanın izleme kimliği.

Döndürülenler
String Çağırma hakkında bilgi içeren bir String.

getLastInvocationExitCode

public CommandRunner.ExitCode getLastInvocationExitCode ()

Çalıştırılan son çağırmanın hata kodunu döndürür. Henüz hiçbir çağırma işlemi çalıştırılmadıysa 0 (hata yok) değerini döndürür.

Döndürülenler
CommandRunner.ExitCode

getLastInvocationThrowable

public Throwable getLastInvocationThrowable ()

Çalıştırılan son çağırmadan Throwable değerini döndürür. Atılabilir bir öğe yoksa boş değer döndürür.

Döndürülenler
Throwable

getReadyCommandCount

public int getReadyCommandCount ()

Kuyrukta hazır durumda olan komut sayısını döndürür.

İadeler
int

getShutdownTimeout

public long getShutdownTimeout ()

İadeler
long

isDeviceInInvocationThread

public boolean isDeviceInInvocationThread (ITestDevice device)

Cihaz etkin bir çağırma iş parçacığı tarafından kullanılıyorsa true değerini döndürür.

Parametreler
device ITestDevice

İadeler
boolean

isShuttingDown

public boolean isShuttingDown ()

İadeler
boolean

notifyFileChanged

public void notifyFileChanged (File cmdFile, 
                List<String> extraArgs)

Parametreler
cmdFile File

extraArgs List

removeAllCommands

public void removeAllCommands ()

Tüm komutları planlayıcıdan kaldırır.

run

public void run ()

Bu iş parçacığının ana yürütme bloğu.

setClearcutClient

public void setClearcutClient (ClearcutClient client)

İstemciyi koşum verilerini raporlayacak şekilde ayarlar.

Parametreler
client ClearcutClient

setMaxPollTime

public void setMaxPollTime (long polling)

Parametreler
polling long

setPrintSchedulingWarning

public void setPrintSchedulingWarning (boolean print)

Parametreler
print boolean

shouldShutdownOnCmdfileError

public boolean shouldShutdownOnCmdfileError ()

Komut hatalarında planlayıcıyı kapatmamız gerekiyorsa true değerini döndürür.

Döndürülenler
boolean

shutdown

public void shutdown (boolean notifyStop)

Komut planlayıcıyı düzgün bir şekilde kapatmaya çalışır.

Parametreler
notifyStop boolean: Doğruysa TF kapatma çağrılarını bildirir.

shutdownHard

public void shutdownHard (boolean killAdb)

Komut planlayıcıyı zorla kapatmaya çalışır.

shutdown() parametresine benzer ancak devam eden çağırmaların daha hızlı tamamlanmasını "sağlamak" için isteğe bağlı olarak adb bağlantısını da sonlandırır.

Parametreler
killAdb boolean

shutdownHard

public void shutdownHard ()

Komut planlayıcıyı zorla kapatmaya çalışır. shutdownHard(true) ile aynıdır.

shutdownOnEmpty

public void shutdownOnEmpty ()

shutdown() parametresine benzer ancak çıkmadan önce tüm komutların yürütülmesini bekler.

Komutlardan herhangi biri döngü modundaysa planlayıcının asla çıkmayacağını unutmayın.

start

public void start ()

Günlüğe kaydetme ayarları ve DeviceManager başlatma dahil olmak üzere planlayıcıyı başlatır.

stopInvocation

public boolean stopInvocation (ITestInvocation invocation)

Çalışan bir çağırmayı durdurur.

Parametreler
invocation ITestInvocation

Döndürülenler
boolean Çağırma durdurulduysa doğru, aksi takdirde yanlış

stopInvocation

public boolean stopInvocation (int invocationId, 
                String cause)

Kimliğini belirterek çalışan bir çağırmayı durdurur.

Parametreler
invocationId int: Çağırmanın izleme kimliği.

cause String: Çağırmanın durdurulma nedeni.

Döndürülenler
boolean Çağırma durdurulduysa doğru, aksi takdirde yanlış

stopScheduling

public void stopScheduling ()

Yeni testlerin planlanmasını ve kabul edilmesini durdurur ancak Tradefed'i durdurmaz. Bu, iki adımlı bir kapatma işlemi yapmayı amaçlar. İlk adımda, çalışan tüm testler boşaltılır, ardından Tradefed işlemi sonlandırılır.

Korunan yöntemler

cleanUp

protected void cleanUp ()

Çıkmadan önce günlükleri kapatır ve gerekli diğer temizlik işlemlerini yapar.

Birim testlerinin taklit edebilmesi için kullanıma sunulur.

createConfiguration

protected IConfiguration createConfiguration (String[] args)

Parametreler
args String

Döndürülenler
IConfiguration

Verdiği hatalar
ConfigurationException

createInvocationContext

protected IInvocationContext createInvocationContext ()

İadeler
IInvocationContext

dryRunCommandReporting

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

Belirli bir komutun prova olup olmadığını belirler. Komut bir prova ise doğrulayın. Yapılandırmayla ilgili bir sorun varsa ConfigurationException hatası verilir.

Parametreler
handler ICommandScheduler.IScheduledInvocationListener: Test doğrulama için etkinlikleri bildirmek üzere ERROR(/InvocationEventHandler).

config IConfiguration

İadeler
void Komut prova ise doğru, aksi takdirde yanlış.

Verdiği hatalar
com.android.tradefed.config.ConfigurationException
ConfigurationException

execCommand

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

Parametreler
context IInvocationContext

listener ICommandScheduler.IScheduledInvocationListener

reservedDevices List

args String

Döndürülenler
long

Verdiği hatalar
ConfigurationException

getConfigFactory

protected IConfigurationFactory getConfigFactory ()

IConfigurationFactory öğesine referans alma için fabrika yöntemi

İadeler
IConfigurationFactory kullanılacak IConfigurationFactory

getDeviceManagementServer

protected DeviceManagementGrpcServer getDeviceManagementServer ()

İadeler
DeviceManagementGrpcServer

getDeviceManager

protected IDeviceManager getDeviceManager ()

IDeviceManager öğesine referans alma için fabrika yöntemi

İadeler
IDeviceManager kullanılacak IDeviceManager

getFeatureServer

protected TradefedFeatureServer getFeatureServer ()

İadeler
TradefedFeatureServer

getHostOptions

protected IHostOptions getHostOptions ()

İadeler
IHostOptions

getKeyStoreClient

protected IKeyStoreClient getKeyStoreClient ()

ERROR(/IGlobalConfiguration) içinde belirtilen IKeyStoreFactory kullanılarak IKeyStoreClient getirilir. Tanımlanmamışsa null döndürülür.

İadeler
IKeyStoreClient IKeyStoreClient

getTestInvocationManagementServer

protected TestInvocationManagementServer getTestInvocationManagementServer ()

İadeler
TestInvocationManagementServer

initLogging

protected void initLogging ()

ddmlib günlüğünü başlatır.

Birim testlerinin taklit edebilmesi için kullanıma sunulur.

isShutdown

protected boolean isShutdown ()

İadeler
boolean

processReadyCommands

protected void processReadyCommands (IDeviceManager manager)

Parametreler
manager IDeviceManager

shouldMarkReleased

protected boolean shouldMarkReleased ()

İadeler
boolean