نمونه‌های کد اصلی

نمونه‌های کد سرویس‌های SDV Core در /system/software_defined_vehicle/samples به شما امکان می‌دهد ساختن سرویس‌هایتان را شروع کنید. هر نمونه حاوی یک فایل README است که مورد استفاده را شرح می‌دهد.

نمای کلی فهرست راهنمای نمونه

جدول زیر فهرست دایرکتوری‌های نمونه مرجع در system/software_defined_vehicle/samples و راهنماهای اسناد مربوط به آن‌ها را نشان می‌دهد:

دایرکتوری نمونه شرح راهنمای مستندات
system/software_defined_vehicle/samples/quickstart نمونه دسته سرویس Rust سرتاسر که انتشار VSIDL، اشتراک، و RPC را بین دسته‌های Manager و Monitor نشان می‌دهد. شروع سریع: ایجاد و اجرای بسته‌های سرویس SDV
system/software_defined_vehicle/samples/vsidl به کاتالوگ VSIDL، تعاریف protobuf، و الگوهای پیاده‌سازی بسته سرویس مراجعه کنید. پیاده‌سازی منطق کسب‌وکار
system/software_defined_vehicle/samples/concal نمونه کارخواه برای خواندن و به‌روزرسانی پیکربندی خودرو و پارامترهای واسنجی. پیکربندی و واسنجی
system/software_defined_vehicle/samples/health نمونه‌های پایش کیفیت سرویس‌دهی (QoS) و بسته سرویس پایش‌شده ازنظر سلامت. پایش سلامت
system/software_defined_vehicle/samples/oem_partition_update_client نمونه سرویس بااستفاده از جعبه sdv_oem_updater برای راه‌اندازی و بازگرداندن به‌روزرسانی‌های پارتیشن /oem_ab. به‌روزرسانی‌های پارتیشن AB سازنده تجهیزات اصلی
system/software_defined_vehicle/samples/sdv_gateway برنامه‌های نمونه IVI بومی و Java (NativeSdvGatewayTestApp و SdvCarMonitorTestApp) که ازطریق «دروازه SDV» با سرویس‌های «هسته SDV» ارتباط برقرار می‌کنند. استفاده از «دروازه خودروی نرم‌افزارمحور» در «سیستم سرگرمی-اطلاعاتی درون‌خودرو»
system/software_defined_vehicle/samples/telemetry منبع داده‌های دورسنجی درون‌دستگاهی و نمونه‌های شبیه‌ساز. منابع داده

استفاده از میانای برنامه‌سازی کاربردی گزارش‌گیری

برای کسب اطلاعات بیشتر درباره دستورالعمل‌های ارائه‌شده، به موارد زیر مراجعه کنید:

نمونه گزارش پایه

‫logging.cpp نوشتن در میانگیرهای main،‏ system، و radio را ارائه می‌دهد. برای خواندن شرح کوتاهی از میان‌گیرهای گزارش موجود، به مشاهده میان‌گیرهای گزارش جایگزین مراجعه کنید.

  • برای اجرای نمونه بدون گزارش‌های شرطی، مثل ALOGI_IF:

    logging_sdv_sample
    
  • برای اجرای نمونه و چاپ گزارش‌های شرطی، مثل ALOGI_IF:

    LOGIF=1 logging_sdv_sample
    

نمونه ثبت ساختاریافته

فایل نمونه: structured_logging.cpp

  • برای اجرای نمونه، که گزارش‌ها را در میان‌گیر گزارش events می‌نویسد:

    structured_logging_sdv_sample
    

میان‌گیرهای گزارش event،‏ security، و stats به‌جای نوشتار آزاد، داده‌های ساختاریافته را نگه می‌دارند.

داده‌های ساختاریافته بااستفاده از میانای برنامه‌سازی کاربردی فهرست رویداد ثبت می‌شود که همیشه با اولویت INFO و شناسه برچسب عددی ثبت می‌شود.

فایل .logtags را می‌توان با مشخصه logtags در Android.bp. تعریف کرد. وقتی ارائه شود، logcat از آن برای مشتق کردن نام برچسب از شناسه عددی برچسب استفاده می‌کند. سپس می‌توان از نام برچسب برای فیلتر کردن گزارش‌های ساختاریافته استفاده کرد. برای جزئیات و شرح قالب فایل، نظر را در فایل logcat event.logtags ببینید.

درطول فرایند ساخت، همه فایل‌های logtags ادغام می‌شوند و در فایل /system/etc/event-log-tags در تصویر سیستم Android قرار می‌گیرند.

نمونه فیلتر کردن گزارش زمان را گردآوری کن

فایل نمونه: compile_time_log_filtering.cpp

این نمونه حاوی ماکروهایی است که می‌توانید آن‌ها را برای حذف برخی‌از گزارش‌ها از فایل اجرایی تنظیم کنید. برای جزئیات، کد منبع را ببینید.

نمونه فیلتر کردن گزارش: log_filtering.cpp

  • برای اجرای نمونه، حداقل اولویت گزارش را روی WARN تنظیم کنید:

    LOGLEVEL=WARN log_filtering_sdv_sample
    

فیلتر کردن گزارش تحت تأثیر خصوصیت‌های سیستم است. برای همه گزارش‌های دارای :

  • log.tag.<tag>
  • persist.log.tag.<tag>

برای همه گزارش‌های سیستم:

  • log.tag
  • persist.log.tag

برای انتخاب سطح گزارش انتخاب‌شده، که به‌ترتیب بررسی می‌شود، هر مقدار را می‌توان روی V، D، I، W، یا E تنظیم کرد.

سطح گزارش مؤثر سطحی است که در اولین ویژگی سیستم که دارای مقدار است تنظیم شده است، که ممکن است پایین‌تر یا بالاتر از سطح گزارش تنظیم‌شده توسط برنامه با فراخوانی __android_log_set_minimum_priority باشد. وقتی هیچ‌کدام از ویژگی‌ها تنظیم نشده باشد، سطح پیکربندی‌شده با __android_log_set_minimum_priority اعمال می‌شود.

برای جزئیات، نمای کلی سیستم ثبت گزارش را ببینید.

  • نمونه را اجرا کنید و برچسب گزارش پیش‌فرض را روی example_tag تنظیم کنید:

    LOGTAG=example_tag log_filtering_sdv_sample
    

این نمونه همچنین حاوی تعریف ماکرو LOG_TAG است که می‌توانید از آن برای تنظیم برچسب گزارش برای همه پیام‌های گزارش استفاده کنید. برچسبی که به این روش تنظیم شده است برچسب تنظیم‌شده در زمان اجرا با __android_log_set_default_tag را لغو می‌کند.

اگر ماکرو LOG_TAG تعریف نشده باشد و برنامه __android_log_set_default_tag را فراخوانی نکند، برچسب پیش‌فرض نتیجه getprogname() است. برای مثال، نام فایل اجرایی.