ATrace realiza un seguimiento del rendimiento para HAR con el crate externo tracing_android_trace.
Habilita el seguimiento para HAR
Para habilitar el registro de rendimiento para la referencia harry-app, habilita la función de Cargo harry-app-platform-specific/tracing-android.
# crates/reference/harry-app/Cargo.toml
harry-sdv = ["harry-app-platform-specific/tracing-android", ...]
Agrega registros personalizados al archivo HAR
- Para agregar un
spanpersonalizado, usa un intervalo del crate de seguimiento.
let custom_trace = tracing::info_span!("custom_trace_span").entered()
// code here will be traced
drop(custom_trace)

Figura 1: IU de Perfetto que muestra un registro de muestra del proceso harry (HAR)
Seguimiento del rendimiento de DriverUI
DriverUI usa el registro del sistema de Android, por lo que no se requiere ninguna configuración adicional.
Agrega registros personalizados a DriverUI
Puedes agregar eventos personalizados al código de Kotlin con la Guía para desarrolladores.
Recopila un registro
Recomendamos Torq para recopilar registros en AAOS.
Cómo usar Torq
Torq es una herramienta de CLI para recopilar registros de rendimiento en AAOS y SDV.
Clona el repositorio de Torq.
Sigue las instrucciones del repositorio para compilar y, luego, ejecutar lo siguiente:
export ANDROID_SERIAL=<your_device_serial>
# Collect a 7 second trace
torq -d 7000
Recopila un registro de rendimiento unificado en ambas VMs
Dado que la Seguridad de la pantalla se ejecuta en dos VMs, recopilar registros de ambas al mismo tiempo ayuda a identificar problemas.
- Torq admite registros unificados a través de
traced_relayde Perfetto. - Para capturar un registro unificado, primero identifica el cid de ambas 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
En este ejemplo, usa la VM de SDV-Media (cid=3) como retransmisor.
# 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
Por ejemplo:

Figura 2: La IU de Perfetto muestra un registro unificado de muestra con ambos procesos de ambas VMs: harry (HAR) y com.android.car.driverui (DriverUI).
Cómo recopilar un registro de arranque
Para recopilar un registro de arranque y analizar el rendimiento del arranque, debes habilitar algunos parámetros.
Establece la marca de persistencia específica de SDV para los registros de arranque.
export ANDROID_SERIAL=<your_device_serial> adb root adb shell setprop persist.debug.sdv.boottrace 1 adb shell setprop persist.debug.perfetto.boottrace 1Establece el parámetro de la línea de comandos del kernel
androidboot.fastboot.boottrace=enabled.
# For Cuttlefish, set when creating CVD
cvd create -extra_kernel_cmdline=androidboot.fastboot.boottrace=enabled
Usar record_android_trace
Puedes hacer lo siguiente:
# 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