عيّنات التعليمات البرمجية الأساسية

تتيح لك نماذج رموز خدمات SDV الأساسية في /system/software_defined_vehicle/samples البدء في إنشاء خدماتك. يحتوي كل نموذج على ملف README يصف حالة الاستخدام.

استخدام واجهة برمجة التطبيقات لتسجيل البيانات

لمزيد من المعلومات حول التعليمات المقدَّمة، يُرجى الاطّلاع على ما يلي:

عيّنة سجلّ أساسية

تعرض 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()، مثل اسم الملف التنفيذي.