কোর কোড স্যাম্পেল

/system/software_defined_vehicle/samples-এ SDV Core পরিষেবার কোড স্যাম্পেল আপনাকে পরিষেবা তৈরি করা শুরু করতে দেয়। প্রতিটি স্যাম্পেলে একটি README ফাইল থাকে যা ব্যবহারের উদাহরণ বর্ণনা করে।

স্যাম্পেল ডিরেক্টরির ওভারভিউ

নিম্নলিখিত সারণীতে system/software_defined_vehicle/samples-এ রেফারেন্স স্যাম্পেল ডিরেক্টরি এবং সেগুলির সংশ্লিষ্ট ডকুমেন্টেশন গাইড তালিকাভুক্ত করা হয়েছে:

স্যাম্পেল ডিরেক্টরি বর্ণনা ডকুমেন্টেশন গাইড
system/software_defined_vehicle/samples/quickstart এন্ড-টু-এন্ড Rust সার্ভিস বান্ডেল স্যাম্পেল যা VSIDL প্রকাশনা, সাবস্ক্রিপশন এবং Manager ও Monitor বান্ডেলের মধ্যে RPC দেখায়। কুইক স্টার্ট: 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 /oem_ab পার্টিশন আপডেট ট্রিগার ও রোল ব্যাক করতে sdv_oem_updater ক্রেট ব্যবহার করে স্যাম্পেল পরিষেবা। OEM AB পার্টিশন আপডেট
system/software_defined_vehicle/samples/sdv_gateway নেটিভ ও Java IVI স্যাম্পেল অ্যাপ (NativeSdvGatewayTestApp ও SdvCarMonitorTestApp) যা SDV গেটওয়ের মাধ্যমে SDV Core পরিষেবার সাথে যোগাযোগ করে। IVI-তে SDV Gateway ব্যবহার করা
system/software_defined_vehicle/samples/telemetry অন-ডিভাইস টেলিমেট্রি ডেটা সোর্স ও সিমুলেটর স্যাম্পেল। ডেটা সোর্স

লগিং 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 প্রায়োরিটি ও নিউমেরিক ট্যাগ আইডির সাথে লগ করা হয়।

Android.bp.-এ logtags অ্যাট্রিবিউট দিয়ে .logtags ফাইলকে সংজ্ঞায়িত করা যেতে পারে এটি প্রদান করা হলে, logcat এটিকে ব্যবহার করে সংখ্যাসূচক ট্যাগ আইডি থেকে ট্যাগ নাম বের করে। ট্যাগের নাম তারপর স্ট্রাকচার্ড লগ ফিল্টার করার জন্য ব্যবহার করা যেতে পারে। ফাইলের ফর্ম্যাটের বিবরণ ও বিস্তারিত তথ্যের জন্য, logcat event.logtags ফাইলের কমেন্ট দেখুন।

বিল্ড প্রসেস চলাকালীন, সব logtags ফাইল মার্জ করা হয় এবং Android সিস্টেম ইমেজে /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()-এর ফলাফল ডিফল্ট ট্যাগ হিসেবে ব্যবহার করা হয়। যেমন, এক্সিকিউটেবল ফাইলের নাম।