ATrace führt Leistungs-Traces für HAR mit dem externen Crate
tracing_android_trace aus.
Tracing für HAR aktivieren
Wenn Sie Leistungs-Traces für die Referenz harry-app aktivieren möchten, aktivieren Sie
das Cargo-Feature harry-app-platform-specific/tracing-android.
# crates/reference/harry-app/Cargo.toml
harry-sdv = ["harry-app-platform-specific/tracing-android", ...]
Benutzerdefinierte Traces zu HAR hinzufügen
- Wenn Sie einen benutzerdefinierten
spanhinzufügen möchten, verwenden Sie einen Span aus dem Tracing-Crate.
let custom_trace = tracing::info_span!("custom_trace_span").entered()
// code here will be traced
drop(custom_trace)

Abbildung 1 : Perfetto-UI mit einem Beispiel-Trace aus dem harry-Prozess (HAR)
Leistungs-Tracing für DriverUI
DriverUI verwendet das Android-System-Tracing. Es ist keine zusätzliche Konfiguration erforderlich.
Benutzerdefinierte Traces zu DriverUI hinzufügen
Mit der Entwicklerleitfaden können Sie benutzerdefinierte Ereignisse zu Kotlin-Code hinzufügen.
Trace erfassen
Wir empfehlen Torq, um Traces in AAOS zu erfassen.
Torq verwenden
Torq ist ein CLI-Tool zum Erfassen von Leistungs-Traces in AAOS und SDV.
Klonen Sie das Torq-Repository.
Folgen Sie der Anleitung im Repository, um es zu erstellen und dann auszuführen:
export ANDROID_SERIAL=<your_device_serial>
# Collect a 7 second trace
torq -d 7000
Einheitlichen Leistungs-Trace für beide VMs erfassen
Da Display Safety auf zwei VMs ausgeführt wird, können Sie Probleme leichter identifizieren, wenn Sie Traces von beiden VMs gleichzeitig erfassen.
- Torq unterstützt einheitliche Traces über
traced_relayvon Perfetto. - Um einen einheitlichen Trace zu erfassen, ermitteln Sie zuerst die CID für beide VMs:
# 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
Verwenden Sie in diesem Beispiel die SDV-Media-VM (CID=3) als Relay.
# 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
Beispiel:

Abbildung 2 : Perfetto-UI mit einem Beispiel-Trace mit beiden Prozessen von beiden VMs: harry (HAR) und com.android.car.driverui (DriverUI).
Boot-Trace erfassen
Wenn Sie einen Boot-Trace erfassen möchten, um die Boot-Leistung zu analysieren, müssen Sie einige Flags aktivieren.
Legen Sie das SDV-spezifische Persistenz-Flag für Boot-Traces fest.
export ANDROID_SERIAL=<your_device_serial> adb root adb shell setprop persist.debug.sdv.boottrace 1 adb shell setprop persist.debug.perfetto.boottrace 1Legen Sie den Kernel-Befehlszeilenparameter
androidboot.fastboot.boottrace=enabledfest.
# For Cuttlefish, set when creating CVD
cvd create -extra_kernel_cmdline=androidboot.fastboot.boottrace=enabled
record_android_trace verwenden
Gehen Sie dazu so vor:
# 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