2025년 3월 27일부터 AOSP를 빌드하고 기여하려면 aosp-main
대신 android-latest-release
를 사용하는 것이 좋습니다. 자세한 내용은 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>
권장사항
기존 수집기 목록을 살펴보고 작업이 중복되지 않는지 확인합니다. Google은 최대의 재사용성을 보장하려고 노력합니다. 따라서 각 수집기가 단일 유형의 수집을 실행하도록 할 경우 테스트 실행 도중 여러 수집기의 추가적인 믹스 앤 매치가 가능합니다.
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 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."]]