HIDL VHAL মাইগ্রেশন গাইড

একটি বিদ্যমান HIDL VHAL বাস্তবায়নকে AIDL VHAL-এ স্থানান্তর করতে, IVehicleHardware ইন্টারফেস বাস্তবায়নের জন্য AIDL রেফারেন্স বাস্তবায়ন কাঠামো ব্যবহার করুন।

যদি বিদ্যমান HIDL বাস্তবায়নও অনুসরণ করে HIDL রেফারেন্স বাস্তবায়ন , বিক্রেতা VehicleHal ক্লাস বাস্তবায়ন করেছে। IVehicleHardware অনেকটা VehicleHal এর মতই।

HIDL VHAL AIDL VHAL
getAllPropertyConfigs() VehicleHal.listProperties() এর মতই
getValues(callback, requests) প্রতিটি অনুরোধের জন্য VehicleHal.get() কল করতে পারেন এবং কলব্যাক কল করতে পারেন।
dump() VehicleHal.dump() এর মতই
checkHealth() VehicleHal.get() ফেরত দিতে পারে
registerPropertyChangeCallback() VehicleHal.mOnHalEvent সেট করার অনুরূপ

এআইডিএল-এর প্রকারভেদ

HIDL VHAL থেকে AIDL VHAL-এ স্থানান্তর করার সময়, এই পার্থক্যগুলি বিবেচনা করুন।

  1. HIDL types.hal থেকে উৎপন্ন সকল প্রকারের জন্য একটি হেডার ফাইল ( types.h ) তৈরি করে। AIDL প্রতিটি ধরনের জন্য একটি হেডার ফাইল তৈরি করে। উদাহরণস্বরূপ, VehiclePropValue.h থেকে VehiclePropValue.aidl

    ফলস্বরূপ, আপনার প্রয়োজনীয় ধরণের জন্য আপনাকে অবশ্যই সমস্ত হেডার ফাইল অন্তর্ভুক্ত করতে হবে। VehicleHalUtils লাইব্রেরিতে একটি হেল্পার ফাইল, VehicleHalTypes.h এ বেশিরভাগ সাধারণ প্রকার রয়েছে।

  2. পরিবর্তে ... ব্যবহার করুন
    hidl_vec std::vector
    hidl_string std::string
    android::sp std::shared_ptr
    android::wp std::weak_ptr
  3. types.hal তে সংজ্ঞায়িত সমস্ত প্রকার এআইডিএল-এ একই রকম , ছাড়া :
    • SubscribeFlags সরানো হয়েছে কারণ এটি ব্যবহার করা হয়নি কারণ onPropertySet সরানো হয়েছে
    • UserFlags এখন UserInfo.aidl এ সংজ্ঞায়িত করা হয়েছে এবং একটি enum এর পরিবর্তে একটি পতাকা হিসাবে সংজ্ঞায়িত করা উচিত। একটি ব্যবহারকারীর পতাকা ক্ষেত্র হল একটি পূর্ণসংখ্যা যাতে একাধিক UserInfo.USER_FLAG_XXX বিট-বা একসাথে থাকে।
    • VehiclePropValueRawValue নাম পরিবর্তন করে RawPropValue রাখা হয়েছে
    • RawValuebytes নাম পরিবর্তন করে byteValues ​​করা হয়েছে