اعتبارًا من 27 آذار (مارس) 2025، ننصحك باستخدام android-latest-release
بدلاً من aosp-main
لإنشاء AOSP والمساهمة فيه. لمزيد من المعلومات، يُرجى الاطّلاع على التغييرات في AOSP.
أدوات جمع المقاييس المستندة إلى المضيف
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يتم تشغيل أدوات جمع المقاييس المستندة إلى المضيف على المضيف وليس على الجهاز. ويتفاعلون
مع الجهاز من جهة المضيف لجمع المقاييس التي يستهدفونها.
تصميم أداة جمع المقاييس
الفئة الأساسية التي تمتد إليها جميع أدوات جمع البيانات هي
BaseDeviceMetricCollector
،
التي تساعد في توفير الوظائف الأساسية المشتركة نفسها:
- التصفية
- إيقاف
- جمع بيانات حالات الاختبار في مقابل عمليات الاختبار
تتّبع أدوات الالتقاط نموذج مُسجّل النتائج
لأنّها تتم مزامنتها مع تنفيذ الاختبار على المضيف. بعبارة أخرى،
إذا كانت الاختبارات مستندة إلى المضيف، يتم تنفيذ أدوات الجمع قبل أن ينتقل الاختبار
إلى خطوة التنفيذ التالية.
على سبيل المثال، إذا تم تنفيذ عملية جمع البيانات في testEnded
، يتم تنفيذ عمليات جمع البيانات
قبل الانتقال إلى الاختبار التالي باستخدام testStart
.
تنفيذ أداة جمع مقاييس مستندة إلى المضيف
عند التنفيذ على أساس الفئة الأساسية BaseDeviceMetricCollector
،
يمكنك تحديد وقت جمع المقاييس خلال رحلة المستخدِم:
- عند بدء عملية اختبار:
onTestRunStart
- عند بدء نموذج اختبار:
onTestStart
- عند انتهاء حالة اختبار:
onTestEnd
- عند انتهاء إجراء اختبار:
onTestRunEnd
بالإضافة إلى الطرق المتزامنة، يوفّر TF فئة أساسية لتنفيذ
عملية جمع غير متزامنة بشكل دوري،
ScheduledDeviceMetricCollector
،
التي تقدّم طريقة collect
لتنفيذها بشكل
دوري.
يمكن تخصيص الفترة من خلال الخيارات.
إعدادات XML
علامة الكائن هي metrics_collector
، على سبيل المثال:
<metrics_collector class="com.android.tradefed.device.metric.AtraceCollector">
<option name="categories" value="freq"/>
</metrics_collector>
الاقتراحات
اطّلِع على القائمة الحالية للمجمعين
للتأكّد من أنّك لا تكرّر العمل. نحاول ضمان أقصى قدر من إمكانية إعادة الاستخدام، لذلك،
يسمح تعيين كلّ جامع لنوع واحد من عمليات الجمع بمزيد من المزج
ومطابقة المجمعات المختلفة أثناء تنفيذ الاختبار.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ 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,["# Host-driven metrics collectors run on the host and not on the device side. They\ninteract with the device from the host side to collect the metrics they are\ntargeting.\n\nMetrics collector design\n------------------------\n\nThe base class that all collectors extend is\n[`BaseDeviceMetricCollector`](https://android.googlesource.com/platform/tools/tradefederation/+/refs/heads/android16-release/src/com/android/tradefed/device/metric/BaseDeviceMetricCollector.java),\nwhich helps provide the same shared basic functionalities:\n\n- Filtering\n- Disabling\n- Collection on test cases versus test runs\n\nCollectors follow a [result reporter](/docs/core/tests/tradefed/architecture/result-reporter)\nmodel because they synchronize with the test execution on the host. In other\nwords, if tests are host-driven, collectors are executed before the test\nproceeds to the next execution step.\n\nFor example, if the collector executes on `testEnded`, the collectors execute\nbefore the execution proceeds to the next test with `testStart`.\n\nImplement a host-driven metrics collector\n-----------------------------------------\n\nWhen implementing on top of the base class `BaseDeviceMetricCollector` you\ncan decide when to collect your metrics during the lifecycle:\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 run ends: `onTestRunEnd`\n\nPerform asynchronous collection\n-------------------------------\n\nIn addition to the synchronous methods, TF provides a base class to implement\nthat performs periodic asynchronous collection,\n[`ScheduledDeviceMetricCollector`](https://android.googlesource.com/platform/tools/tradefederation/+/refs/heads/android16-release/test_framework/com/android/tradefed/device/metric/ScheduledDeviceMetricCollector.java),\nwhich provides a `collect` method to be implemented that runs\nperiodically.\n\nThe period is customizable by options.\n\nXML configuration\n-----------------\n\nThe object tag is `metrics_collector`, for example: \n\n \u003cmetrics_collector class=\"com.android.tradefed.device.metric.AtraceCollector\"\u003e\n \u003coption name=\"categories\" value=\"freq\"/\u003e\n \u003c/metrics_collector\u003e\n\nRecommendations\n---------------\n\nLook at the [existing list of collectors](https://android.googlesource.com/platform/tools/tradefederation/+/refs/heads/android16-release/test_framework/com/android/tradefed/device/metric)\nto ensure you aren't duplicating work. We try to ensure maximum reusability, so\nhaving each collector performing a single type of collection allows more mixing\nand matching of different collectors during test execution."]]