Pelacakan performa untuk HAR

ATrace melakukan pelacakan performa untuk HAR menggunakan crate eksternal tracing_android_trace.

Mengaktifkan pelacakan untuk HAR

Untuk mengaktifkan pelacakan performa untuk referensi harry-app, aktifkan fitur Cargo harry-app-platform-specific/tracing-android.

# crates/reference/harry-app/Cargo.toml

harry-sdv = ["harry-app-platform-specific/tracing-android", ...]

Menambahkan rekaman aktivitas kustom ke HAR

  • Untuk menambahkan span kustom, gunakan span dari crate tracing.
    let custom_trace = tracing::info_span!("custom_trace_span").entered()
    // code here will be traced
    drop(custom_trace)

Gambar 1. UI Perfetto yang menampilkan contoh rekaman aktivitas dari proses harry (HAR)

Pelacakan performa untuk DriverUI

DriverUI menggunakan perekaman aktivitas sistem Android; tidak diperlukan konfigurasi tambahan.

Menambahkan rekaman aktivitas kustom ke DriverUI

Anda dapat menambahkan peristiwa kustom ke kode Kotlin menggunakan Panduan Developer.

Mengumpulkan rekaman aktivitas

Sebaiknya gunakan Torq untuk mengumpulkan rekaman aktivitas di AAOS.

Menggunakan Torq

Torq adalah alat CLI untuk mengumpulkan rekaman aktivitas performa di AAOS dan SDV.

  1. Buat clone repositori Torq.

  2. Ikuti petunjuk di repositori untuk membangun lalu menjalankan:

export ANDROID_SERIAL=<your_device_serial>
# Collect a 7 second trace
torq -d 7000

Kumpulkan rekaman aktivitas performa terpadu di kedua VM

Karena Keamanan Layar berjalan di dua VM, mengumpulkan rekaman aktivitas dari kedua VM secara bersamaan akan membantu mengidentifikasi masalah.

  • Torq mendukung rekaman aktivitas terpadu melalui traced_relay Perfetto.
  • Untuk merekam rekaman aktivitas terpadu, identifikasi terlebih dahulu cid untuk kedua 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

Dalam contoh ini, gunakan VM SDV-Media (cid=3) sebagai 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

Contoh:

Gambar 2. UI Perfetto yang menampilkan contoh Unified Trace dengan kedua proses dari kedua VM: harry (HAR) dan com.android.car.driverui (DriverUI).

Mengumpulkan rekaman aktivitas booting

Untuk mengumpulkan rekaman aktivitas booting untuk menganalisis performa booting, Anda harus mengaktifkan beberapa tanda.

  1. Tetapkan tanda persistensi khusus SDV untuk rekaman aktivitas booting.

    export ANDROID_SERIAL=<your_device_serial>
    adb root
    adb shell setprop persist.debug.sdv.boottrace 1
    adb shell setprop persist.debug.perfetto.boottrace 1
    
  2. Tetapkan parameter cmdline kernel androidboot.fastboot.boottrace=enabled.

# For Cuttlefish, set when creating CVD
cvd create -extra_kernel_cmdline=androidboot.fastboot.boottrace=enabled

Gunakan record_android_trace

Lakukan hal berikut:

# 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