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