تتبُّع الأداء لملف HAR

تُجري ATrace عملية تتبُّع الأداء لـ HAR باستخدام الحزمة الخارجية 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

تستخدم DriverUI ميزة تتبُّع نظام Android، ولا يلزم إجراء أي إعدادات إضافية.

إضافة عمليات تتبُّع مخصّصة إلى DriverUI

يمكنك إضافة أحداث مخصّصة إلى رمز Kotlin باستخدام دليل المطوّرين.

جمع بيانات عملية تتبُّع

ننصحك باستخدام Torq لجمع عمليات التتبُّع على AAOS.

استخدام Torq

Torq هي أداة سطر أوامر لجمع عمليات تتبُّع الأداء على AAOS وSDV.

  1. أنشئ نسخة طبق الأصل من مستودع Torq.

  2. اتّبِع التعليمات الواردة في المستودع لإنشاء الأداة ثم تشغيلها:

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 تعرض نموذجًا لعملية تتبُّع موحّدة تتضمّن كلتا العمليتَين من كلا الجهازَين الوهميَين: harry (HAR) وcom.android.car.driverui (DriverUI).

جمع عملية تتبُّع الإقلاع

لجمع عملية تتبُّع الإقلاع من أجل تحليل أداء الإقلاع، عليك تفعيل بعض العلامات.

  1. اضبط علامة الثبات الخاصة بـ 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
    
  2. اضبط مَعلمة سطر أوامر النواة 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