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