CommandScheduler

public class CommandScheduler
extends Object implements ICommandScheduler

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


أداة جدولة لتشغيل أوامر TradeFederation على جميع الأجهزة المتاحة

سيحاول منح الأولوية للأوامر التي سيتم تنفيذها استنادًا إلى إجمالي عدد عمليات التنفيذ لها. على سبيل المثال، سيتم منح الأولوية للأوامر التي يتم تنفيذها بشكل غير متكرر أو سريع على الأوامر التي تستغرق وقتًا طويلاً في التنفيذ.

يتم تشغيله إلى الأبد في الخلفية إلى أن يتم إيقافه.

ملخّص

وظائف الإنشاء العامة

CommandScheduler()

لإنشاء CommandScheduler.

الطرق العامة

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

إضافة أمر إلى أداة الجدولة.

void addCommandFile(String cmdFilePath, extraArgs)

تُضيف جميع الأوامر من ملف معيّن إلى المخطِّط

void await()

ينتظر بدء تشغيل المخطِّط، بما في ذلك انتظار اكتمال عملية التسليم من عملية التحويل الناجحة القديمة إذا كان ذلك منطبقًا.

static TradefedDelegator checkDelegation(String[] args)

يمكنك إنشاء مفوِّض استنادًا إلى سطر الأوامر لمعرفة ما إذا كنا بحاجة إلى تفويض التشغيل.

static createReleaseMap(IInvocationContext context, Throwable e)

أنشئ خريطة لحالة الأجهزة حتى يمكن إصدارها بشكل مناسب.

ISandbox createSandbox()

أنشئ ISandbox سيستخدمه الطلب لتنفيذه.

void displayCommandQueue(PrintWriter printWriter)

عرض معلومات مفصّلة عن تصحيح الأخطاء في حالة قائمة انتظار تنفيذ الأوامر

void displayCommandsInfo(PrintWriter printWriter, String regex)

عرض قائمة بالطلبات الحالية

void displayInvocationsInfo(PrintWriter printWriter)

تعرِض هذه السمة قائمة بالطلبات الحالية.

void dumpCommandsXml(PrintWriter printWriter, String regex)

تفريغ ملف xml الموسّع للطلب مع جميع قيم Option المحدّدة لجميع الطلبات الحالية

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

تنفيذ الأمر مباشرةً على الجهاز الذي سبق أن تم تخصيصه

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

تنفيذ الأمر مباشرةً على الأجهزة التي تم تخصيصها

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

تخصيص جهاز مباشرةً وتنفيذ أمر بدون إضافته إلى قائمة انتظار الأوامر باستخدام IInvocationContext حالي

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

تخصيص جهاز مباشرةً وتنفيذ أمر بدون إضافته إلى قائمة انتظار الأوامر

CommandFileWatcher getCommandFileWatcher()

احصل على CommandFileWatcher المناسب لأداة الجدولة هذه

int getExecutingCommandCount()

تعرِض هذه الدالة عدد الأوامر في حالة التنفيذ.

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

عرض معلومات عن طلب من خلال تحديد معرّف الطلب

CommandRunner.ExitCode getLastInvocationExitCode()

عرض رمز الخطأ لآخر عملية استدعاء تم تنفيذها

Throwable getLastInvocationThrowable()

عرض Throwable من آخر عملية استدعاء تم تنفيذها

int getReadyCommandCount()

تعرِض هذه السمة عدد الأوامر في حالة "جاهز" في "القائمة الانتظار".

long getShutdownTimeout()
boolean isDeviceInInvocationThread(ITestDevice device)

تعرِض True إذا كان الجهاز مستخدَمًا من خلال سلسلة محادثات نشطة.

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

إزالة جميع الأوامر من أداة الجدولة

void run()

مجموعة التنفيذ الرئيسية لسلسلة التعليمات هذه.

void setClearcutClient(ClearcutClient client)

ضبط العميل لإعداد تقارير عن بيانات الحِزم

boolean shouldShutdownOnCmdfileError()

عرض True إذا احتجنا إلى إيقاف المخطِّط عند حدوث أخطاء في الأوامر

void shutdown(boolean notifyStop)

