زمانبند فرمان

public class CommandScheduler
extends Object implements ICommandScheduler

شیء جاوا
com.android.tradefed.command.CommandScheduler


یک زمانبند برای اجرای دستورات TradeFederation در تمام دستگاه‌های موجود.

سعی خواهد کرد دستورات را برای اجرا بر اساس تعداد کل زمان اجرای آنها اولویت‌بندی کند. به عنوان مثال، دستورات نادر یا سریع اجرا شده نسبت به دستورات طولانی مدت در اولویت قرار می‌گیرند.

تا زمان خاموش شدن، همیشه در پس‌زمینه اجرا می‌شود.

خلاصه

سازندگان عمومی

CommandScheduler ()

یک CommandScheduler ایجاد می‌کند.

روش‌های عمومی

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

یک دستور به زمانبند اضافه می‌کند.

void addCommandFile (String cmdFilePath, extraArgs)

تمام دستورات فایل داده شده را به برنامه زمان‌بندی اضافه می‌کند.

void await ()

منتظر می‌ماند تا زمانبند شروع به اجرا کند، از جمله در صورت لزوم، منتظر می‌ماند تا تحویل از TF قدیمی تکمیل شود.

static TradefedDelegator checkDelegation (String[] args)

یک delegator بر اساس خط فرمان ایجاد کنید تا ببینید آیا نیاز به واگذاری اجرا داریم یا خیر.

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)

کلاینت را طوری تنظیم کنید که داده‌های مهار را گزارش دهد

void setMaxPollTime (long polling)
void setPrintSchedulingWarning (boolean print)
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)

با مشخص کردن شناسه (id) یک فراخوانی در حال اجرا، آن را متوقف کنید.

void stopScheduling ()

برنامه‌ریزی و پذیرش آزمایش‌های جدید را متوقف می‌کند اما Tradefed را متوقف نمی‌کند.

روش‌های محافظت‌شده

void cleanUp ()

قبل از خروج، لاگ‌ها را می‌بندد و هرگونه پاکسازی لازم دیگر را انجام می‌دهد.

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

تعیین می‌کند که آیا دستور داده شده یک اجرای آزمایشی (dry-run) است یا خیر.

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

متد Factory برای دریافت ارجاع به IConfigurationFactory

DeviceManagementGrpcServer getDeviceManagementServer ()
IDeviceManager getDeviceManager ()

متد Factory برای دریافت ارجاع به IDeviceManager

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

یک IKeyStoreClient با استفاده از IKeyStoreFactory تعریف شده در IGlobalConfiguration دریافت می‌کند یا در صورت عدم تعریف، null می‌کند.

TestInvocationManagementServer getTestInvocationManagementServer ()
void initLogging ()

لاگ ddmlib را مقداردهی اولیه می‌کند.

boolean isShutdown ()
void processReadyCommands ( IDeviceManager manager)

سازندگان عمومی

زمانبند فرمان

public CommandScheduler ()

یک CommandScheduler ایجاد می‌کند.

نکته: قبل از استفاده، باید تابع start فراخوانی شود.

روش‌های عمومی

دستور add

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

یک دستور به زمانبند اضافه می‌کند.

یک دستور اساساً نمونه‌ای از یک پیکربندی برای اجرا و آرگومان‌های مرتبط با آن است.

اگر آرگومان "--help" مشخص شود، متن راهنمای پیکربندی در خروجی stdout نمایش داده می‌شود. در غیر این صورت، پیکربندی به صف اجرا اضافه می‌شود.

پارامترها
args String : آرگومان‌های پیکربندی.

بازگشت‌ها
Pair <Boolean, Integer> یک جفت مقدار، مقدار اول یک مقدار بولی true است اگر دستور با موفقیت اضافه شده باشد. مقدار دوم شناسه ردیاب دستور شناخته شده (مقدار غیر منفی) است اگر دستور با موفقیت اضافه شده باشد، وقتی دستور برای همه دستگاه‌ها اضافه شده باشد 0 و در غیر این صورت -1 را برمی‌گرداند.

پرتاب‌ها
ConfigurationException

فایل فرمان را اضافه کنید

public void addCommandFile (String cmdFilePath, 
                 extraArgs)

تمام دستورات فایل داده شده را به برنامه زمان‌بندی اضافه می‌کند.

پارامترها
cmdFilePath String : مسیر سیستم فایل فایل کامند

extraArgs : یک ERROR(/List) از آرگومان‌های String برای اضافه کردن به هر دستور تجزیه‌شده از فایل. می‌تواند خالی باشد اما نباید null باشد.

پرتاب‌ها
ConfigurationException

