דוגמאות הקוד של שירותי הליבה של SDV ב-/system/software_defined_vehicle/samples מאפשרות לכם להתחיל לבנות את השירותים שלכם. כל דוגמה מכילה קובץ README שמתאר את תרחיש השימוש.
שימוש ב-Logging 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 מכילים נתונים מובְנים ולא טקסט חופשי.
נתונים מובנים נרשמים ביומן באמצעות event list API, שתמיד נרשם ביומן עם עדיפות INFO ומזהה התג המספרי.
אפשר להגדיר קובץ .logtags עם מאפיין logtags ב-Android.bp.. כשמספקים את המאפיין הזה, logcat משתמש בו כדי לגזור את שם התג ממזהה התג המספרי. אחר כך אפשר להשתמש בשם התג כדי לסנן יומנים מובנים. פרטים ותיאור של פורמט הקובץ מופיעים בתגובה בקובץ logcat event.logtags.
במהלך תהליך ה-build, כל הקבצים 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.tagpersist.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(). לדוגמה, שם הקובץ הניתן להפעלה.