החל מ-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 (שעון UTC).
[[["התוכן קל להבנה","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 (שעון UTC)."],[],[],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."]]