محاولة إيقاف "جدولة الأوامر" بشكل سليم

void shutdownHard(boolean killAdb)

حاول فرض إيقاف تشغيل أداة جدولة الأوامر.

void shutdownHard()

حاول فرض إيقاف تشغيل أداة جدولة الأوامر.

void shutdownOnEmpty()

يشبه الأمر shutdown()، ولكن بدلاً من ذلك سينتظر تنفيذ كل الأوامر قبل الخروج.

void start()

يبدأ المخطِّط، بما في ذلك إعداد التسجيل وبدء DeviceManager وما إلى ذلك

boolean stopInvocation(ITestInvocation invocation)

إيقاف استدعاء قيد التشغيل.

boolean stopInvocation(int invocationId, String cause)

يمكنك إيقاف طلب قيد التنفيذ من خلال تحديد رقم تعريفه.

void stopScheduling()

يوقف هذا الخيار جدولة الاختبارات الجديدة وقبولها، ولكنّه لا يوقف Tradefed.

الطرق المحمية

void cleanUp()

يتم إغلاق السجلات وتنفيذ أي عملية تنظيف أخرى ضرورية قبل إنهاء الجلسة.

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

لتحديد ما إذا كان الأمر المحدَّد هو عبارة عن عملية تجريبيّة.

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

طريقة المصنع للحصول على إشارة إلى IConfigurationFactory

DeviceManagementGrpcServer getDeviceManagementServer()
IDeviceManager getDeviceManager()

طريقة المصنع للحصول على إشارة إلى IDeviceManager

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

تُستخدَم هذه الدالة لجلب IKeyStoreClient باستخدام IKeyStoreFactory المحدَّد في IGlobalConfiguration أو القيمة null إذا لم يتم تحديد أيّ منها.

TestInvocationManagementServer getTestInvocationManagementServer()
void initLogging()

تبدأ عملية إعداد سجلّ ddmlib.

boolean isShutdown()
void processReadyCommands(IDeviceManager manager)

وظائف الإنشاء العامة

Commandscheduler

public CommandScheduler ()

لإنشاء CommandScheduler.

ملاحظة: يجب استدعاء start قبل الاستخدام.

الطرق العامة

إضافة Command

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

إضافة أمر إلى أداة الجدولة.

الأمر هو في الأساس مثيل لإعداد سيتم تنفيذه وشقيقه الوسيطات.

في حال تحديد الوسيطة "--help"، سيتم إخراج نص المساعدة الخاص بالإعدادات إلى stdout. بخلاف ذلك، ستتم إضافة الإعداد إلى "قائمة الانتظار" لتشغيله.

المعلمات
args String: وسيطات الإعداد

المرتجعات
Pair<Boolean, Integer> زوج من القيم، تكون القيمة الأولى هي true المنطقية إذا تمت إضافة الأمر بنجاح. القيمة الثانية هي معرّف تتبُّع الأمر المعروف(قيمة غير سالبة) إذا تمت إضافة الأمر بنجاح، يتم عرض القيمة 0 عند إضافة الأمر لجميع الأجهزة، وإلا يتم عرض القيمة -1.

عمليات الرمي
ConfigurationException

addCommandFile

public void addCommandFile (String cmdFilePath, 
                 extraArgs)

تُضيف جميع الأوامر من ملف معيّن إلى المخطِّط

المعلمات
cmdFilePath String: مسار نظام الملفات لملف الأوامر

extraArgs : ERROR(/List) من وسيطات String لإضافتها إلى كل أمر تم تحليله من الملف يمكن أن تكون فارغة ولكن يجب ألا تكون فارغة.

عمليات الرمي
ConfigurationException

في انتظار

public void await ()

ينتظر بدء تشغيل المخطِّط، بما في ذلك انتظار اكتمال عملية التسليم من عملية التحويل الناجحة القديمة إذا كان ذلك منطبقًا.

checkDelegation

public static TradefedDelegator checkDelegation (String[] args)

أنشئ مفوِّضًا استنادًا إلى سطر الأوامر لمعرفة ما إذا كنا بحاجة إلى تفويض عملية التشغيل.

المعلمات
args String

المرتجعات
TradefedDelegator

