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 は再利用性を最大限に高めるよう努めています。したがって、各コレクタが 1 種類の収集を行うようにすると、テスト実行時にさまざまなコレクタをより多く組み合わせることが可能になります。
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2025-03-26 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-03-26 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."]]