منتظر

public void await ()

منتظر می‌ماند تا زمانبند شروع به اجرا کند، از جمله در صورت لزوم، منتظر می‌ماند تا تحویل از TF قدیمی تکمیل شود.

چک دیلیگ

public static TradefedDelegator checkDelegation (String[] args)

یک delegator بر اساس خط فرمان ایجاد کنید تا ببینید آیا نیاز به واگذاری اجرا داریم یا خیر.

پارامترها
args String

بازگشت‌ها
TradefedDelegator

پرتاب‌ها
com.android.tradefed.config.ConfigurationException
ConfigurationException

ایجادنقشه انتشار

public static  createReleaseMap (IInvocationContext context, 
                Throwable e)

نقشه‌ای از وضعیت دستگاه‌ها ایجاد کنید تا بتوان آنها را به طور مناسب منتشر کرد.

پارامترها
context IInvocationContext

e Throwable

بازگشت‌ها

ایجاد سندباکس

public ISandbox createSandbox ()

یک ISandbox ایجاد کنید که فراخوانی برای اجرا از آن استفاده خواهد کرد.

بازگشت‌ها
ISandbox

صف فرمان نمایش

public void displayCommandQueue (PrintWriter printWriter)

اطلاعات اشکال‌زدایی دقیق در مورد وضعیت صف اجرای دستور را نمایش می‌دهد.

نمایش اطلاعات دستورات

public void displayCommandsInfo (PrintWriter printWriter, 
                String regex)

لیستی از دستورات فعلی را نمایش می‌دهد.

پارامترها
printWriter PrintWriter : ERROR(/PrintWriter) که باید به آن خروجی داده شود.

regex String : عبارت منظمی که دستورات باید با آن مطابقت داشته باشند تا چاپ شوند. اگر تهی باشد، تمام دستورات چاپ می‌شوند.

نمایش اطلاعات فراخوانی‌ها

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 کپی شود. اگر null باشد، تمام دستورات کپی می‌شوند.

دستور exec

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

اجرای مستقیم دستور روی دستگاه از قبل اختصاص داده شده.

پارامترها
listener ICommandScheduler.IScheduledInvocationListener : به ICommandScheduler.IScheduledInvocationListener اطلاع داده می‌شود.

device ITestDevice : دستگاه ITestDevice مورد استفاده

args String : آرگومان‌های دستور

بازگشت‌ها
long شناسه فراخوانی دستور زمان‌بندی‌شده.

پرتاب‌ها
ConfigurationException

دستور exec

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

اجرای مستقیم دستور روی دستگاه‌های از قبل اختصاص داده شده.

پارامترها
listener ICommandScheduler.IScheduledInvocationListener : به ICommandScheduler.IScheduledInvocationListener اطلاع داده می‌شود.

reservedDevices : ERROR(/List ) برای استفاده

args String : آرگومان‌های دستور

بازگشت‌ها
long شناسه فراخوانی دستور زمان‌بندی‌شده.

پرتاب‌ها
ConfigurationException

دستور exec

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

مستقیماً یک دستگاه را اختصاص می‌دهد و یک دستور را بدون اضافه کردن آن به صف دستورات با استفاده از یک IInvocationContext موجود اجرا می‌کند.

پارامترها
context IInvocationContext : یک IInvocationContext موجود.

listener ICommandScheduler.IScheduledInvocationListener : به ICommandScheduler.IScheduledInvocationListener اطلاع داده می‌شود.

args String : آرگومان‌های دستور

بازگشت‌ها
long

پرتاب‌ها
ConfigurationException
NoDeviceException

دستور exec

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

مستقیماً یک دستگاه را اختصاص می‌دهد و یک دستور را بدون اضافه کردن آن به صف دستورات اجرا می‌کند.

پارامترها
listener ICommandScheduler.IScheduledInvocationListener : به ICommandScheduler.IScheduledInvocationListener اطلاع داده می‌شود.

args String : آرگومان‌های دستور

بازگشت‌ها
long شناسه فراخوانی دستور زمان‌بندی‌شده.

پرتاب‌ها
ConfigurationException
NoDeviceException

دریافت‌کننده‌ی فرمانفایل

public CommandFileWatcher getCommandFileWatcher ()

CommandFileWatcher مناسب را برای این زمانبند دریافت کنید

بازگشت‌ها
CommandFileWatcher

دریافت تعداد فرمان‌های در حال اجرا

public int getExecutingCommandCount ()

تعداد دستورات در حال اجرا را برمی‌گرداند.

بازگشت‌ها
int

دریافت وضعیت میزبان