عمليات الرمي
com.android.tradefed.config.ConfigurationException
ConfigurationException

createReleaseMap

public static  createReleaseMap (IInvocationContext context, 
                Throwable e)

أنشئ خريطة لحالة الأجهزة حتى يمكن إصدارها بشكل مناسب.

المعلمات
context IInvocationContext

e Throwable

المرتجعات

createSandbox

public ISandbox createSandbox ()

أنشئ ISandbox سيستخدمه الطلب لتنفيذه.

المرتجعات
ISandbox

displayCommandQueue

public void displayCommandQueue (PrintWriter printWriter)

الحصول على معلومات تصحيح الأخطاء التفصيلية حول حالة قائمة انتظار تنفيذ الأمر

displayCommandsInfo

public void displayCommandsInfo (PrintWriter printWriter, 
                String regex)

عرض قائمة بالطلبات الحالية

المعلمات
printWriter PrintWriter: ERROR(/PrintWriter) لإخراج البيانات

regex String: التعبير العادي الذي يجب مطابقة الأوامر معه لكي تتم طباعتها إذا كانت القيمة خالية، فستتم طباعة جميع الأوامر.

معلومات DisplayInvocationsInfo

public void displayInvocationsInfo (PrintWriter printWriter)

تعرِض هذه السمة قائمة بالطلبات الحالية.

المعلمات
printWriter PrintWriter: ERROR(/PrintWriter) لإخراج البيانات

dumpCommandsXml

public void dumpCommandsXml (PrintWriter printWriter, 
                String regex)

تفريغ ملف xml الموسّع للطلب مع جميع قيم Option المحدّدة لجميع الطلبات الحالية

المعلمات
printWriter PrintWriter: ERROR(/PrintWriter) لعرض الحالة

regex String: التعبير العادي الذي يجب مطابقة الأوامر معه من أجل تفريغ ملف XML إذا كان القيمة فارغة، سيتم تفريغ جميع الأوامر.

أمر execCommand

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

تنفيذ الأمر مباشرةً على الجهاز الذي سبق أن تم تخصيصه

المعلمات
listener ICommandScheduler.IScheduledInvocationListener: ICommandScheduler.IScheduledInvocationListener المطلوب إعلامه

device ITestDevice: ITestDevice المطلوب استخدامه

args String: وسيطات الأوامر

المرتجعات
long معرّف الطلب للأمر المُجدوَل

عمليات الرمي
ConfigurationException

execCommand

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

تنفيذ الأمر مباشرةً على الأجهزة التي تم تخصيصها

المعلمات
listener ICommandScheduler.IScheduledInvocationListener: ICommandScheduler.IScheduledInvocationListener المطلوب إعلامه

reservedDevices : السمة ERROR(/List) المطلوب استخدامها

args String: وسيطات الأمر

المرتجعات
long معرّف الطلب للأمر المُجدوَل

عمليات الرمي
ConfigurationException

execCommand

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

يخصّص هذا الجهاز جهازًا وينفذ أمرًا بدون إضافته إلى قائمة انتظار الأوامر باستخدام IInvocationContext موجود سلفًا.

المعلمات
context IInvocationContext: عنصر IInvocationContext حالي

listener ICommandScheduler.IScheduledInvocationListener: ICommandScheduler.IScheduledInvocationListener المطلوب إعلامه

args String: وسيطات الأمر

المرتجعات
long

عمليات الرمي
ConfigurationException
NoDeviceException

execCommand

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

تخصيص جهاز مباشرةً وتنفيذ أمر بدون إضافته إلى قائمة انتظار الأوامر

المعلمات
listener ICommandScheduler.IScheduledInvocationListener: ICommandScheduler.IScheduledInvocationListener المطلوب إعلامه

args String: وسيطات الأمر

المرتجعات
long معرّف الطلب للأمر المُجدوَل

عمليات الرمي
ConfigurationException
NoDeviceException

getCommandFileWatcher

public CommandFileWatcher getCommandFileWatcher ()

احصل على CommandFileWatcher المناسب لأداة الجدولة هذه

المرتجعات
CommandFileWatcher

getExecutingCommandCount

public int getExecutingCommandCount ()

تعرض عدد الأوامر في حالة التنفيذ.

