اعتبارًا من 27 آذار (مارس) 2025، ننصحك باستخدام android-latest-release بدلاً من aosp-main لإنشاء AOSP والمساهمة فيه. لمزيد من المعلومات، يُرجى الاطّلاع على التغييرات في AOSP.
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
عند إجراء اختبارات على الجهاز (مثل عمليات القياس واختبارات UI Automator
)، قد لا تكون أدوات جمع البيانات من جهة المضيف مثالية لأنّه من الصعب
مزامنة جمع المقاييس مع اختبار يتم إجراؤه على جهاز. على سبيل المثال، من المحتمل أن تفوتك
الشاشة المطلوبة إذا تم أخذ لقطة شاشة بشكل غير متزامن، وبالتالي لن تكون
هذه اللقطة مفيدة.
لتلبية حالات الاستخدام هذه، يتوفّر إصدار من أدوات جمع البيانات على مستوى الجهاز
ويمكن استخدامه في أيّ عملية قياس AndroidJUnitRunner.
BaseMetricListener
يمكن تنفيذ ذلك لإعداد تقارير تلقائية عن المقاييس التي يتم جمعها
بطريقة متوافقة تمامًا مع مسار إعداد تقارير Tradefed.
تم فصل هذه المكتبة عن Tradefed نفسها ويمكن استخدامها بدون Tradefed.
إذا كنت تستخدِم أداة AndroidJUnitTest
التشغيل من Tradefed، يمكنك تحديد خيار سطر الأوامر التالي
لتشغيل أداة جمع البيانات مع اختباراتك:
عند التنفيذ على أساس الفئة الأساسية BaseMetricListener، يمكنك اختيار
الوقت الذي تريد فيه جمع المقاييس خلال دورة حياة
الأدوات:
عند بدء عملية اختبار: onTestRunStart
عند بدء نموذج اختبار: onTestStart
عند انتهاء حالة اختبار: onTestEnd
عند تعذّر تنفيذ حالة اختبار: onTestFail
عند انتهاء إجراء اختبار: onTestRunEnd
التفاعل
يتم جمع المقاييس على جانب الجهاز بشكل متزامن مع تنفيذ عملية جمع المقاييس نفسها، ويتم تمرير المقاييس مرة أخرى إلى نتائج جمع المقاييس وتحليلها بواسطة Tradefed لإعداد التقارير عنها كجزء من عملية التفعيل.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ 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,["# Device-side metrics collectors\n\nWhen running device-side tests (for example, instrumentations, UI Automator\ntests), host-side collectors might not be ideal because it's difficult to\nsynchronize metric collection to a test running on a device. For example, a\nscreenshot taken asynchronously is likely to miss the wanted screen and be\nuseless.\n\nTo meet these use cases, a device-side version of our collectors exists\nand can be used in any `AndroidJUnitRunner` instrumentation.\n[`BaseMetricListener`](https://android.googlesource.com/platform/platform_testing/+/refs/heads/android16-release/libraries/device-collectors/src/main/java/android/device/collectors/BaseMetricListener.java)\ncan be implemented to automatically report metrics that are collected\nin a way fully compatible with the Tradefed reporting pipeline.\n\nThis library is decoupled from Tradefed itself and can be used without Tradefed.\n\nIf you're using the [`AndroidJUnitTest`](https://android.googlesource.com/platform/tools/tradefederation/+/refs/heads/android16-release/test_framework/com/android/tradefed/testtype/AndroidJUnitTest.java)\nrunner from Tradefed, you can specify the following command line option\nto have your collector running with your tests: \n\n --device-listeners android.device.collectors.ScreenshotListener\n\n**Caution:** In order for the collector classes to be resolved at runtime, your instrumentation APK needs to statically include them by adding the following to your makefile: \n\n LOCAL_STATIC_JAVA_LIBRARIES += collector-device-lib\n\nImplementation\n--------------\n\nWhen implementing on top of the base class `BaseMetricListener`, you can choose\nwhen you would like to collect your metrics during the lifecycle of the\ninstrumentation:\n\n- When a test run starts: `onTestRunStart`\n- When a test case starts: `onTestStart`\n- When a test case ends: `onTestEnd`\n- When a test case fails: `onTestFail`\n- When a test run ends: `onTestRunEnd`\n\nInteraction\n-----------\n\nThe collection of metrics on the device side is made synchronously to the\ninstrumentation execution itself, and metrics are passed back to the\ninstrumentation results and parsed by Tradefed to be reported as part of the\ninvocation."]]