public CommandScheduler.HostState getHostState ()

بازگشت‌ها
CommandScheduler.HostState

اطلاعات فراخوانی را دریافت کنید

public String getInvocationInfo (int invocationId)

اطلاعات مربوط به یک فراخوانی را با مشخص کردن شناسه فراخوانی، برمی‌گرداند.

پارامترها
invocationId int : شناسه ردیابی فراخوانی.

بازگشت‌ها
String String حاوی اطلاعات مربوط به فراخوانی.

کد خروج آخرین فراخوانی (getLastInvocationExitCode)

public CommandRunner.ExitCode getLastInvocationExitCode ()

کد خطای آخرین فراخوانی که اجرا شده است را برمی‌گرداند. اگر هنوز هیچ فراخوانی اجرا نشده باشد، مقدار 0 (بدون خطا) را برمی‌گرداند.

بازگشت‌ها
CommandRunner.ExitCode

getLastInvocationThrowable

public Throwable getLastInvocationThrowable ()

تابع Throwable از آخرین فراخوانی که اجرا شده است، برمی‌گرداند. اگر هیچ Throwableای در دسترس نباشد، مقدار null را برمی‌گرداند.

بازگشت‌ها
Throwable

تعداد فرمان‌های آماده

public int getReadyCommandCount ()

تعداد دستوراتی که در حالت آماده در صف هستند را برمی‌گرداند.

بازگشت‌ها
int

دریافت زمان خاموش شدن (ShutdownTimeout)

public long getShutdownTimeout ()

بازگشت‌ها
long

isDeviceInInvocationThread

public boolean isDeviceInInvocationThread (ITestDevice device)

اگر دستگاه توسط یک نخ فراخوانی فعال استفاده شود، مقدار true را برمی‌گرداند.

پارامترها
device ITestDevice

بازگشت‌ها
boolean

خاموش کردن

public boolean isShuttingDown ()

بازگشت‌ها
boolean

notifyFileChanged

public void notifyFileChanged (File cmdFile, 
                 extraArgs)

پارامترها
cmdFile File

extraArgs

حذف همه دستورات

public void removeAllCommands ()

حذف تمام دستورات از برنامه زمانبندی

دویدن

public void run ()

بلوک اجرایی اصلی این نخ.

تنظیمClearcutClient

public void setClearcutClient (ClearcutClient client)

کلاینت را طوری تنظیم کنید که داده‌های مهار را گزارش دهد

پارامترها
client ClearcutClient

setMaxPollTime

public void setMaxPollTime (long polling)

پارامترها
polling long

هشدار زمان‌بندی چاپ (setPrintSchedulingWarning)

public void setPrintSchedulingWarning (boolean print)

پارامترها
print boolean

خطای shouldShutdownOnCmdfileError

public boolean shouldShutdownOnCmdfileError ()

اگر نیاز به خاموش کردن برنامه‌ریز در صورت بروز خطا در یک دستور داشته باشیم، مقدار true را برمی‌گرداند

بازگشت‌ها
boolean

خاموشی

public void shutdown (boolean notifyStop)

تلاش برای خاموش کردنِ موقرانه‌ی زمان‌بندیِ فرمان.

پارامترها
notifyStop boolean : اگر درست باشد، فراخوانی‌های مربوط به خاموش شدن TF را اطلاع می‌دهد.

خاموش کردن هارد

public void shutdownHard (boolean killAdb)

تلاش برای خاموش کردن اجباری زمانبند دستورات.

مشابه shutdown() است، اما به صورت اختیاری اتصال adb را نیز قطع می‌کند، در تلاشی برای «الهام‌بخشیدن» به فراخوانی‌های در حال انجام برای تکمیل سریع‌تر.

پارامترها
killAdb boolean

خاموش کردن هارد

public void shutdownHard ()

تلاش برای خاموش کردن اجباری زمان‌بندی دستورات. مشابه shutdownHard(true).

خاموش کردن خالی

public void shutdownOnEmpty ()

مشابه shutdown() است، اما در عوض منتظر می‌ماند تا تمام دستورات قبل از خروج اجرا شوند.

توجه داشته باشید که اگر هر دستوری در حالت حلقه باشد، زمانبند هرگز خارج نخواهد شد.

شروع

public void start ()

زمان‌بندی شامل تنظیم گزارش‌گیری، شروع به کار DeviceManager و غیره را آغاز می‌کند.

توقف فراخوانی

public boolean stopInvocation (ITestInvocation invocation)

متوقف کردن یک فراخوانی در حال اجرا

پارامترها
invocation ITestInvocation

