از 27 مارس 2025، توصیه می کنیم از android-latest-release
به جای aosp-main
برای ساختن و کمک به AOSP استفاده کنید. برای اطلاعات بیشتر، به تغییرات AOSP مراجعه کنید.
کار با دستگاه ها در TF
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
Trade Federation از یک انتزاع به نام ITestDevice
برای اجرای آزمایش ها استفاده می کند. این انتزاع دستگاه اندرویدی با کمترین مخرج مشترک را عینیت می بخشد:
- شماره سریال داره
- این حالت دارد: آنلاین، موجود، بازیابی یا در دسترس نیست
- مفهومی از قابلیت اطمینان دارد. به عنوان مثال، اگر دستوری را اجرا کنیم، میتوانیم بین حالتی که فرمان هنوز تمام نشده است، موردی که دستگاه از دستورات در حال اجرا پشتیبانی نمیکند و موردی که دستگاه هنگام اجرای دستور پاسخ نمیدهد، تفاوت قائل شویم.
کلاس های دستگاه
سه پیاده سازی اولیه ITestDevice
نشان دهنده سه مورد استفاده رایج است.
دستگاه فیزیکی
این یک قطعه سخت افزار واقعی است که با USB یا با استفاده از ویژگی TCP adb به دستگاه میزبان TF متصل می شود. کلاس TestDevice در بالای کتابخانه ddmlib قرار دارد که یک رابط جاوا برای adb است. بنابراین هر دستگاه فیزیکی فهرست شده در adb devices
را می توان نمونه سازی کرد و به عنوان TestDevice
استفاده کرد.
شبیه ساز
شبیهسازها بهویژه توسط TF مدیریت میشوند، زیرا در فرآیند دیگری زندگی میکنند. برای تعامل با یک شبیه ساز، آرگومان --emulator
را برای دستور مشخص کنید. برای اطلاعات بیشتر به LocalSdkBuildProvider و SdkAvdPreparer مراجعه کنید.
هیچ دستگاه
فرض کنید تستی دارید که اصلاً با دستگاهی ارتباط برقرار نمی کند. به عنوان مثال، ممکن است فقط یک فایل را از سرویسی دانلود کند و تأیید کند که خود فایل معتبر است. NullDevice یک ITestDevice
است که فقط یک خرد است. این یک شماره سریال مانند null-device-N
دارد و اکثر عملیاتها یا بدون عملیات بیصدا یا پرتاب انجام میشوند.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Work with devices in TF\n\nTrade Federation uses an abstraction called\n[ITestDevice](/reference/com/android/tradefed/device/ITestDevice) to\nrun tests. This abstraction objectifies the lowest-common-denominator Android device:\n\n- It has a serial number\n- It has a state: Online, Available, Recovery, or Not Available\n- It has some notion of reliability. For instance, if we run a command, we can differentiate between the case where the command hasn't finished yet, the case where the device doesn't support running commands, and the case where the device has become unresponsive while running the command.\n\nDevice classes\n--------------\n\nThe three primary implementations of `ITestDevice` represent three common\nusecases.\n\n### Physical device\n\nThis is an actual piece of hardware, connected to the TF host machine either by USB, or by using\nadb's TCP feature. The [TestDevice](/reference/com/android/tradefed/device/TestDevice) class sits atop the ddmlib library, which is a Java interface to adb. So any\nphysical device listed in `adb devices` can be instantiated and used as a\n`TestDevice`.\n\n### Emulator\n\nEmulators are handled specially by TF because they live in another process. To interact with an\nEmulator, specify the `--emulator` argument for the command. See\n[LocalSdkBuildProvider](/reference/com/android/tradefed/build/LocalSdkBuildProvider) and\n[SdkAvdPreparer](/reference/com/android/tradefed/targetprep/SdkAvdPreparer) for more info.\n\n### No device\n\nSuppose you have a test that doesn't interact with a device at all. For instance, it might just\ndownload a file from some service and verify that the file itself is valid. The\n[NullDevice](/reference/com/android/tradefed/device/NullDevice) is an `ITestDevice` that is just a stub. It has a serial number like\n`null-device-N`, and most attempted operations either no-op silently or throw."]]