ตั้งแต่วันที่ 27 มีนาคม 2025 เป็นต้นไป เราขอแนะนำให้ใช้ android-latest-release
แทน aosp-main
เพื่อสร้างและมีส่วนร่วมใน AOSP โปรดดูข้อมูลเพิ่มเติมที่หัวข้อการเปลี่ยนแปลงใน AOSP
เครื่องมือรวบรวมเมตริกที่ขับเคลื่อนโดยโฮสต์
จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน
บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
ตัวรวบรวมเมตริกที่ขับเคลื่อนโดยโฮสต์จะทํางานบนโฮสต์ ไม่ใช่ในอุปกรณ์ โดยจะโต้ตอบกับอุปกรณ์จากฝั่งโฮสต์เพื่อรวบรวมเมตริกที่ต้องการ
การออกแบบเครื่องมือรวบรวมเมตริก
คลาสพื้นฐานที่ตัวรวบรวมทั้งหมดขยายคือ BaseDeviceMetricCollector
ซึ่งช่วยมอบฟังก์ชันพื้นฐานที่แชร์เหมือนกัน ดังนี้
- การกรอง
- กำลังปิดใช้
- คอลเล็กชันของเฟรมเวิร์กการทดสอบเทียบกับการเรียกใช้การทดสอบ
เครื่องมือรวบรวมข้อมูลจะเป็นไปตามรูปแบบเครื่องมือรายงานผลลัพธ์เนื่องจากจะซิงค์กับการเรียกใช้การทดสอบบนโฮสต์ กล่าวคือ หากการทดสอบมาจากโฮสต์ ระบบจะเรียกใช้เครื่องมือรวบรวมข้อมูลก่อนการทดสอบจะดำเนินการขั้นตอนถัดไป
เช่น หากตัวรวบรวมข้อมูลทํางานใน testEnded
ตัวรวบรวมข้อมูลจะทํางานก่อนการดําเนินการไปยังการทดสอบถัดไปด้วย testStart
ใช้เครื่องมือรวบรวมเมตริกที่ขับเคลื่อนโดยโฮสต์
เมื่อติดตั้งใช้งานบนคลาสพื้นฐาน BaseDeviceMetricCollector
คุณจะเลือกเวลารวบรวมเมตริกได้ในระหว่างวงจรของลูกค้า ดังนี้
- เมื่อการทดสอบเริ่มขึ้น
onTestRunStart
- เมื่อเริ่มใช้ Test Case:
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."]]