بازگشت‌ها
boolean اگر فراخوانی متوقف شده باشد، true و در غیر این صورت false برمی‌گرداند.

توقف فراخوانی

public boolean stopInvocation (int invocationId, 
                String cause)

با مشخص کردن شناسه (id) یک فراخوانی در حال اجرا، آن را متوقف کنید.

پارامترها
invocationId int : شناسه ردیابی فراخوانی.

cause String : دلیل توقف فراخوانی.

بازگشت‌ها
boolean اگر فراخوانی متوقف شده باشد، true و در غیر این صورت false برمی‌گرداند.

توقف زمان‌بندی

public void stopScheduling ()

زمان‌بندی و پذیرش تست‌های جدید را متوقف می‌کند اما Tradefed را متوقف نمی‌کند. این به معنای فعال کردن یک خاموش‌سازی دو مرحله‌ای است که در آن ابتدا تمام تست‌های در حال اجرا را تخلیه می‌کنیم، سپس فرآیند Tradefed را خاتمه می‌دهیم.

روش‌های محافظت‌شده

پاکسازی

protected void cleanUp ()

قبل از خروج، لاگ‌ها را می‌بندد و هرگونه پاکسازی لازم دیگر را انجام می‌دهد.

در معرض نمایش قرار گرفته تا تست‌های واحد بتوانند شبیه‌سازی کنند.

ایجاد پیکربندی

protected IConfiguration createConfiguration (String[] args)

پارامترها
args String

بازگشت‌ها
IConfiguration

پرتاب‌ها
ConfigurationException

createInvocationContext

protected IInvocationContext createInvocationContext ()

بازگشت‌ها
IInvocationContext

dryRunCommandReporting

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

تعیین می‌کند که آیا دستور داده شده یک اجرای آزمایشی (dry-run) است یا خیر. اگر دستور یک اجرای آزمایشی (dry-run) است، آن را اعتبارسنجی کنید. اگر هرگونه مشکل پیکربندی وجود داشته باشد، یک خطای ConfigurationException صادر می‌کند.

پارامترها
handler ICommandScheduler.IScheduledInvocationListener : ERROR(/InvocationEventHandler) برای گزارش رویدادها جهت اعتبارسنجی در حالت اجرا.

config IConfiguration

بازگشت‌ها
void اگر دستور یک اجرای آزمایشی باشد، مقدار true و در غیر این صورت false را برمی‌گرداند.

پرتاب‌ها
com.android.tradefed.config.ConfigurationException
ConfigurationException

دستور exec

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

پارامترها
context IInvocationContext

listener ICommandScheduler.IScheduledInvocationListener

reservedDevices

args String

بازگشت‌ها
long

پرتاب‌ها
ConfigurationException

کارخانه‌ی پیکربندی

protected IConfigurationFactory getConfigFactory ()

متد Factory برای دریافت ارجاع به IConfigurationFactory

بازگشت‌ها
IConfigurationFactory IConfigurationFactory برای استفاده

سرور مدیریت دستگاه را دریافت کنید

protected DeviceManagementGrpcServer getDeviceManagementServer ()

بازگشت‌ها
DeviceManagementGrpcServer

دریافت مدیر دستگاه

protected IDeviceManager getDeviceManager ()

متد Factory برای دریافت ارجاع به IDeviceManager

بازگشت‌ها
IDeviceManager IDeviceManager برای استفاده

سرور ویژگی‌ها

protected TradefedFeatureServer getFeatureServer ()

بازگشت‌ها
TradefedFeatureServer

گزینه‌های میزبان

protected IHostOptions getHostOptions ()

بازگشت‌ها
IHostOptions

کلاینت فروشگاه کلید (KeyStoreClient)

protected IKeyStoreClient getKeyStoreClient ()

یک IKeyStoreClient با استفاده از IKeyStoreFactory تعریف شده در IGlobalConfiguration دریافت می‌کند یا در صورت عدم تعریف، null می‌کند.

بازگشت‌ها
IKeyStoreClient کلاینت IKeyStore

getTestInvocationManagementServer

protected TestInvocationManagementServer getTestInvocationManagementServer ()

بازگشت‌ها
TestInvocationManagementServer

ثبت اولیه

protected void initLogging ()

لاگ ddmlib را مقداردهی اولیه می‌کند.

در معرض نمایش قرار گرفته تا تست‌های واحد بتوانند شبیه‌سازی کنند.

ای‌شات‌داون

protected boolean isShutdown ()

بازگشت‌ها
boolean

دستورات آماده پردازش

protected void processReadyCommands (IDeviceManager manager)

پارامترها
manager IDeviceManager