المرتجعات
int

getHostState

public CommandScheduler.HostState getHostState ()

المرتجعات
CommandScheduler.HostState

getInvocationInfo

public String getInvocationInfo (int invocationId)

عرض معلومات عن طلب من خلال تحديد معرّف الطلب

المعلمات
invocationId int: رقم تعريف التتبّع لطلب التنفيذ

المرتجعات
String تمثّل هذه السمة String تحتوي على معلومات عن الاستدعاء.

getLastInvocationExitCode

public CommandRunner.ExitCode getLastInvocationExitCode ()

يعرض رمز الخطأ لآخر استدعاء تم تشغيله. عرض القيمة 0 (بدون خطأ) إذا لم يتم تنفيذ أيّ طلب حتى الآن

المرتجعات
CommandRunner.ExitCode

getLastInvocationThrowable

public Throwable getLastInvocationThrowable ()

عرض Throwable من آخر عملية استدعاء تم تنفيذها إرجاع "فارغ" (فارغ)، في حال عدم توفر أي قابل للرمي.

المرتجعات
Throwable

getReadyCommandCount

public int getReadyCommandCount ()

تعرِض هذه السمة عدد الأوامر في حالة "جاهز" في "القائمة الانتظار".

المرتجعات
int

مهلة الحصول على إيقاف التشغيل

public long getShutdownTimeout ()

المرتجعات
long

isDeviceInInvocationThread

public boolean isDeviceInInvocationThread (ITestDevice device)

تعرِض True إذا كان الجهاز مستخدَمًا من خلال سلسلة محادثات نشطة.

المعلمات
device ITestDevice

المرتجعات
boolean

isShuttingDown

public boolean isShuttingDown ()

المرتجعات
boolean

notifyFileChanged

public void notifyFileChanged (File cmdFile, 
                 extraArgs)

المعلمات
cmdFile File

extraArgs

أوامر إزالة كل الأوامر

public void removeAllCommands ()

إزالة جميع الأوامر من أداة جدولة المهام

ضربة طويلة

public void run ()

مجموعة التنفيذ الرئيسية لسلسلة التعليمات هذه.

setClearcutClient

public void setClearcutClient (ClearcutClient client)

ضبط العميل لإعداد تقارير عن بيانات الحِزم

المعلمات
client ClearcutClient

shouldShutdownOnCmdfileError

public boolean shouldShutdownOnCmdfileError ()

عرض True إذا احتجنا إلى إيقاف المخطِّط عند حدوث أخطاء في الأوامر

المرتجعات
boolean

إيقاف التشغيل

public void shutdown (boolean notifyStop)

محاولة إيقاف "جدولة الأوامر" بشكلٍ سليم

المعلمات
notifyStop boolean: إذا كان صحيحًا، يتم إرسال إشعارات إلى عمليات استدعاء إيقاف TF.

shutdownHard

public void shutdownHard (boolean killAdb)

حاول فرض إيقاف تشغيل أداة جدولة الأوامر.

على غرار الدالة shutdown()، ولكنها ستؤدي أيضًا إلى إنهاء ربط adb بشكل اختياري، في محاولة "لإلهام" الاستدعاءات الجارية لتكتمل بشكل أسرع.

المعلمات
killAdb boolean

shutdownHard

public void shutdownHard ()

حاوِل إيقاف أداة جدولة الأوامر بالقوة. يُعدّ هذا الإجراء مماثلاً للإجراء shutdownHard(true).

shutdownOnEmpty

public void shutdownOnEmpty ()

يشبه الأمر shutdown()، ولكن بدلاً من ذلك سينتظر تنفيذ كل الأوامر قبل الخروج.

يُرجى العلم أنّه إذا كانت أي أوامر في وضع حلقة، لن يخرج المخطِّط مطلقًا.

بدء

public void start ()

بدء المخطِّط، بما في ذلك إعداد التسجيل وبدء DeviceManager وما إلى ذلك

stopInvocation

public boolean stopInvocation (ITestInvocation invocation)

إيقاف طلب قيد التنفيذ

المعلمات
invocation ITestInvocation

