ATrace ردیابی عملکرد را برای HAR با استفاده از جعبه خارجی 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
- برای افزودن یک
spanسفارشی، از دهانهای که در جعبه ترسیم وجود دارد استفاده کنید.
let custom_trace = tracing::info_span!("custom_trace_span").entered()
// code here will be traced
drop(custom_trace)

شکل ۱. رابط کاربری Perfetto که نمونهای از ردیابی فرآیند harry (HAR) را نشان میدهد.
ردیابی عملکرد برای DriverUI
DriverUI از ردیابی سیستم اندروید استفاده میکند؛ هیچ پیکربندی اضافی لازم نیست.
اضافه کردن ردپاهای سفارشی به DriverUI
شما میتوانید با استفاده از راهنمای توسعهدهندگان ، رویدادهای سفارشی را به کد کاتلین اضافه کنید.
جمعآوری ردپا
ما Torq را برای جمعآوری ردپاها در AAOS توصیه میکنیم.
از تورک استفاده کنید
Torq یک ابزار CLI برای جمعآوری ردپای عملکرد در AAOS و SDV است.
مخزن Torq را کلون کنید.
برای ساخت و سپس اجرا، دستورالعملهای موجود در مخزن را دنبال کنید:
export ANDROID_SERIAL=<your_device_serial>
# Collect a 7 second trace
torq -d 7000
جمعآوری یک ردیابی عملکرد یکپارچه در هر دو ماشین مجازی
از آنجا که Display Safety در دو ماشین مجازی اجرا میشود، جمعآوری همزمان ردپاها از هر دو ماشین مجازی به شناسایی مشکلات کمک میکند.
- Torq از طریق
traced_relayمربوط به Perfetto از ردیابیهای یکپارچه پشتیبانی میکند. - برای ثبت یک ردیابی یکپارچه، ابتدا cid هر دو ماشین مجازی را شناسایی کنید:
# 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
در این مثال، از ماشین مجازی 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
برای مثال:

شکل ۲. رابط کاربری Perfetto که یک نمونه Unified Trace را با هر دو فرآیند از هر دو ماشین مجازی نشان میدهد: harry (HAR) و com.android.car.driverui (DriverUI).
ردیابی بوت را جمعآوری کنید
برای جمعآوری ردپای بوت برای تحلیل عملکرد بوت، باید چند پرچم را فعال کنید.
پرچم پایداری مختص 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پارامتر cmdline هسته را
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