ATrace wykonuje śledzenie wydajności dla HAR za pomocą zewnętrznego pakietu
tracing_android_trace.
Włączanie śledzenia dla HAR
Aby włączyć śledzenie wydajności dla odniesienia harry-app, włącz
funkcję Cargo harry-app-platform-specific/tracing-android.
# crates/reference/harry-app/Cargo.toml
harry-sdv = ["harry-app-platform-specific/tracing-android", ...]
Dodawanie niestandardowych śladów do HAR
let custom_trace = tracing::info_span!("custom_trace_span").entered()
// code here will be traced
drop(custom_trace)

Rysunek 1. Interfejs Perfetto z przykładowym śladem z procesu harry (HAR)
Śledzenie wydajności DriverUI
DriverUI korzysta ze śledzenia systemu Android. Nie wymaga dodatkowej konfiguracji.
Dodawanie niestandardowych śladów do DriverUI
Za pomocą przewodnika dla deweloperów możesz dodawać niestandardowe zdarzenia do kodu Kotlin.
Zbieranie śladu
Do zbierania śladów w AAOS zalecamy używanie Torq.
Używanie Torq
Torq to narzędzie CLI do zbierania śladów wydajności w AAOS i SDV.
Sklonuj repozytorium Torq.
Postępuj zgodnie z instrukcjami w repozytorium, aby skompilować, a następnie uruchomić:
export ANDROID_SERIAL=<your_device_serial>
# Collect a 7 second trace
torq -d 7000
Zbieranie ujednoliconego śladu wydajności na obu maszynach wirtualnych
Ponieważ funkcja Display Safety działa na 2 maszynach wirtualnych, zbieranie śladów z obu maszyn wirtualnych w tym samym czasie pomaga w identyfikowaniu problemów.
- Torq obsługuje ujednolicone ślady za pomocą
traced_relayw Perfetto. - Aby zarejestrować ujednolicony ślad, najpierw określ identyfikator cid dla obu maszyn wirtualnych:
# 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
W tym przykładzie użyjemy maszyny wirtualnej SDV-Media (cid=3) jako przekaźnika.
# 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
Przykład:

Rysunek 2. Interfejs Perfetto z przykładowym ujednoliconym śladem z obu procesów z obu maszyn wirtualnych: harry (HAR) i com.android.car.driverui (DriverUI).
Zbieranie śladu rozruchu
Aby zebrać ślad rozruchu do analizy wydajności rozruchu, musisz włączyć kilka flag.
Ustaw flagę trwałości specyficzną dla SDV dla śladów rozruchu.
export ANDROID_SERIAL=<your_device_serial> adb root adb shell setprop persist.debug.sdv.boottrace 1 adb shell setprop persist.debug.perfetto.boottrace 1Ustaw parametr wiersza poleceń jądra
androidboot.fastboot.boottrace=enabled.
# For Cuttlefish, set when creating CVD
cvd create -extra_kernel_cmdline=androidboot.fastboot.boottrace=enabled
Używanie record_android_trace
Wykonaj te czynności:
# 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