اعتبارًا من 27 آذار (مارس) 2025، ننصحك باستخدام android-latest-release
بدلاً من aosp-main
لإنشاء AOSP والمساهمة فيه. لمزيد من المعلومات، يُرجى الاطّلاع على التغييرات في AOSP.
العمل مع الأجهزة في TF
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يستخدم Trade Federation عنصرًا مجردًا يُسمى
ITestDevice
ل
إجراء الاختبارات. تُنشئ هذه الطريقة المجردة جهاز Android الذي يمثّل المقام المشترك الأصغر:
- أن يكون لها رقم تسلسلي
- لها حالة: "متوفّر على الإنترنت" أو "متوفّر" أو "قيد الاسترداد" أو "غير متوفّر"
- ويتضمن بعض الأفكار حول الموثوقية. على سبيل المثال، إذا نفّذنا أمرًا، يمكننا التفريق بين الحالة التي لم ينته فيها الأمر بعد، والحالة التي لا يتيح فيها الجهاز تنفيذ الأوامر، والحالة التي لم يعُد فيها الجهاز يستجيب أثناء تنفيذ الأمر.
فئات الأجهزة
تمثّل عمليات التنفيذ الثلاث الأساسية لـ ITestDevice
ثلاثة حالات استخدام
شائعة.
الجهاز المادي
هذا جهاز فعلي متصل بجهاز مضيف TF إما عبر USB أو باستخدام ميزة TCP فيadb. تقع فئة TestDevice فوق مكتبة ddmlib، وهي واجهة Java لواجهة adb. وبالتالي، يمكن إنشاء مثيل لأي
جهاز مادي مُدرَج في adb devices
واستخدامه كأحد
TestDevice
.
المحاكي
تتعامل أداة TF مع المحاكيات بشكل خاص لأنّها تعمل في عملية أخرى. للتفاعل مع أحد
المحاكيات، حدِّد الوسيطة --emulator
للطلب. اطّلِع على
LocalSdkBuildProvider و
SdkAvdPreparer للحصول على مزيد من المعلومات.
لم يتم اختيار أي جهاز.
لنفترض أنّ لديك اختبارًا لا يتفاعل مع أي جهاز على الإطلاق. على سبيل المثال، قد يقتصر الأمر على
تنزيل ملف من خدمة معيّنة والتأكّد من أنّ الملف نفسه صالح.
NullDevice هو ITestDevice
مجرد عنصر نائب. لها رقم تسلسلي مثل
null-device-N
، ومعظم العمليات التي تمّت محاولة تنفيذها لا تؤدي إلى أيّ إجراء أو تؤدي إلى حدوث خطأ.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","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-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],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."]]