বিদ্যমান HIDL VHAL ইমপ্লিমেন্টেশনকে AIDL VHAL-এ মাইগ্রেট করতে, AIDL রেফারেন্স ইমপ্লিমেন্টেশন স্ট্রাকচার ব্যবহার করে IVehicleHardware ইন্টারফেসটি ইমপ্লিমেন্ট করুন।
যদি বিদ্যমান 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 সেট করার অনুরূপ |
AIDL-এ প্রকারের পার্থক্য
HIDL VHAL থেকে AIDL VHAL-এ স্থানান্তরের সময় এই পার্থক্যগুলো বিবেচনা করুন।
- HIDL,
types.halথেকে তৈরি হওয়া সমস্ত টাইপের জন্য একটি হেডার ফাইল (types.h) তৈরি করে। AIDL প্রতিটি টাইপের জন্য একটি করে হেডার ফাইল তৈরি করে। উদাহরণস্বরূপ,VehiclePropValue.hথেকেVehiclePropValue.aidl।ফলস্বরূপ, আপনার প্রয়োজনীয় টাইপগুলোর জন্য সমস্ত হেডার ফাইল অন্তর্ভুক্ত করতে হবে।
VehicleHalUtilsলাইব্রেরিরVehicleHalTypes.hনামক একটি সহায়ক ফাইলে বেশিরভাগ প্রচলিত টাইপগুলো রয়েছে। -
types.halএ সংজ্ঞায়িত সমস্ত টাইপ AIDL-এ একই, শুধুমাত্র নিম্নলিখিত ব্যতিক্রমগুলি ছাড়া :-
onPropertySetসরিয়ে ফেলার কারণেSubscribeFlagsআর ব্যবহৃত হয় না, তাই এটিও সরিয়ে ফেলা হয়েছে। -
UserFlagsএখনUserInfo.aidlএ সংজ্ঞায়িত করা হয়েছে এবং এটিকে enum-এর পরিবর্তে একটি flag হিসেবে সংজ্ঞায়িত করা উচিত। একটি ইউজার ফ্ল্যাগ ফিল্ড হলো একটি পূর্ণসংখ্যা যা একাধিকUserInfo.USER_FLAG_XXXএকসাথে bit-or করে। -
VehiclePropValueএর মধ্যে থাকাRawValueRawPropValueনামে পরিবর্তন করা হয়েছে। -
RawValueএরbytesbyteValuesহিসেবে পুনঃনামকরণ করা হয়েছে
-
| পরিবর্তে ... | ব্যবহার |
|---|---|
hidl_vec | std::vector |
hidl_string | std::string |
android::sp | std::shared_ptr |
android::wp | std::weak_ptr |