ATrace จะทำการติดตามประสิทธิภาพสำหรับ HAR โดยใช้ Crate ภายนอก
tracing_android_trace
เปิดใช้การติดตามสำหรับ HAR
หากต้องการเปิดใช้การติดตามประสิทธิภาพสำหรับข้อมูลอ้างอิง harry-app ให้เปิดใช้ฟีเจอร์ Cargo harry-app-platform-specific/tracing-android
# crates/reference/harry-app/Cargo.toml
harry-sdv = ["harry-app-platform-specific/tracing-android", ...]
เพิ่มการติดตามที่กำหนดเองลงใน HAR
let custom_trace = tracing::info_span!("custom_trace_span").entered()
// code here will be traced
drop(custom_trace)

รูปที่ 1 UI ของ Perfetto แสดงการติดตามตัวอย่างจากharryกระบวนการ (HAR)
การติดตามประสิทธิภาพสำหรับ DriverUI
DriverUI ใช้การติดตามระบบ Android โดยไม่ต้องมีการกำหนดค่าเพิ่มเติม
เพิ่มการติดตามที่กำหนดเองไปยัง DriverUI
คุณเพิ่มเหตุการณ์ที่กําหนดเองลงในโค้ด Kotlin ได้โดยใช้คู่มือนักพัฒนาซอฟต์แวร์
รวบรวมการติดตาม
เราขอแนะนำให้ใช้ Torq เพื่อรวบรวมการติดตามใน AAOS
ใช้ Torq
Torq เป็นเครื่องมือ CLI สำหรับรวบรวมการติดตามประสิทธิภาพใน AAOS และ SDV
โคลนที่เก็บ Torq
ทำตามวิธีการในที่เก็บเพื่อสร้างและเรียกใช้
export ANDROID_SERIAL=<your_device_serial>
# Collect a 7 second trace
torq -d 7000
รวบรวมการติดตามประสิทธิภาพแบบรวมใน VM ทั้ง 2 รายการ
เนื่องจาก Display Safety ทำงานใน VM 2 รายการ การรวบรวมการติดตามจากทั้ง 2 รายการพร้อมกันจะช่วยระบุปัญหาได้
- Torq รองรับการติดตามแบบรวมผ่าน
traced_relayของ Perfetto - หากต้องการบันทึกการติดตามแบบรวม ให้ระบุ cid สำหรับทั้ง 2 VM ก่อน
# Get the cid for SDV Media VM. For example: 3
adb -s <sdv_media_vm_serial> shell getprop ro.sdv.vsock_local_cid
# Get the cid for SDV IVI VM. For example: 4
adb -s <sdv_ivi_vm_serial> shell getprop ro.sdv.vsock_local_cid
ในตัวอย่างนี้ ให้ใช้ VM ของ SDV-Media (cid=3) เป็นรีเลย์
# Configure your VMs for unified tracing
torq vm configure --primary <sdv_ivi_vm_serial> --primary-cid 4 --secondary <sdv_media_vm_serial>
# Collect a 7 second trace from the SDV IVI VM, it will now collect a unified trace
torq --serial <sdv_ivi_vm_serial> -d 7000
เช่น

รูปที่ 2 UI ของ Perfetto แสดงตัวอย่างการติดตามแบบรวมที่มีทั้งกระบวนการ
จากทั้ง 2 VM ได้แก่ harry (HAR) และ com.android.car.driverui (DriverUI)
รวบรวมการติดตามการบูต
หากต้องการรวบรวมการติดตามการบูตเพื่อวิเคราะห์ประสิทธิภาพการบูต คุณต้องเปิดใช้ Flag บางรายการ
ตั้งค่าสถานะการคงอยู่เฉพาะ SDV สำหรับการติดตามการบูต
export ANDROID_SERIAL=<your_device_serial> adb root adb shell setprop persist.debug.sdv.boottrace 1 adb shell setprop persist.debug.perfetto.boottrace 1ตั้งค่าพารามิเตอร์บรรทัดคำสั่งของเคอร์เนล
androidboot.fastboot.boottrace=enabled
# For Cuttlefish, set when creating CVD
cvd create -extra_kernel_cmdline=androidboot.fastboot.boottrace=enabled
ใช้ record_android_trace
โดยทำดังนี้
# Set your adb device serial
export ANDROID_SERIAL=<your_device_serial>
# Run record_android_trace from the Android repo
cd /<your_repo_path>
build/envsetup.sh
$ANDROID_BUILD_TOP/external/perfetto/tools/record_android_trace --config $ANDROID_BUILD_TOP/system/software_defined_vehicle/core_services/samples/tracing/config/trace_cfg.pbtx