ATrace מבצע מעקב אחר הביצועים של HAR באמצעות ה-crate החיצוני tracing_android_trace.
הפעלת מעקב עבור HAR
כדי להפעיל מעקב אחר ביצועים עבור ההפניה harry-app, צריך להפעיל את התכונה Cargo harry-app-platform-specific/tracing-android.
# crates/reference/harry-app/Cargo.toml
harry-sdv = ["harry-app-platform-specific/tracing-android", ...]
הוספת עקבות מותאמים אישית ל-HAR
let custom_trace = tracing::info_span!("custom_trace_span").entered()
// code here will be traced
drop(custom_trace)

איור 1. ממשק המשתמש של Perfetto שמציג דוגמה למעקב מהתהליך harry (HAR)
יומן למעקב ביצועים של DriverUI
ממשק המשתמש של הנהג משתמש במעקב אחר מערכת Android, ולא נדרשת הגדרה נוספת.
הוספת עקבות בהתאמה אישית ל-DriverUI
אפשר להוסיף אירועים בהתאמה אישית לקוד Kotlin באמצעות מדריך למפתחים.
איסוף נתונים למעקב
אנחנו ממליצים להשתמש ב-Torq כדי לאסוף עקבות ב-AAOS.
שימוש ב-Torq
Torq הוא כלי CLI לאיסוף נתוני מעקב ביצוע ב-AAOS וב-SDV.
משכפלים את מאגר Torq.
פועלים לפי ההוראות במאגר כדי ליצור את הקובץ ואז להריץ אותו:
export ANDROID_SERIAL=<your_device_serial>
# Collect a 7 second trace
torq -d 7000
איסוף נתוני מעקב אחר ביצועים מאוחדים בשתי המכונות הווירטואליות
מכיוון שהתכונה 'בטיחות התצוגה' פועלת בשתי מכונות וירטואליות, איסוף עקבות משתי המכונות הווירטואליות בו-זמנית עוזר לזהות בעיות.
- Torq תומך במעקב מאוחד באמצעות
traced_relayשל Perfetto. - כדי ללכוד עקבות מאוחדות, קודם צריך לזהות את ה-cid של שני המכונות הווירטואליות:
# 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
בדוגמה הזו, משתמשים במכונה הווירטואלית SDV-Media (cid=3) כממסר.
# 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
לדוגמה:

איור 2. ממשק המשתמש של Perfetto שבו רואים דוגמה של Unified Trace עם שני התהליכים משני מכונות ה-VM: harry (HAR) ו-com.android.car.driverui (DriverUI).
איסוף נתוני אתחול
כדי לאסוף נתוני אתחול לצורך ניתוח ביצועי האתחול, צריך להפעיל כמה דגלים.
מגדירים את דגל קביעות הנתונים הספציפי ל-SDV עבור עקבות אתחול.
export ANDROID_SERIAL=<your_device_serial> adb root adb shell setprop persist.debug.sdv.boottrace 1 adb shell setprop persist.debug.perfetto.boottrace 1מגדירים את הפרמטר
androidboot.fastboot.boottrace=enabledשל שורת הפקודה של ליבת המערכת.
# For Cuttlefish, set when creating CVD
cvd create -extra_kernel_cmdline=androidboot.fastboot.boottrace=enabled
שימוש ב-record_android_trace
צריך לבצע את הפעולות הבאות:
# 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