المرتجعات
boolean صحيح إذا تم إيقاف الاستدعاء، وخطأ في الحالات الأخرى

stopInvocation

public boolean stopInvocation (int invocationId, 
                String cause)

يمكنك إيقاف طلب قيد التنفيذ من خلال تحديد رقم تعريفه.

المعلمات
invocationId int: رقم تعريف التتبّع لطلب التنفيذ

cause String: سبب إيقاف الاستدعاء

المرتجعات
boolean صحيح إذا تم إيقاف الاستدعاء، وخطأ في الحالات الأخرى

إيقاف الجدولة

public void stopScheduling ()

يؤدي هذا الخيار إلى إيقاف جدولة وقبول الاختبارات الجديدة ولكن لا يؤدي إلى إيقاف مقايضة الجهاز. يهدف ذلك إلى تفعيل إيقاف على خطوتَين، حيث نوقف أولاً جميع الاختبارات الجارية، ثم ننهي عملية Tradefed.

الطرق المحمية

تنظيف

protected void cleanUp ()

يتم إغلاق السجلات وتنفيذ أي عملية تنظيف أخرى ضرورية قبل إنهاء الجلسة.

تمّ الكشف عنها لكي تتمكّن اختبارات الوحدة من محاكاة البيانات.

createConfiguration

protected IConfiguration createConfiguration (String[] args)

المعلمات
args String

المرتجعات
IConfiguration

الرميات
ConfigurationException

createInvocationContext

protected IInvocationContext createInvocationContext ()

المرتجعات
IInvocationContext

dryRunCommandReporting

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

لتحديد ما إذا كان الأمر المحدَّد هو عبارة عن عملية تجريبيّة. إذا كان الأمر عبارة عن عملية تجريبيّة، عليك التحقّق منه. إذا حدثت أي مشكلة في الإعدادات، سيتم طرح ConfigurationException.

المعلمات
handler ICommandScheduler.IScheduledInvocationListener: ERROR(/InvocationEventHandler) للإبلاغ عن الأحداث للتحقّق من التشغيل التجريبي

config IConfiguration

المرتجعات
void صحيح إذا كان الأمر عبارة عن عملية تجريبيّة، وخطأ في الحالات الأخرى.

الرميات
com.android.tradefed.config.ConfigurationException
ConfigurationException

execCommand

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

المعلمات
context IInvocationContext

listener ICommandScheduler.IScheduledInvocationListener

reservedDevices

args String

المرتجعات
long

عمليات الرمي
ConfigurationException

الحصول على إعدادات المصنع

protected IConfigurationFactory getConfigFactory ()

طريقة المصنع للحصول على إشارة إلى IConfigurationFactory

المرتجعات
IConfigurationFactory IConfigurationFactory لاستخدام

getDeviceManagementServer

protected DeviceManagementGrpcServer getDeviceManagementServer ()

المرتجعات
DeviceManagementGrpcServer

getDeviceManager

protected IDeviceManager getDeviceManager ()

طريقة المصنع للحصول على إشارة إلى IDeviceManager

المرتجعات
IDeviceManager IDeviceManager لاستخدام

getFeatureServer

protected TradefedFeatureServer getFeatureServer ()

المرتجعات
TradefedFeatureServer

getHostOptions

protected IHostOptions getHostOptions ()

المرتجعات
IHostOptions

getKeyStoreClient

protected IKeyStoreClient getKeyStoreClient ()

تُستخدَم هذه الدالة لجلب IKeyStoreClient باستخدام IKeyStoreFactory المحدَّد في IGlobalConfiguration أو القيمة null إذا لم يتم تحديد أيّ قيمة.

المرتجعات
IKeyStoreClient IKeyStoreClient

getTestInvocationManagementServer

protected TestInvocationManagementServer getTestInvocationManagementServer ()

المرتجعات
TestInvocationManagementServer

initLogging

protected void initLogging ()

يقوم بتهيئة سجل ddmlib.

تمّ الكشف عنها لكي تتمكّن اختبارات الوحدة من محاكاة البيانات.

isShutdown

protected boolean isShutdown ()

المرتجعات
boolean

processReadyCommands

protected void processReadyCommands (IDeviceManager manager)

المعلمات
manager IDeviceManager