ATrace esegue la tracciatura delle prestazioni per HAR utilizzando il crate esterno
tracing_android_trace.
Abilita il tracciamento per HAR
Per attivare il monitoraggio del rendimento per il riferimento harry-app, attiva
la funzionalità Cargo harry-app-platform-specific/tracing-android.
# crates/reference/harry-app/Cargo.toml
harry-sdv = ["harry-app-platform-specific/tracing-android", ...]
Aggiungere tracce personalizzate al file HAR
let custom_trace = tracing::info_span!("custom_trace_span").entered()
// code here will be traced
drop(custom_trace)

Figura 1. UI di Perfetto che mostra una traccia di esempio del processo harry (HAR)
Tracciamento delle prestazioni per DriverUI
DriverUI utilizza la traccia di sistema Android; non è necessaria alcuna configurazione aggiuntiva.
Aggiungere tracce personalizzate a DriverUI
Puoi aggiungere eventi personalizzati al codice Kotlin utilizzando la guida per gli sviluppatori.
Raccogliere una traccia
Consigliamo Torq per raccogliere le tracce su AAOS.
Utilizzare Torq
Torq è uno strumento CLI per la raccolta di tracce delle prestazioni su AAOS e SDV.
Clona il repository Torq.
Segui le istruzioni nel repository per creare ed eseguire:
export ANDROID_SERIAL=<your_device_serial>
# Collect a 7 second trace
torq -d 7000
Raccogliere una traccia di rendimento unificata in entrambe le VM
Poiché Display Safety viene eseguito su due VM, la raccolta delle tracce da entrambe le VM contemporaneamente aiuta a identificare i problemi.
- Torq supporta le tracce unificate tramite
traced_relaydi Perfetto. - Per acquisire una traccia unificata, identifica innanzitutto il cid per entrambe le 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
In questo esempio, utilizza la VM SDV-Media (cid=3) come relè.
# 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
Ad esempio:

Figura 2. L'interfaccia utente di Perfetto mostra una traccia unificata di esempio con entrambi i processi
di entrambe le VM: harry (HAR) e com.android.car.driverui (DriverUI).
Raccogliere una traccia di avvio
Per raccogliere una traccia di avvio per analizzare le prestazioni di avvio, devi attivare alcuni flag.
Imposta il flag di persistenza specifico per SDV per le tracce di avvio.
export ANDROID_SERIAL=<your_device_serial> adb root adb shell setprop persist.debug.sdv.boottrace 1 adb shell setprop persist.debug.perfetto.boottrace 1Imposta il parametro della riga di comando del kernel
androidboot.fastboot.boottrace=enabled.
# For Cuttlefish, set when creating CVD
cvd create -extra_kernel_cmdline=androidboot.fastboot.boottrace=enabled
Utilizza record_android_trace
Segui questi passaggi:
# 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