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

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

از API ثبت وقایع استفاده کنید

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

نمونه لاگ پایه

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 ، داده‌های ساختاریافته را به جای متن آزاد نگهداری می‌کنند.

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

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

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

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

فایل نمونه: 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() خواهد بود. برای مثال، نام فایل اجرایی.