ATrace effectue le traçage des performances pour HAR à l'aide du crate externe tracing_android_trace.
Activer le traçage pour HAR
Pour activer le traçage des performances pour la référence harry-app, activez la fonctionnalité Cargo harry-app-platform-specific/tracing-android.
# crates/reference/harry-app/Cargo.toml
harry-sdv = ["harry-app-platform-specific/tracing-android", ...]
Ajouter des traces personnalisées à HAR
let custom_trace = tracing::info_span!("custom_trace_span").entered()
// code here will be traced
drop(custom_trace)

Figure 1. Interface utilisateur Perfetto affichant un exemple de trace du processus harry (HAR)
Suivi des performances pour DriverUI
DriverUI utilise le traçage système Android. Aucune configuration supplémentaire n'est requise.
Ajouter des traces personnalisées à DriverUI
Vous pouvez ajouter des événements personnalisés au code Kotlin à l'aide du Guide du développeur.
Collecter une trace
Nous vous recommandons d'utiliser Torq pour collecter des traces sur AAOS.
Utiliser Torq
Torq est un outil CLI permettant de collecter des traces de performances sur AAOS et SDV.
Clonez le dépôt Torq.
Suivez les instructions du dépôt pour compiler, puis exécuter :
export ANDROID_SERIAL=<your_device_serial>
# Collect a 7 second trace
torq -d 7000
Collecter une trace des performances unifiée pour les deux VM
Étant donné que Display Safety s'exécute sur deux VM, la collecte de traces à partir des deux VM en même temps permet d'identifier les problèmes.
- Torq est compatible avec les traces unifiées via
traced_relayde Perfetto. - Pour capturer une trace unifiée, identifiez d'abord le numéro client des deux 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
Dans cet exemple, utilisez la VM SDV-Media (cid=3) comme relais.
# 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
Exemple :

Figure 2. Interface utilisateur Perfetto affichant un exemple de trace unifiée avec les deux processus des deux VM : harry (HAR) et com.android.car.driverui (DriverUI).
Collecter une trace de démarrage
Pour collecter une trace de démarrage afin d'analyser les performances de démarrage, vous devez activer quelques indicateurs.
Définissez l'indicateur de persistance spécifique à SDV pour les traces de démarrage.
export ANDROID_SERIAL=<your_device_serial> adb root adb shell setprop persist.debug.sdv.boottrace 1 adb shell setprop persist.debug.perfetto.boottrace 1Définissez le paramètre de ligne de commande du noyau
androidboot.fastboot.boottrace=enabled.
# For Cuttlefish, set when creating CVD
cvd create -extra_kernel_cmdline=androidboot.fastboot.boottrace=enabled
Utiliser record_android_trace
Procédez comme suit :
# 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